SpyBara
Go Premium

Documentation 2026-09-17 05:00 UTC to 2026-09-18 23:58 UTC

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

10 10 

11Mode pembaca layar bersifat opt-in. Jika Anda menggunakan pembesar layar, gerakan berkurang, atau tema ramah buta warna alih-alih pembaca layar, atur `CLAUDE_CODE_ACCESSIBILITY`, `prefersReducedMotion`, atau `theme` dari tabel [Pengaturan aksesibilitas](#accessibility-settings). Mode pembaca layar hanya menyesuaikan antarmuka terminal, jadi Anda tidak membutuhkannya di panel chat ekstensi VS Code. Pada Claude Code v2.1.236 atau lebih baru, ekstensi [mengumumkan aktivitas percakapan ke pembaca layar Anda](/docs/id/vs-code#use-a-screen-reader) di sana tanpa pengaturan apa pun.11Mode pembaca layar bersifat opt-in. Jika Anda menggunakan pembesar layar, gerakan berkurang, atau tema ramah buta warna alih-alih pembaca layar, atur `CLAUDE_CODE_ACCESSIBILITY`, `prefersReducedMotion`, atau `theme` dari tabel [Pengaturan aksesibilitas](#accessibility-settings). Mode pembaca layar hanya menyesuaikan antarmuka terminal, jadi Anda tidak membutuhkannya di panel chat ekstensi VS Code. Pada Claude Code v2.1.236 atau lebih baru, ekstensi [mengumumkan aktivitas percakapan ke pembaca layar Anda](/docs/id/vs-code#use-a-screen-reader) di sana tanpa pengaturan apa pun.

12 12 

13Mode pembaca layar memerlukan Claude Code v2.1.181 atau lebih baru. Versi sebelumnya menolak flag `--ax-screen-reader` dengan `error: unknown option '--ax-screen-reader'`.

14 

15<h2 id="turn-on-screen-reader-mode">13<h2 id="turn-on-screen-reader-mode">

16 Aktifkan mode pembaca layar14 Aktifkan mode pembaca layar

17</h2>15</h2>

admin-setup.md +4 −3

Details

36| Google Cloud's Agent Platform | Anda ingin mewarisi kontrol kepatuhan dan penagihan GCP yang ada |36| Google Cloud's Agent Platform | Anda ingin mewarisi kontrol kepatuhan dan penagihan GCP yang ada |

37| Microsoft Foundry | Anda ingin mewarisi kontrol kepatuhan dan penagihan Azure yang ada |37| Microsoft Foundry | Anda ingin mewarisi kontrol kepatuhan dan penagihan Azure yang ada |

38 38 

39Beberapa fitur Claude Code memerlukan akun claude.ai. [Claude Code di web](/docs/id/claude-code-on-the-web), [Routines](/docs/id/routines), [Code Review](/docs/id/code-review), [Remote Control](/docs/id/remote-control), dan [ekstensi Chrome](/docs/id/chrome) tidak tersedia melalui kunci API Console atau kredensial penyedia cloud saja. Jika Anda menerapkan melalui Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry, rencanakan apakah pengembang juga memerlukan kursi Claude for Teams atau Enterprise. Setiap halaman fitur mencantumkan persyaratan rencananya.39Beberapa fitur Claude Code memerlukan akun claude.ai. [Cloud sessions](/docs/id/claude-code-on-the-web), [Routines](/docs/id/routines), [Code Review](/docs/id/code-review), [Remote Control](/docs/id/remote-control), dan [ekstensi Chrome](/docs/id/chrome) tidak tersedia melalui kunci API Console atau kredensial penyedia cloud saja. Jika Anda menerapkan melalui Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry, rencanakan apakah pengembang juga memerlukan kursi Claude for Teams atau Enterprise. Setiap halaman fitur mencantumkan persyaratan rencananya.

40 40 

41Untuk perbandingan penyedia lengkap yang mencakup autentikasi, wilayah, dan kesetaraan fitur, lihat [ikhtisar penerapan enterprise](/docs/id/third-party-integrations). Pengaturan auth setiap penyedia ada di [Authentication](/docs/id/authentication).41Untuk perbandingan penyedia lengkap yang mencakup autentikasi, wilayah, dan kesetaraan fitur, lihat [ikhtisar penerapan enterprise](/docs/id/third-party-integrations). Pengaturan auth setiap penyedia ada di [Authentication](/docs/id/authentication).

42 42 


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

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

104| [Plugin marketplace control](/docs/id/plugin-marketplaces#managed-marketplace-restrictions) | Batasi sumber marketplace mana yang dapat ditambahkan dan diinstal pengguna, tolak flag CLI yang memuat plugin, agent, dan server MCP untuk satu kali berjalan, blokir [sumber plugin `command`](/docs/id/plugin-marketplaces#command-sources), dan daftar allowlist plugin marketplace mana yang dapat disarankan | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |104| [Plugin marketplace control](/docs/id/plugin-marketplaces#managed-marketplace-restrictions) | Batasi sumber marketplace mana yang dapat ditambahkan dan diinstal pengguna, tolak flag CLI yang memuat plugin, agent, dan server MCP untuk satu kali berjalan, blokir [sumber plugin `command`](/docs/id/plugin-marketplaces#command-sources), dan daftar allowlist plugin marketplace mana yang dapat disarankan | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |

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

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

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

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

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


121 122 

122Tidak ada kontrol ini yang menjangkau sesi di Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, atau [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Di penyedia tersebut, gunakan pengaturan terkelola sebagai gantinya: `availableModels` untuk pembatasan, `model` untuk default, dan [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel) untuk batas upaya.123Tidak ada kontrol ini yang menjangkau sesi di Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, atau [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Di penyedia tersebut, gunakan pengaturan terkelola sebagai gantinya: `availableModels` untuk pembatasan, `model` untuk default, dan [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel) untuk batas upaya.

123 124 

124[Claude Code on the web](/docs/id/claude-code-on-the-web) memiliki permukaan admin sendiri: di halaman Cloud environments di pengaturan admin, Pemilik membuat [organization-shared environments](/docs/id/cloud-environments#organization-shared-environments) yang menetapkan [network access level](/docs/id/cloud-environments#network-access), variabel lingkungan, dan skrip setup untuk sesi cloud anggota. Pemilik memilih environment default organisasi secara terpisah, di [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).125[Cloud sessions](/docs/id/claude-code-on-the-web) memiliki permukaan admin sendiri: di halaman Cloud environments di pengaturan admin, Pemilik membuat [organization-shared environments](/docs/id/cloud-environments#organization-shared-environments) yang menetapkan [network access level](/docs/id/cloud-environments#network-access), variabel lingkungan, dan skrip setup untuk sesi cloud anggota. Pemilik memilih environment default organisasi secara terpisah, di [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

125 126 

126Aturan izin dan sandboxing mencakup lapisan berbeda. Menolak WebFetch memblokir alat fetch Claude, tetapi jika Bash diizinkan, `curl` dan `wget` masih dapat menjangkau URL apa pun. Sandboxing menutup celah itu dengan daftar allowlist domain jaringan yang diberlakukan di tingkat OS.127Aturan izin dan sandboxing mencakup lapisan berbeda. Menolak WebFetch memblokir alat fetch Claude, tetapi jika Bash diizinkan, `curl` dan `wget` masih dapat menjangkau URL apa pun. Sandboxing menutup celah itu dengan daftar allowlist domain jaringan yang diberlakukan di tingkat OS.

127 128 

Details

222 222 

223Budget cap mencakup [subagents](/docs/id/agent-sdk/subagents): pengeluaran mereka dihitung terhadap total. Setelah pengeluaran mencapai cap, spawning subagent lain gagal dengan `Budget limit reached`, dan Claude Code menghentikan subagent background apa pun yang masih berjalan. Perilaku penegakan cap memerlukan Claude Code v2.1.217 atau lebih baru.223Budget cap mencakup [subagents](/docs/id/agent-sdk/subagents): pengeluaran mereka dihitung terhadap total. Setelah pengeluaran mencapai cap, spawning subagent lain gagal dengan `Budget limit reached`, dan Claude Code menghentikan subagent background apa pun yang masih berjalan. Perilaku penegakan cap memerlukan Claude Code v2.1.217 atau lebih baru.

224 224 

225Dengan [streaming input](/docs/id/agent-sdk/streaming-vs-single-mode), pesan yang masih antri ketika turn berakhir pada batas max-turns tetap antri. Claude Code tidak menambahkannya ke model call terakhir turn itu. Ini memulai turn baru untuk pesan, dan hitungan max-turns dimulai lagi untuk turn itu.225Dengan [streaming input](/docs/id/agent-sdk/streaming-vs-single-mode), pesan yang masih antri ketika turn berakhir pada batas max-turns tetap antri. Claude Code tidak menambahkannya ke model call terakhir turn itu. Ini memulai turn baru untuk pesan, dan hitungan max-turns dimulai lagi untuk turn itu. Total budget terus terakumulasi di seluruh pesan, dan setelah pengeluaran mencapai `maxBudgetUsd`, pesan-pesan selanjutnya dalam percakapan yang sama berakhir dengan hasil `error_max_budget_usd`. Sebuah [`/clear`](/docs/id/agent-sdk/cost-tracking) memulai ulang budget.

226 226 

227<h3 id="effort-level">227<h3 id="effort-level">

228 Effort level228 Effort level


267 Model267 Model

268</h3>268</h3>

269 269 

270Jika Anda tidak set `model`, SDK menggunakan Claude Code's default, yang tergantung pada authentication method dan subscription Anda. Set secara eksplisit (misalnya, `model="claude-sonnet-5"`) untuk pin model spesifik atau untuk menggunakan smaller model untuk faster, cheaper agents. Lihat [models](https://platform.claude.com/docs/en/about-claude/models) untuk available IDs.270Set opsi `model` untuk memilih model mana yang menjalankan sesi. Untuk informasi lebih lanjut, lihat [Choose a model](/docs/id/agent-sdk/configuration#choose-a-model).

271 271 

272<h2 id="the-context-window">272<h2 id="the-context-window">

273 Jendela konteks273 Jendela konteks

Details

8 8 

9Agent SDK dibangun di atas fondasi yang sama dengan Claude Code, yang berarti agen SDK Anda memiliki akses ke fitur berbasis filesystem yang sama: instruksi proyek (`CLAUDE.md` dan rules), skills, hooks, dan lainnya.9Agent SDK dibangun di atas fondasi yang sama dengan Claude Code, yang berarti agen SDK Anda memiliki akses ke fitur berbasis filesystem yang sama: instruksi proyek (`CLAUDE.md` dan rules), skills, hooks, dan lainnya.

10 10 

11Ketika Anda menghilangkan `settingSources`, `query()` membaca pengaturan filesystem yang sama dengan Claude Code CLI: pengaturan pengguna, proyek, dan lokal, file `CLAUDE.md`, dan skills, agen, dan perintah di `.claude/`. Untuk menjalankan tanpa ini, teruskan `settingSources: []`, yang membatasi agen hanya pada apa yang Anda konfigurasi secara terprogram. Pengaturan kebijakan terkelola dan konfigurasi global `~/.claude.json` dibaca terlepas dari opsi ini. Lihat [Apa yang tidak dikontrol settingSources](#what-settingsources-does-not-control).11Ketika Anda menghilangkan `settingSources`, `query()` membaca pengaturan filesystem yang sama dengan Claude Code CLI: pengaturan pengguna, proyek, dan lokal, file `CLAUDE.md`, dan skills, agen, dan perintah di `.claude/`. Untuk menjalankan tanpa ini, teruskan `settingSources: []`, yang membatasi agen hanya pada apa yang Anda konfigurasi secara terprogram. Pengaturan kebijakan terkelola dan konfigurasi global `~/.claude.json` dibaca terlepas dari opsi ini. Untuk informasi lebih lanjut, lihat [Apa yang tidak dikontrol settingSources](#what-settingsources-does-not-control).

12 12 

13<h2 id="control-filesystem-settings-with-settingsources">13<h2 id="control-filesystem-settings-with-settingsources">

14 Kontrol pengaturan filesystem dengan settingSources14 Kontrol pengaturan filesystem dengan settingSources


107 Instruksi proyek (CLAUDE.md dan rules)107 Instruksi proyek (CLAUDE.md dan rules)

108</h2>108</h2>

109 109 

110File `CLAUDE.md` dan file `.claude/rules/*.md` memberikan agen Anda konteks persisten tentang proyek Anda: konvensi pengkodean, perintah build, keputusan arsitektur, dan instruksi. Ketika `settingSources` mencakup `"project"` (seperti dalam contoh di atas), SDK memuat file ini ke dalam konteks pada awal sesi. Agen kemudian mengikuti konvensi proyek Anda tanpa Anda mengulanginya di setiap prompt.110File `CLAUDE.md` dan file `.claude/rules/*.md` memberikan agen Anda konteks persisten tentang proyek Anda: konvensi pengkodean, perintah build, keputusan arsitektur, dan instruksi. Ketika `settingSources` mencakup `"project"`, seperti dalam contoh [`settingSources`](#control-filesystem-settings-with-settingsources), SDK memuat file ini ke dalam konteks pada awal sesi. Agen kemudian mengikuti konvensi proyek Anda tanpa Anda mengulanginya di setiap prompt.

111 111 

112<h3 id="claude-md-load-locations">112<h3 id="claude-md-load-locations">

113 Lokasi pemuatan CLAUDE.md113 Lokasi pemuatan CLAUDE.md

agent-sdk/configuration.md +315 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Konfigurasi agen Anda

6 

7> Konfigurasi sesi Agent SDK: susun objek opsi, atur model, lingkungan, dan batas, serta temukan halaman opsi setiap fitur.

8 

9Sesi Agent SDK membaca konfigurasi dari file pengaturan, variabel lingkungan, dan objek `options` yang Anda berikan saat memulainya. Halaman ini menunjukkan cara menyusun objek `options` dan apa file pengaturan serta variabel lingkungan yang mengontrolnya.

10 

11Untuk setiap tipe opsi dan default, lihat referensi [`Options`](/docs/id/agent-sdk/typescript#options) (TypeScript) dan [`ClaudeAgentOptions`](/docs/id/agent-sdk/python#claudeagentoptions) (Python).

12 

13<h2 id="pass-options-to-a-session">

14 Berikan opsi ke sesi

15</h2>

16 

17Setiap panggilan `query()` menerima objek opsi: `Options` di TypeScript, `ClaudeAgentOptions` di Python. Setiap bidang bersifat opsional, dan sesi yang dimulai tanpa opsi berjalan dengan default SDK. Contoh di bawah mengonfigurasi sesi baca-saja yang merangkum TODO terbuka proyek. Pasangan dibaca sebagai TypeScript / Python di mana ejaan berbeda:

18 

19* **`model`**: memilih model

20* **`allowedTools` / `allowed_tools`**: pra-menyetujui daftar alat baca-saja

21* **`maxTurns` / `max_turns`**: membatasi jumlah giliran

22* **`cwd`**: menetapkan direktori kerja

23 

24<CodeGroup>

25 ```typescript TypeScript theme={null}

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

27 

28 for await (const message of query({

29 prompt: "Summarize the open TODOs in this repo",

30 options: {

31 model: "claude-sonnet-5",

32 allowedTools: ["Read", "Glob", "Grep"],

33 maxTurns: 8,

34 cwd: "/path/to/repo",

35 },

36 })) {

37 if (message.type === "result" && message.subtype === "success" && !message.is_error) {

38 console.log(message.result);

39 }

40 }

41 ```

42 

43 ```python Python theme={null}

44 import asyncio

45 

46 from claude_agent_sdk import ClaudeAgentOptions, ResultMessage, query

47 

48 async def main():

49 options = ClaudeAgentOptions(

50 model="claude-sonnet-5",

51 allowed_tools=["Read", "Glob", "Grep"],

52 max_turns=8,

53 cwd="/path/to/repo",

54 )

55 

56 async for message in query(

57 prompt="Summarize the open TODOs in this repo",

58 options=options,

59 ):

60 if isinstance(message, ResultMessage) and not message.is_error:

61 print(message.result)

62 

63 asyncio.run(main())

64 ```

65</CodeGroup>

66 

67Arahkan `cwd` ke salah satu proyek Anda sendiri dan jalankan contohnya. Ringkasan TODO terbuka proyek tersebut akan dicetak saat pesan hasil tiba.

68 

69`allowedTools` (TypeScript) atau `allowed_tools` (Python) pra-menyetujui alat yang terdaftar, sehingga panggilan ke alat tersebut berjalan tanpa menunggu persetujuan. Alat di luar daftar tetap tersedia. Ketika Claude memanggil alat yang tidak terdaftar, mode izin menentukan apakah panggilan berjalan. Untuk informasi lebih lanjut, lihat [Aturan izin dan penolakan](/docs/id/agent-sdk/permissions#allow-and-deny-rules).

70 

71<h2 id="load-settings-files">

72 Muat file pengaturan

73</h2>

74 

75File pengaturan menyediakan konfigurasi di luar objek opsi. Dua opsi mengontrol cara memuatnya:

76 

77* **`settingSources` / `setting_sources`**: mengontrol sumber sistem file mana yang dimuat: pengguna, proyek, dan lokal. File pengaturan dan file CLAUDE.md tiba melalui sumber ini.

78* **`settings`**: memuat jalur file pengaturan atau string JSON sebaris dalam bahasa apa pun, dan TypeScript juga menerima objek pengaturan. Bentuk apa pun yang Anda berikan menggantikan pengaturan sistem file pengguna, proyek, dan lokal; hanya pengaturan kebijakan terkelola yang lebih tinggi. Referensi mendokumentasikan urutan preseden lengkap di bawah [Preseden pengaturan](/docs/id/agent-sdk/typescript#settings-precedence) untuk TypeScript dan [Preseden pengaturan](/docs/id/agent-sdk/python#settings-precedence) untuk Python.

79 

80Berikan `[]` untuk menonaktifkan pengaturan pengguna, proyek, dan lokal. Untuk informasi lebih lanjut, lihat [Gunakan fitur Claude Code di SDK](/docs/id/agent-sdk/claude-code-features).

81 

82<h2 id="choose-a-model">

83 Pilih model

84</h2>

85 

86Kecuali opsi `model`, pengaturan Anda, atau lingkungan Anda memilih model, sesi baru dimulai pada [model default Claude Code](/docs/id/model-config#default-model-setting). Untuk urutan sumber tersebut, lihat [Atur model Anda](/docs/id/model-config#setting-your-model). Atur `model` untuk menetapkan model tertentu, atau untuk memilih model yang lebih kecil untuk agen yang lebih cepat dan lebih murah. Nilai mengambil alias model atau nama model lengkap; alias dan versi yang mereka selesaikan terdaftar di bawah [Alias model](/docs/id/model-config#model-aliases).

87 

88Atur `fallbackModel` (TypeScript) atau `fallback_model` (Python) untuk menamai model cadangan. Ketika model utama kelebihan beban atau tidak tersedia, sesi beralih ke cadangan. Model utama dicoba ulang di awal setiap giliran pengguna, sehingga sesi kembali ke model utama setelah pemadaman berlalu.

89 

90Di kedua bahasa, opsi menerima model tunggal atau daftar cadangan yang dipisahkan koma. Untuk urutan dan batas rantai, lihat [Rantai model fallback](/docs/id/model-config#fallback-model-chains). Di TypeScript, fallback yang sama dengan `model` melempar kesalahan saat startup.

91 

92Contoh di bawah menunjukkan daftar fallback di TypeScript dan fallback tunggal di Python:

93 

94<CodeGroup>

95 ```typescript TypeScript theme={null}

96 const options = {

97 model: "claude-fable-5",

98 fallbackModel: "claude-opus-5,claude-sonnet-5",

99 };

100 ```

101 

102 ```python Python theme={null}

103 options = ClaudeAgentOptions(

104 model="claude-fable-5",

105 fallback_model="claude-opus-5",

106 )

107 ```

108</CodeGroup>

109 

110<span id="sampling-parameters" />

111 

112<Note>

113 Parameter permintaan Messages API [Messages API](https://platform.claude.com/docs/en/api/messages) `temperature`, `top_p`, dan `max_tokens` tidak memiliki bidang pada objek opsi di kedua bahasa. Atur [tingkat upaya](/docs/id/agent-sdk/agent-loop#effort-level) atau [batas pengeluaran](#limit-turns-and-spend) sebagai gantinya, atau panggil Messages API ketika Anda memerlukan parameter tersebut secara langsung.

114</Note>

115 

116<h2 id="set-environment-variables">

117 Atur variabel lingkungan

118</h2>

119 

120Opsi `env` menetapkan variabel lingkungan untuk proses Claude Code yang menjalankan sesi Anda. Apakah nilai Anda menggantikan lingkungan yang diwariskan atau menggabungkannya berbeda menurut bahasa:

121 

122* **TypeScript**: `env` menggantikan lingkungan subproses

123* **Python**: SDK menggabungkan nilai Anda di atas lingkungan yang diwariskan, dan nilai Anda menggantikan nilai yang diwariskan

124 

125Di TypeScript, sebarkan `process.env` ke dalam `env` untuk menyimpan variabel yang diwariskan seperti `PATH`, `HOME`, dan `ANTHROPIC_API_KEY`. Ketika Anda membiarkan `env` tidak diatur, subproses mewarisi lingkungan Anda di kedua bahasa.

126 

127Contoh merutekan lalu lintas API melalui gateway dengan menetapkan `ANTHROPIC_BASE_URL`.

128 

129<CodeGroup>

130 ```typescript TypeScript theme={null}

131 const options = {

132 env: { ...process.env, ANTHROPIC_BASE_URL: "https://gateway.example.com" },

133 };

134 ```

135 

136 ```python Python theme={null}

137 options = ClaudeAgentOptions(

138 env={"ANTHROPIC_BASE_URL": "https://gateway.example.com"},

139 )

140 ```

141</CodeGroup>

142 

143Variabel yang Anda berikan juga dapat mengonfigurasi Claude Code itu sendiri. Untuk variabel yang dibaca proses Claude Code, lihat [Variabel lingkungan](/docs/id/env-vars). Untuk menyetel waktu tunggu API dan deteksi macet dengan cara ini, ikuti bagian Tangani respons API yang lambat atau macet di referensi [TypeScript](/docs/id/agent-sdk/typescript#handle-slow-or-stalled-api-responses) atau referensi [Python](/docs/id/agent-sdk/python#handle-slow-or-stalled-api-responses).

144 

145<h2 id="set-the-working-directory">

146 Atur direktori kerja

147</h2>

148 

149Atur `cwd` untuk menjalankan sesi di direktori tertentu. Ketika Anda membiarkan `cwd` tidak diatur, sesi berjalan di direktori kerja proses Anda. Tidak ada SDK yang memiliki setter untuk `cwd`. Untuk menjalankan di direktori berbeda, mulai sesi lain dengan `cwd` tersebut.

150 

151Claude Code membaca direktori kerja untuk menentukan:

152 

153* **Pengaturan dan hook proyek**: pengaturan dan hook proyek mana yang [dimuat](/docs/id/agent-sdk/claude-code-features)

154* **Skills**: di mana [skill sesi ditemukan](/docs/id/agent-sdk/skills)

155* **Penyimpanan sesi**: proyek mana yang [sesi tersimpan miliknya](/docs/id/agent-sdk/session-storage)

156 

157Untuk membiarkan alat menjangkau file di luar direktori kerja, tambahkan jalur dengan `additionalDirectories` (TypeScript) atau `add_dirs` (Python). Untuk cakupan hibah tersebut, lihat [Direktori tambahan memberikan akses file, bukan konfigurasi](/docs/id/permissions#additional-directories-grant-file-access-not-configuration).

158 

159<h2 id="limit-turns-and-spend">

160 Batasi giliran dan pengeluaran

161</h2>

162 

163Batasi giliran dan pengeluaran dengan `maxTurns` / `max_turns` dan `maxBudgetUsd` / `max_budget_usd`. Kedua batas dimatikan saat tidak diatur. Ketika sesi mencapai batas, jalankan berakhir dengan pesan hasil yang subtipe-nya menamai batas, `error_max_turns` atau `error_max_budget_usd`. Apa yang terjadi selanjutnya berbeda menurut mode input:

164 

165* **`query()` sekali jalan**: SDK menghasilkan hasil batas dan kemudian melempar, jadi bungkus loop dalam blok try untuk melanjutkan melewati kesalahan

166* **Input streaming**: sesi tetap hidup melewati hasil batas, dan hitungan giliran maksimal dimulai ulang untuk setiap pesan antrian. Total anggaran terakumulasi di seluruh pesan, dan setelah pengeluaran mencapai batas, pesan nanti dalam percakapan yang sama berakhir dengan hasil anggaran yang sama. [`/clear`](/docs/id/agent-sdk/cost-tracking) memulai anggaran dari awal

167 

168Kedua batas memperlakukan `0` secara berbeda:

169 

170* **`maxTurns` / `max_turns`**: `0` menjalankan sesi tanpa batas giliran, sama dengan membiarkan opsi tidak diatur

171* **`maxBudgetUsd` / `max_budget_usd`**: CLI menolak `0` sebagai jumlah yang tidak valid saat startup, dan sesi tidak pernah berjalan

172 

173Untuk informasi lebih lanjut tentang kedua batas, termasuk pengeluaran subagen, lihat [Giliran dan anggaran](/docs/id/agent-sdk/agent-loop#turns-and-budget).

174 

175<h2 id="change-configuration-mid-session">

176 Ubah konfigurasi di tengah sesi

177</h2>

178 

179Ketika Anda memulai sesi dengan [input streaming](/docs/id/agent-sdk/streaming-vs-single-mode), Anda dapat mengganti model dan mode izinnya saat berjalan. Tempat Anda memanggil setter berbeda menurut bahasa:

180 

181* **TypeScript**: metode pada objek yang `query()` kembalikan

182* **Python**: metode pada [`ClaudeSDKClient`](/docs/id/agent-sdk/python#claudesdkclient), karena `query()` mengembalikan iterator biasa tanpa metode kontrol

183 

184Kedua bahasa memiliki setter yang sama:

185 

186* **`setModel()` / `set_model()`**: mengganti model. Panggilnya tanpa model untuk beralih ke [model default Claude Code](/docs/id/model-config#default-model-setting) daripada `model` yang Anda berikan dalam opsi.

187* **`setPermissionMode()` / `set_permission_mode()`**: mengganti mode izin

188 

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

190 

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

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

193 

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

195 

196<CodeGroup>

197 ```typescript TypeScript theme={null}

198 import { query, type SDKUserMessage } from "@anthropic-ai/claude-agent-sdk";

199 

200 function userMessage(text: string): SDKUserMessage {

201 return { type: "user", message: { role: "user", content: text }, parent_tool_use_id: null };

202 }

203 

204 // Hold the second prompt until the setters have run.

205 let startSecondTurn!: () => void;

206 const secondTurnReady = new Promise<void>((resolve) => {

207 startSecondTurn = resolve;

208 });

209 

210 async function* turnPrompts(): AsyncGenerator<SDKUserMessage, void> {

211 yield userMessage("Reply with exactly: ready");

212 await secondTurnReady;

213 yield userMessage("Reply with exactly: done");

214 }

215 

216 const session = query({

217 prompt: turnPrompts(),

218 options: {

219 model: "claude-sonnet-5",

220 },

221 });

222 

223 let turnModel = "";

224 let completedTurns = 0;

225 

226 for await (const message of session) {

227 if (message.type === "assistant") {

228 turnModel = message.message.model;

229 } else if (message.type === "result") {

230 completedTurns += 1;

231 if (completedTurns === 1) {

232 console.log(`First turn model: ${turnModel}`);

233 await session.setModel("claude-opus-5");

234 await session.setPermissionMode("acceptEdits");

235 startSecondTurn();

236 } else {

237 console.log(`Second turn model: ${turnModel}`);

238 break;

239 }

240 }

241 }

242 ```

243 

244 ```python Python theme={null}

245 import asyncio

246 

247 from claude_agent_sdk import AssistantMessage, ClaudeAgentOptions, ClaudeSDKClient

248 

249 async def main():

250 options = ClaudeAgentOptions(model="claude-sonnet-5")

251 

252 async with ClaudeSDKClient(options=options) as client:

253 await client.query("Reply with exactly: ready")

254 first_model = ""

255 async for message in client.receive_response():

256 if isinstance(message, AssistantMessage):

257 first_model = message.model

258 

259 await client.set_model("claude-opus-5")

260 await client.set_permission_mode("acceptEdits")

261 

262 await client.query("Reply with exactly: done")

263 second_model = ""

264 async for message in client.receive_response():

265 if isinstance(message, AssistantMessage):

266 second_model = message.model

267 

268 print(f"First turn model: {first_model}")

269 print(f"Second turn model: {second_model}")

270 

271 asyncio.run(main())

272 ```

273</CodeGroup>

274 

275Pada Claude API, program mencetak `First turn model: claude-sonnet-5`, kemudian `Second turn model: claude-opus-5` setelah pengalihan.

276 

277<Note>

278 Setiap model memiliki cache prompt-nya sendiri, jadi setelah pengalihan di tengah sesi, permintaan berikutnya menghitung ulang percakapan lengkap tanpa cache pada tarif model baru. Untuk informasi lebih lanjut, lihat [Mengganti model](/docs/id/prompt-caching#switching-models).

279</Note>

280 

281<h2 id="configure-specific-features">

282 Konfigurasi fitur spesifik

283</h2>

284 

285Tabel di bawah memetakan setiap opsi ke fitur yang dikonfigurasinya. Untuk opsi yang tidak dicakup halaman ini, lihat referensi [TypeScript](/docs/id/agent-sdk/typescript#options) dan [Python](/docs/id/agent-sdk/python#claudeagentoptions). Jika Anda tahu tujuan Anda tetapi tidak tahu opsi mana yang melayaninya, mulai dari [Pilih fitur yang tepat](/docs/id/agent-sdk/claude-code-features#choose-the-right-feature).

286 

287| TypeScript | Python | Mengontrol | Tercakup dalam |

288| ------------------------- | --------------------------- | ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

289| `permissionMode` | `permission_mode` | Apa yang dapat dilakukan agen tanpa persetujuan | [Konfigurasi izin](/docs/id/agent-sdk/permissions) |

290| `allowedTools` | `allowed_tools` | Panggilan alat mana yang pra-disetujui | [Konfigurasi izin](/docs/id/agent-sdk/permissions) |

291| `canUseTool` | `can_use_tool` | Callback persetujuan Anda untuk panggilan alat | [Tangani permintaan persetujuan alat](/docs/id/agent-sdk/user-input#handle-tool-approval-requests) |

292| `systemPrompt` | `system_prompt` | Instruksi agen | [Memodifikasi prompt sistem](/docs/id/agent-sdk/modifying-system-prompts) |

293| `settingSources` | `setting_sources` | Pengaturan sistem file mana yang dimuat | [Gunakan fitur Claude Code di SDK](/docs/id/agent-sdk/claude-code-features) |

294| `mcpServers` | `mcp_servers` | Server alat eksternal | [Hubungkan ke alat eksternal dengan MCP](/docs/id/agent-sdk/mcp) |

295| `agents` | `agents` | Definisi subagen | [Subagen](/docs/id/agent-sdk/subagents) |

296| `hooks` | `hooks` | Callback pada titik siklus hidup | [Hooks](/docs/id/agent-sdk/hooks) |

297| `skills` | `skills` | Skill mana yang dimuat | [Perluas agen dengan skill](/docs/id/agent-sdk/skills) |

298| `plugins` | `plugins` | Plugin mana yang dimuat | [Plugin](/docs/id/agent-sdk/plugins) |

299| `outputFormat` | `output_format` | Skema output terstruktur | [Output terstruktur](/docs/id/agent-sdk/structured-outputs) |

300| `resume` | `resume` | Melanjutkan sesi tersimpan | [Sesi](/docs/id/agent-sdk/sessions) |

301| `forkSession` | `fork_session` | Percabangan sesi | [Sesi](/docs/id/agent-sdk/sessions) |

302| `sessionStore` | `session_store` | Persistensi sesi eksternal | [Penyimpanan sesi](/docs/id/agent-sdk/session-storage) |

303| `enableFileCheckpointing` | `enable_file_checkpointing` | Edit file yang dapat diputar ulang | [Checkpointing file](/docs/id/agent-sdk/file-checkpointing) |

304| `effort` | `effort` | Berapa banyak pekerjaan yang Claude masukkan ke dalam respons | [Tingkat upaya](/docs/id/agent-sdk/agent-loop#effort-level) |

305| `sandbox` | `sandbox` | Perilaku sandbox untuk eksekusi alat | Referensi [TypeScript](/docs/id/agent-sdk/typescript#sandbox-configuration) dan [Python](/docs/id/agent-sdk/python#sandbox-configuration), dengan konteks penyebaran di [Penyebaran aman](/docs/id/agent-sdk/secure-deployment) |

306 

307<h2 id="next-steps">

308 Langkah berikutnya

309</h2>

310 

311Untuk melihat konfigurasi yang disusun menjadi agen yang berfungsi:

312 

313* **[Quickstart](/docs/id/agent-sdk/quickstart)**: bangun dan jalankan agen pertama dari awal hingga akhir

314* **[Contoh](/docs/id/agent-sdk/examples)**: temukan proyek lengkap yang dapat dijalankan atau resep Claude Cookbook yang dipandu yang cocok dengan apa yang ingin Anda bangun

315* **[Isolasi multi-penyewa](/docs/id/agent-sdk/hosting#multi-tenant-isolation)**: isolasi pengaturan dan memori setiap penyewa dengan `settingSources` / `setting_sources`, `env`, dan `cwd`

Details

78 78 

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

80 80 

81`maxBudgetUsd`, atau `max_budget_usd` dalam Python, dibandingkan dengan total berjalan yang sama, jadi `/clear` juga memulai anggaran ulang.81`maxBudgetUsd` (TypeScript) atau `max_budget_usd` (Python) dibandingkan dengan total berjalan yang sama, jadi `/clear` juga memulai anggaran ulang.

82 82 

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

84 Dapatkan total biaya dari sebuah query84 Dapatkan total biaya dari sebuah query

Details

138 138 

139Teruskan server MCP yang Anda buat ke `query` melalui opsi `mcpServers`. Kunci dalam `mcpServers` menjadi segmen `{server_name}` dalam nama lengkap setiap alat: `mcp__{server_name}__{tool_name}`. Daftarkan nama itu dalam `allowedTools` sehingga alat berjalan tanpa prompt izin.139Teruskan server MCP yang Anda buat ke `query` melalui opsi `mcpServers`. Kunci dalam `mcpServers` menjadi segmen `{server_name}` dalam nama lengkap setiap alat: `mcp__{server_name}__{tool_name}`. Daftarkan nama itu dalam `allowedTools` sehingga alat berjalan tanpa prompt izin.

140 140 

141Potongan ini menggunakan kembali `weatherServer` dari [contoh di atas](#weather-tool-example) untuk menanyakan Claude tentang cuaca di lokasi tertentu.141Potongan ini menggunakan kembali `weatherServer` dari [contoh alat cuaca](#weather-tool-example) untuk menanyakan Claude tentang cuaca di lokasi tertentu.

142 142 

143<CodeGroup>143<CodeGroup>

144 ```python Python theme={null}144 ```python Python theme={null}

Details

179 </Step>179 </Step>

180 180 

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

182 Dengan opsi `replay-user-messages` yang diatur (ditunjukkan di atas), setiap pesan pengguna dalam aliran respons memiliki UUID yang berfungsi sebagai checkpoint.182 Dengan opsi `replay-user-messages` yang diatur, setiap pesan pengguna dalam aliran respons memiliki UUID yang berfungsi sebagai checkpoint.

183 183 

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

185 185 

Details

826 826 

827Claude Code menjalankan setiap callback dengan timeout, yang Anda atur dalam hitungan detik dengan field `timeout` pada `HookMatcher`-nya. Ketika Anda tidak mengaturnya, Claude Code menggunakan default event: 600 detik untuk sebagian besar events, 30 detik untuk `UserPromptSubmit`, `PreModelSwitch`, dan `PostModelSwitch`, dan 10 detik untuk `MessageDisplay`. Claude Code menjalankan callbacks `SessionEnd` selama shutdown di bawah [SessionEnd timeout budget](/docs/id/hooks#sessionend-input) yang lebih pendek, 1,5 detik secara default.827Claude Code menjalankan setiap callback dengan timeout, yang Anda atur dalam hitungan detik dengan field `timeout` pada `HookMatcher`-nya. Ketika Anda tidak mengaturnya, Claude Code menggunakan default event: 600 detik untuk sebagian besar events, 30 detik untuk `UserPromptSubmit`, `PreModelSwitch`, dan `PostModelSwitch`, dan 10 detik untuk `MessageDisplay`. Claude Code menjalankan callbacks `SessionEnd` selama shutdown di bawah [SessionEnd timeout budget](/docs/id/hooks#sessionend-input) yang lebih pendek, 1,5 detik secara default.

828 828 

829Ketika callback melampaui timeout-nya, Claude Code membatalkannya dan memperlakukannya sebagai hook yang gagal: ia membuang output callback dan sesi berlanjut daripada hang. Apa yang terjadi selanjutnya tergantung pada event:829Ketika callback melampaui timeout-nya, Claude Code membatalkannya dan membuang output-nya, dan sesi berlanjut daripada hang. Apa yang terjadi selanjutnya tergantung pada event:

830 830 

831* `PreToolUse`: Claude Code tidak menjalankan tool call, Claude menerima hasil tool yang menyatakan hook tidak merespons sebelum timeout-nya, dan turn berlanjut. Jika hook `PreToolUse` lain mengembalikan explicit deny, Claude menerima denial itu sebagai gantinya dari error timeout. Sebelum v2.1.210, Claude Code melaporkan timeout ke Claude sebagai user rejection, yang membuat unattended sessions berhenti dan menunggu input.831* `PreToolUse`: Claude Code tidak menjalankan tool call, Claude menerima hasil tool yang menyatakan hook tidak merespons sebelum timeout-nya, dan turn berlanjut. Jika hook `PreToolUse` lain mengembalikan explicit deny, Claude menerima denial itu sebagai gantinya dari error timeout. Sebelum v2.1.210, Claude Code melaporkan timeout ke Claude sebagai user rejection, yang membuat unattended sessions berhenti dan menunggu input.

832* `PostToolUse` dan `PostToolUseFailure`: Claude Code menyimpan hasil tool dan turn berlanjut.832* `PostToolUse` dan `PostToolUseFailure`: Claude Code menyimpan hasil tool dan turn berlanjut.

833* `UserPromptSubmit` dan [`UserPromptExpansion`](/docs/id/hooks#userpromptexpansion): Claude Code memblokir prompt dengan pesan yang menyebutkan hook dan timeout, dan sesi berlanjut. Karena callback pada events ini dapat bertindak sebagai policy gate, Claude Code tidak pernah membiarkan prompt yang timed-out melewati tanpa screening. Sebelum v2.1.208, Claude Code mengakhiri query dengan `error_during_execution` ketika callback pada events ini timed out.833* `UserPromptSubmit` dan [`UserPromptExpansion`](/docs/id/hooks#userpromptexpansion): Claude Code memblokir prompt dengan pesan yang menyebutkan hook dan timeout, dan sesi berlanjut. Karena callback pada events ini dapat bertindak sebagai policy gate, Claude Code tidak pernah membiarkan prompt yang timed-out melewati tanpa screening. Sebelum v2.1.208, Claude Code mengakhiri query dengan `error_during_execution` ketika callback pada events ini timed out.

834* `Stop` dan `SubagentStop`: Claude Code menampilkan warning dan agent berhenti secara normal.834* `Stop` dan `SubagentStop`: callback yang timed-out dihitung sebagai tidak mengembalikan keputusan. Agent atau subagent berhenti seolah-olah callback itu telah mengizinkannya, dan keputusan dari hooks lain Anda pada event masih berlaku. Sebelum Claude Code v2.1.273, callback `Stop` atau `SubagentStop` yang timed-out dihitung sebagai failed hook run, dan Claude Code membuang keputusan hooks lain Anda pada event.

835* `SessionStart`: callback yang timed-out dihitung sebagai tidak mengembalikan output, dan sesi berlanjut dengan output dari hooks `SessionStart` lain Anda.

835* `PreModelSwitch`: Claude Code memblokir model switch. Hook yang tidak menjawab belum menyetujui switch.836* `PreModelSwitch`: Claude Code memblokir model switch. Hook yang tidak menjawab belum menyetujui switch.

836* Events lainnya, seperti `Notification`, `PreCompact`, dan `PostModelSwitch`: Claude Code mencatat kegagalan dan berlanjut.837* Events lainnya, seperti `Notification`, `PreCompact`, dan `PostModelSwitch`: Claude Code mencatat kegagalan dan berlanjut.

837 838 

839Pertama kali callback `Stop` atau `SessionStart` timed out di sesi utama, Claude Code juga menambahkan [`SDKInformationalMessage`](/docs/id/agent-sdk/typescript#sdkinformationalmessage) ke message stream mengatakan app yang menjalankan sesi tidak merespons. Timeouts kemudian tidak mengulangi pesan itu saat app Anda tetap tidak responsif.

840 

838Jika Anda mengganggu query saat callback tertunda, Claude Code membatalkan pending tool call. Sebelum v2.1.208, tool call masih bisa melanjutkan jika Anda mengganggu selama pending `PreToolUse` callback.841Jika Anda mengganggu query saat callback tertunda, Claude Code membatalkan pending tool call. Sebelum v2.1.208, tool call masih bisa melanjutkan jika Anda mengganggu selama pending `PreToolUse` callback.

839 842 

840Jika callback Anda membutuhkan lebih banyak waktu, atur `timeout` yang lebih tinggi pada `HookMatcher`-nya. Di TypeScript, gunakan `AbortSignal` dari argumen callback ketiga untuk menangani pembatalan dengan baik ketika timeout terjadi.843Jika callback Anda membutuhkan lebih banyak waktu, atur `timeout` yang lebih tinggi pada `HookMatcher`-nya. Di TypeScript, gunakan `AbortSignal` dari argumen callback ketiga untuk menangani pembatalan dengan baik ketika timeout terjadi.

Details

147 147 

148 declare const userInput: string;148 declare const userInput: string;

149 declare const sessionId: string; // looked up from your database by user149 declare const sessionId: string; // looked up from your database by user

150 declare const sessionStore: SessionStore; // S3, Redis, Postgres, or your own adapter150 declare const sessionStore: SessionStore; // an object store, key-value store, database, or your own adapter

151 151 

152 for await (const message of query({152 for await (const message of query({

153 prompt: userInput,153 prompt: userInput,


163 163 

164 user_input: str = ...164 user_input: str = ...

165 session_id: str = ... # looked up from your database by user165 session_id: str = ... # looked up from your database by user

166 session_store: SessionStore = ... # S3, Redis, Postgres, or your own adapter166 session_store: SessionStore = ... # an object store, key-value store, database, or your own adapter

167 167 

168 168 

169 async def main():169 async def main():


244 Persistensi sesi dan status244 Persistensi sesi dan status

245</h3>245</h3>

246 246 

247Disk lokal default hilang saat restart, scale-down, atau perpindahan ke node yang berbeda. Untuk sesi apa pun yang diharapkan pengguna untuk lanjutkan, cerminkan transkrip ke penyimpanan yang tahan lama dengan adaptor [`SessionStore`](/docs/id/agent-sdk/session-storage). Lihat [Implementasi referensi](/docs/id/agent-sdk/session-storage#reference-implementations) untuk adaptor S3, Redis, dan Postgres serta suite kepatuhan untuk milik Anda sendiri.247Disk lokal default hilang saat restart, scale-down, atau perpindahan ke node yang berbeda. Untuk sesi apa pun yang diharapkan pengguna untuk lanjutkan, cerminkan transkrip ke penyimpanan yang tahan lama dengan adaptor [`SessionStore`](/docs/id/agent-sdk/session-storage). Lihat [Implementasi referensi](/docs/id/agent-sdk/session-storage#reference-implementations) untuk adaptor contoh untuk object store, key-value store, dan database, serta suite kepatuhan untuk milik Anda sendiri.

248 248 

249Tiga hal yang perlu diketahui tentang perilaku `SessionStore`:249Tiga hal yang perlu diketahui tentang perilaku `SessionStore`:

250 250 

agent-sdk/mcp.md +12 −1

Details

156 Waktu koneksi156 Waktu koneksi

157</h2>157</h2>

158 158 

159Claude Code mendaftarkan server yang Anda berikan dalam `options.mcpServers` saat startup dan mengirimkan [pesan init](#error-handling) setelah penundaan putaran pertama, jika ada, terselesaikan. Tanpa `options.mcpServers`, Claude Code menunggu 2 detik untuk server yang tertunda sebelum putaran pertama, jadi server yang dimuat dari [file pengaturan](#from-a-config-file) seperti `.mcp.json` biasanya menunjukkan `pending` saat init. Ketika setiap server `options.mcpServers` terhubung, dan apakah itu menunda putaran pertama, tergantung pada jenisnya:159Claude Code mendaftarkan server yang Anda berikan dalam `options.mcpServers` saat startup dan mengirimkan [pesan init](#error-handling) setelah penundaan putaran pertama, jika ada, terselesaikan. Apakah setiap server `options.mcpServers` menunda putaran pertama, dan kapan server tersebut terhubung, tergantung pada jenisnya:

160 160 

161| Jenis server | Menunda putaran pertama? | Batas waktu tunggu putaran pertama |161| Jenis server | Menunda putaran pertama? | Batas waktu tunggu putaran pertama |

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


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

165| Server [SDK](#sdk-mcp-servers) dalam proses | Ya, sampai terhubung dan mencantumkan alatnya | Tidak ada; permintaan koneksi dan pencantuman alat masing-masing memiliki batas waktu sendiri |165| Server [SDK](#sdk-mcp-servers) dalam proses | Ya, sampai terhubung dan mencantumkan alatnya | Tidak ada; permintaan koneksi dan pencantuman alat masing-masing memiliki batas waktu sendiri |

166 166 

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

168 

169* **Dengan [pencarian alat](/docs/id/agent-sdk/tool-search), default**: penundaan mencakup server yang masih tertunda yang dikonfigurasi dengan [`alwaysLoad: true`](/docs/id/mcp#exempt-a-server-from-deferral) dan bukan sisanya. Sisanya terus terhubung di latar belakang. [Ketersediaan alat](/docs/id/mcp#tool-availability) menjelaskan bagaimana Claude mencapai alat mereka setelah terhubung.

170* **Tanpa pencarian alat**: penundaan mencakup setiap server yang tertunda. [Konfigurasi pencarian alat](/docs/id/agent-sdk/tool-search#configure-tool-search) mencakup apa yang mematikan pencarian alat. Jika Anda mengecualikan alat `ToolSearch` dari sesi, misalnya melalui `disallowedTools`, sesi juga berjalan tanpa pencarian alat.

171 

172Jika Anda menetapkan `permissionPromptToolName`, putaran pertama juga menunggu server alat tersebut dalam setiap kasus, hingga `MCP_TIMEOUT`.

173 

174Untuk menetapkan penundaan putaran pertama sendiri, tambahkan `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` ke [opsi `env`](/docs/id/agent-sdk/configuration#set-environment-variables), misalnya `CLAUDE_CODE_MCP_STARTUP_WAIT_MS: "5000"`. Putaran pertama kemudian menunggu hingga banyak milidetik untuk setiap server yang tertunda, terlepas dari apakah pencarian alat tersedia. Batas waktu ini juga menggantikan penundaan putaran pertama `MCP_TIMEOUT` untuk server stdio, HTTP, dan SSE dalam `options.mcpServers`. `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` memerlukan Claude Code v2.1.274 atau lebih baru.

175 

176Server yang masih tertunda ketika penundaan berakhir terus terhubung di latar belakang. Atur variabel ke `0` untuk melewati penundaan. Server `permissionPromptToolName` mempertahankan penundaan `MCP_TIMEOUT` sendiri terlepas dari nilainya.

177 

167Untuk memblokir startup itu sendiri pada fase terpisah yang lebih awal daripada penundaan putaran pertama, sebelum pesan init dikirim:178Untuk memblokir startup itu sendiri pada fase terpisah yang lebih awal daripada penundaan putaran pertama, sebelum pesan init dikirim:

168 179 

169* Atur [`MCP_CONNECTION_NONBLOCKING`](/docs/id/env-vars) ke `0` untuk memblokir seluruh batch koneksi. Claude Code membatasi penundaan tersebut pada 5 detik secara default. Sesuaikan batas dengan variabel lingkungan [`MCP_CONNECT_TIMEOUT_MS`](/docs/id/env-vars), dalam milidetik. Server yang masih tertunda pada batas waktu tersebut terus terhubung di latar belakang.180* Atur [`MCP_CONNECTION_NONBLOCKING`](/docs/id/env-vars) ke `0` untuk memblokir seluruh batch koneksi. Claude Code membatasi penundaan tersebut pada 5 detik secara default. Sesuaikan batas dengan variabel lingkungan [`MCP_CONNECT_TIMEOUT_MS`](/docs/id/env-vars), dalam milidetik. Server yang masih tertunda pada batas waktu tersebut terus terhubung di latar belakang.

Details

152 152 

153Setelah dibuat, aktifkan output styles melalui:153Setelah dibuat, aktifkan output styles melalui:

154 154 

155* **CLI**: jalankan `/config` dan pilih output style155* **CLI**: jalankan `/output-style <style>`, misalnya `/output-style concise`, atau jalankan `/config` dan pilih satu. Perintah `/output-style` memerlukan Claude Code v2.1.269 atau lebih baru.

156* **Settings**: atur `outputStyle` di `.claude/settings.local.json`156* **Settings**: atur `outputStyle` di `.claude/settings.local.json`

157* **TypeScript SDK**: atur `outputStyle` di dalam objek `settings` inline yang dilewatkan ke `query()`, atau arahkan `settings` ke file pengaturan yang menetapkannya. `outputStyle` bukan field `Options` tingkat atas:157* **TypeScript SDK**: atur `outputStyle` di dalam objek `settings` inline yang dilewatkan ke `query()`, atau arahkan `settings` ke file pengaturan yang menetapkannya. `outputStyle` bukan field `Options` tingkat atas:

158 158 


352 Cache bagian statis dari prompt khusus352 Cache bagian statis dari prompt khusus

353</h4>353</h4>

354 354 

355Dalam TypeScript SDK, Anda dapat melewatkan prompt khusus sebagai array string alih-alih satu string, dengan penanda `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` antara bagian statis dan sisanya. Gunakan ini ketika prompt Anda menggabungkan instruksi yang sama pada setiap permintaan dengan konteks yang berubah per permintaan, seperti pelanggan atau tiket yang ditangani agen. Ketika Anda melewatkan kedua bagian sebagai satu string, perubahan pada bagian per-permintaan mengubah seluruh system prompt, sehingga instruksi statis melewatkan cache juga. Bentuk ini tidak tersedia dalam Python SDK, yang opsi `system_prompt` menerima string, preset, atau [file](/docs/id/agent-sdk/python#systempromptfile).355Dalam TypeScript SDK, Anda dapat melewatkan prompt khusus sebagai array string alih-alih satu string, dengan penanda `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` antara bagian statis dan sisanya. Gunakan ini ketika prompt Anda menggabungkan instruksi yang sama pada setiap permintaan dengan konteks yang berubah per permintaan, seperti pelanggan atau tiket yang ditangani agen. Ketika Anda melewatkan kedua bagian sebagai satu string, perubahan pada bagian per-permintaan mengubah seluruh system prompt, sehingga instruksi statis melewatkan cache juga. Bentuk array tidak tersedia dalam Python SDK; [`ClaudeAgentOptions`](/docs/id/agent-sdk/python#claudeagentoptions) mencantumkan bentuk yang `system_prompt` terima.

356 356 

357<Note>357<Note>

358 SDK membagi prompt hanya ketika memanggil Claude API secara langsung atau berjalan di [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Dalam setiap konfigurasi lain, seperti Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, atau [LLM gateway](/docs/id/llm-gateway-connect), dan kapan pun Anda menetapkan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities), SDK mengirim seluruh prompt sebagai satu blok, sama seperti melewatkan satu string.358 SDK membagi prompt hanya ketika memanggil Claude API secara langsung atau berjalan di [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Dalam setiap konfigurasi lain, seperti Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, atau [LLM gateway](/docs/id/llm-gateway-connect), dan kapan pun Anda menetapkan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities), SDK mengirim seluruh prompt sebagai satu blok, sama seperti melewatkan satu string.


391 Ubah prompt dari sesi yang ada391 Ubah prompt dari sesi yang ada

392</h3>392</h3>

393 393 

394Secara default, Claude Code membangun system prompt sekali, pada permintaan pertama sesi, dengan teks `append` atau prompt khusus Anda disertakan, dan mencatatnya dalam sesi. Sampai sesi dikompakkan, setiap permintaan kemudian menggunakan prompt yang dicatat itu, termasuk setelah Anda kembali ke sesi dengan `resume` atau `continue`. Jika Anda melewatkan `append` atau prompt khusus yang berbeda pada panggilan kemudian itu, itu berlaku setelah sesi dikompakkan atau dalam sesi baru.394Secara default, jika Anda melewatkan `append` atau prompt khusus yang berbeda ketika Anda kembali ke sesi dengan `resume` atau `continue`, Claude tidak melihatnya pada giliran berikutnya. Claude Code mencatat system prompt pada permintaan pertama sesi dan menggunakan kembali catatan itu sampai sesi dikompakkan. Teks baru berlaku setelah pemadatan itu, atau dalam sesi baru.

395 395 

396Jika Anda memulai Claude Code dalam [bare mode](/docs/id/headless#start-faster-with-bare-mode) dengan melewatkan `--bare` melalui `extraArgs` atau menetapkan `CLAUDE_CODE_SIMPLE=1`, pencatatan tetap mati kecuali Anda menetapkan `snapshot: true` pada bentuk objek `systemPrompt`. Pencatatan `append` atau prompt khusus secara default memerlukan Claude Code v2.1.265 atau lebih baru, yang TypeScript Agent SDK bundel dari v0.3.265. Sebelum Claude Code v2.1.268, sesi yang tidak [mengambil feature flags](/docs/id/env-vars#features-that-need-feature-flag-fetching), termasuk sesi di Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry, membangun kembali prompt pada setiap permintaan dan `snapshot` tidak berpengaruh.396<h4 id="update-claude’s-instructions-mid-session">

397 Perbarui instruksi Claude di tengah-sesi

398</h4>

399 

400Jika instruksi yang Anda masukkan dalam system prompt perlu berubah saat sesi berjalan, misalnya karena pengguna Anda beralih agen ke mode read-only atau mengedit konfigurasinya di aplikasi Anda, kirim instruksi baru dalam percakapan alih-alih mengubah `systemPrompt`:

401 

402* **Dalam pesan Anda berikutnya**: sertakan instruksi baru dalam pesan pengguna berikutnya yang Anda kirim.

403* **Dari hook**: kembalikan [`additionalContext`](/docs/id/hooks#add-context-for-claude) dari callback hook `UserPromptSubmit` atau `PostToolUse` [hook callback](/docs/id/agent-sdk/hooks#outputs), ditulis sebagai pernyataan faktual seperti "Workspace sekarang read-only". SDK menyisipkan teks ke dalam percakapan pada titik di mana hook dipecat, sehingga prompt yang dicatat tetap tidak berubah.

404 

405<h4 id="turn-recording-off-while-you-iterate-on-wording">

406 Matikan pencatatan saat Anda mengulangi redaksi

407</h4>

408 

409Saat Anda mengulangi redaksi prompt dan ingin setiap edit mencapai sesi yang Anda lanjutkan, atur `snapshot` ke false pada bentuk objek system prompt. Claude Code kemudian membangun kembali prompt pada setiap permintaan. Field tersedia pada bentuk preset dan custom dari [`systemPrompt`](/docs/id/agent-sdk/typescript#options) di TypeScript dan dari [`system_prompt`](/docs/id/agent-sdk/python#systempromptpreset) di Python, dan memerlukan `@anthropic-ai/claude-agent-sdk` v0.3.257 atau lebih baru, atau `claude-agent-sdk` v0.2.153 atau lebih baru.

410 

411Pertahankan pencatatan aktif dalam produksi. Dengan pencatatan mati, `append` atau prompt khusus yang berbeda pada sesi yang dilanjutkan mencapai Claude pada giliran berikutnya, dan permintaan itu tidak dapat menggunakan kembali [prompt cache](/docs/id/prompt-caching#how-the-cache-is-organized) sesi. Di mana API memberlakukan [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking), Claude juga kehilangan pemikirannya dari giliran sebelumnya.

412 

413Di luar [cloud sessions](/docs/id/cloud-environments), jika Anda memulai Claude Code dalam [bare mode](/docs/id/headless#start-faster-with-bare-mode) dengan melewatkan `--bare` melalui `extraArgs` atau menetapkan `CLAUDE_CODE_SIMPLE=1`, pencatatan tetap mati kecuali Anda menetapkan `snapshot: true`.

397 414 

398Untuk membangun kembali prompt pada setiap permintaan sebagai gantinya, atur `snapshot: false` pada bentuk objek `systemPrompt` dalam TypeScript SDK: `{ type: "preset", preset: "claude_code", append, snapshot: false }` atau `{ type: "custom", prompt, snapshot: false }`. Gunakan bentuk ini saat Anda mengulangi redaksi prompt, atau ketika aplikasi Anda mengubah `append` antara panggilan yang melanjutkan sesi yang sama. Field `snapshot` memerlukan `@anthropic-ai/claude-agent-sdk` v0.3.257 atau lebih baru.415Pencatatan `append` atau prompt khusus secara default memerlukan Claude Code v2.1.265 atau lebih baru, yang TypeScript Agent SDK bundel dari v0.3.265 dan Python Agent SDK dari v0.2.153. Sebelum Claude Code v2.1.268, sesi yang tidak [mengambil feature flags](/docs/id/env-vars#features-that-need-feature-flag-fetching), termasuk sesi di Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry, membangun kembali prompt pada setiap permintaan dan `snapshot` tidak berpengaruh.

399 416 

400<h2 id="compare-the-four-approaches">417<h2 id="compare-the-four-approaches">

401 Perbandingan keempat pendekatan418 Perbandingan keempat pendekatan

Details

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

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

253| `OTEL_LOG_TOOL_DETAILS=1` | Tool input arguments (file paths, shell commands, search patterns) pada events `claude_code.tool_result` |253| `OTEL_LOG_TOOL_DETAILS=1` | Tool input arguments (file paths, shell commands, search patterns) pada events `claude_code.tool_result` |

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

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

256 256 

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

Details

78 78 

79* "Claude Agent", lebih disukai untuk menu dropdown79* "Claude Agent", lebih disukai untuk menu dropdown

80* "Claude", ketika sudah dalam menu berlabel "Agents"80* "Claude", ketika sudah dalam menu berlabel "Agents"

81* "{YourAgentName} Powered by Claude", jika Anda memiliki nama agen yang ada81* "\{YourAgentName} Powered by Claude", jika Anda memiliki nama agen yang ada

82 82 

83**Tidak diizinkan:**83**Tidak diizinkan:**

84 84 

Details

301 301 

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

303 303 

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

305 

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

305 307 

306**Gunakan ketika:** Anda ingin Claude mengusulkan perubahan tanpa menjalankannya, seperti selama tinjauan kode atau ketika Anda perlu menyetujui perubahan sebelum dibuat.308**Gunakan ketika:** Anda ingin Claude mengusulkan perubahan tanpa menjalankannya, seperti selama tinjauan kode atau ketika Anda perlu menyetujui perubahan sebelum dibuat.

Details

119</h4>119</h4>

120 120 

121| Parameter | Tipe | Deskripsi |121| Parameter | Tipe | Deskripsi |

122| :------------- | :---------------------------------------------- | :----------------------------------------------------------------------- |122| :------------- | :---------------------------------------------- | :---------------------------------------------------------------------------------------------- |

123| `name` | `str` | Pengenal unik untuk tool |123| `name` | `str` | Pengenal unik untuk tool |

124| `description` | `str` | Deskripsi yang dapat dibaca manusia tentang apa yang dilakukan tool |124| `description` | `str` | Deskripsi yang dapat dibaca manusia tentang apa yang dilakukan tool |

125| `input_schema` | `type \| dict[str, Any]` | Skema yang mendefinisikan parameter input tool (lihat di bawah) |125| `input_schema` | `type \| dict[str, Any]` | Skema yang mendefinisikan parameter input tool. Lihat [Opsi skema input](#input-schema-options) |

126| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Anotasi tool MCP opsional yang memberikan petunjuk perilaku kepada klien |126| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Anotasi tool MCP opsional yang memberikan petunjuk perilaku kepada klien |

127 127 

128<h4 id="input-schema-options">128<h4 id="input-schema-options">


537| `receive_response()` | Terima pesan hingga dan termasuk ResultMessage |537| `receive_response()` | Terima pesan hingga dan termasuk ResultMessage |

538| `interrupt()` | Kirim sinyal interrupt (hanya bekerja dalam mode streaming) |538| `interrupt()` | Kirim sinyal interrupt (hanya bekerja dalam mode streaming) |

539| `set_permission_mode(mode)` | Ubah mode izin untuk sesi saat ini |539| `set_permission_mode(mode)` | Ubah mode izin untuk sesi saat ini |

540| `set_model(model)` | Ubah model untuk sesi saat ini. Teruskan `None` untuk reset ke default |540| `set_model(model)` | Ubah model untuk sesi saat ini. Teruskan `None` untuk reset ke [model default Claude Code](/docs/id/model-config) |

541| `rewind_files(user_message_id)` | Pulihkan file ke keadaan mereka pada pesan pengguna yang ditentukan. Memerlukan `enable_file_checkpointing=True`. Lihat [File checkpointing](/docs/id/agent-sdk/file-checkpointing) |541| `rewind_files(user_message_id)` | Pulihkan file ke keadaan mereka pada pesan pengguna yang ditentukan. Memerlukan `enable_file_checkpointing=True`. Lihat [File checkpointing](/docs/id/agent-sdk/file-checkpointing) |

542| `get_mcp_status()` | Dapatkan status semua server MCP yang dikonfigurasi. Mengembalikan [`McpStatusResponse`](#mcpstatusresponse) |542| `get_mcp_status()` | Dapatkan status semua server MCP yang dikonfigurasi. Mengembalikan [`McpStatusResponse`](#mcpstatusresponse) |

543| `reconnect_mcp_server(server_name)` | Coba lagi menghubungkan ke server MCP yang gagal atau terputus |543| `reconnect_mcp_server(server_name)` | Coba lagi menghubungkan ke server MCP yang gagal atau terputus |


845class ClaudeAgentOptions:845class ClaudeAgentOptions:

846 tools: list[str] | ToolsPreset | None = None846 tools: list[str] | ToolsPreset | None = None

847 allowed_tools: list[str] = field(default_factory=list)847 allowed_tools: list[str] = field(default_factory=list)

848 system_prompt: str | SystemPromptPreset | SystemPromptFile | None = None848 system_prompt: str | SystemPromptPreset | SystemPromptCustom | SystemPromptFile | None = None

849 mcp_servers: dict[str, McpServerConfig] | str | Path = field(default_factory=dict)849 mcp_servers: dict[str, McpServerConfig] | str | Path = field(default_factory=dict)

850 strict_mcp_config: bool = False850 strict_mcp_config: bool = False

851 permission_mode: PermissionMode | None = None851 permission_mode: PermissionMode | None = None


894```894```

895 895 

896| Properti | Tipe | Default | Deskripsi |896| Properti | Tipe | Default | Deskripsi |

897| :---------------------------- | :------------------------------------------------------------------------------------ | :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |897| :---------------------------- | :------------------------------------------------------------------------------------ | :--------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

898| `tools` | `list[str] \| ToolsPreset \| None` | `None` | Konfigurasi tools. Gunakan `{"type": "preset", "preset": "claude_code"}` untuk tools default Claude Code |898| `tools` | `list[str] \| ToolsPreset \| None` | `None` | Konfigurasi tools. Gunakan `{"type": "preset", "preset": "claude_code"}` untuk tools default Claude Code |

899| `allowed_tools` | `list[str]` | `[]` | Tools untuk auto-approve tanpa prompt. Ini tidak membatasi Claude hanya pada tools ini. Jika Anda menyebutkan salah satu dari [task-tracking tools](/docs/id/agent-sdk/todo-tracking#model-availability) di sini, Claude Code juga memilih sesi. Tools lainnya yang tidak terdaftar jatuh ke `permission_mode` dan `can_use_tool`. Gunakan `disallowed_tools` untuk memblokir tools. Lihat [Permissions](/docs/id/agent-sdk/permissions#allow-and-deny-rules) |899| `allowed_tools` | `list[str]` | `[]` | Tools untuk auto-approve tanpa prompt. Ini tidak membatasi Claude hanya pada tools ini. Jika Anda menyebutkan salah satu dari [task-tracking tools](/docs/id/agent-sdk/todo-tracking#model-availability) di sini, Claude Code juga memilih sesi. Tools lainnya yang tidak terdaftar jatuh ke `permission_mode` dan `can_use_tool`. Gunakan `disallowed_tools` untuk memblokir tools. Lihat [Permissions](/docs/id/agent-sdk/permissions#allow-and-deny-rules) |

900| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptFile \| None` | `None` | Konfigurasi system prompt. Teruskan string untuk prompt kustom, `{"type": "preset", "preset": "claude_code"}` untuk system prompt Claude Code dengan `"append"` opsional, atau `{"type": "file", "path": "..."}` untuk memuat prompt besar dari disk. Lihat [`SystemPromptPreset`](#systempromptpreset) dan [`SystemPromptFile`](#systempromptfile) |900| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | Konfigurasi system prompt. Teruskan string untuk prompt kustom, `{"type": "preset", "preset": "claude_code"}` untuk system prompt Claude Code dengan `"append"` opsional, `{"type": "custom", "prompt": "..."}` untuk prompt kustom yang juga dapat mengatur `"snapshot"`, atau `{"type": "file", "path": "..."}` untuk memuat prompt besar dari disk. Lihat [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom), dan [`SystemPromptFile`](#systempromptfile) |

901| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | Konfigurasi server MCP atau jalur ke file konfigurasi |901| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | Konfigurasi server MCP atau jalur ke file konfigurasi |

902| `strict_mcp_config` | `bool` | `False` | Ketika `True`, gunakan hanya server yang diteruskan dalam `mcp_servers` dan abaikan `.mcp.json` proyek, pengaturan pengguna, server MCP yang disediakan plugin, dan [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai). Memetakan ke flag CLI `--strict-mcp-config` |902| `strict_mcp_config` | `bool` | `False` | Ketika `True`, gunakan hanya server yang diteruskan dalam `mcp_servers` dan abaikan `.mcp.json` proyek, pengaturan pengguna, server MCP yang disediakan plugin, dan [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai). Memetakan ke flag CLI `--strict-mcp-config` |

903| `permission_mode` | `PermissionMode \| None` | `None` | Mode izin untuk penggunaan tool |903| `permission_mode` | `PermissionMode \| None` | `None` | Mode izin untuk penggunaan tool |


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

906| `session_id` | `str \| None` | `None` | Gunakan ID sesi tertentu alih-alih yang dibuat otomatis. Harus UUID yang valid. Tidak dapat digabungkan dengan `continue_conversation` atau `resume` kecuali `fork_session` juga diatur |906| `session_id` | `str \| None` | `None` | Gunakan ID sesi tertentu alih-alih yang dibuat otomatis. Harus UUID yang valid. Tidak dapat digabungkan dengan `continue_conversation` atau `resume` kecuali `fork_session` juga diatur |

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

908| `max_budget_usd` | `float \| None` | `None` | Hentikan query ketika estimasi biaya sisi klien mencapai nilai USD ini. Dibandingkan dengan estimasi yang sama seperti `total_cost_usd`; lihat [Track cost and usage](/docs/id/agent-sdk/cost-tracking) untuk peringatan akurasi |908| `max_budget_usd` | `float \| None` | `None` | Hentikan query ketika estimasi biaya sisi klien mencapai nilai USD ini. Dibandingkan dengan estimasi yang sama seperti `total_cost_usd`. Untuk peringatan akurasi dan perilaku reset, lihat [Track cost and usage](/docs/id/agent-sdk/cost-tracking) |

909| `disallowed_tools` | `list[str]` | `[]` | Tools untuk ditolak. Nama bare seperti `"Bash"` menghapus tool dari konteks Claude. Aturan scoped seperti `"Bash(rm *)"` membiarkan tool tersedia dan menolak panggilan yang cocok di setiap mode izin, termasuk `bypassPermissions`, untuk perintah [seperti yang ditulis](/docs/id/permissions#bash-rule-limits). Lihat [Permissions](/docs/id/agent-sdk/permissions#allow-and-deny-rules) |909| `disallowed_tools` | `list[str]` | `[]` | Tools untuk ditolak. Nama bare seperti `"Bash"` menghapus tool dari konteks Claude. Aturan scoped seperti `"Bash(rm *)"` membiarkan tool tersedia dan menolak panggilan yang cocok di setiap mode izin, termasuk `bypassPermissions`, untuk perintah [seperti yang ditulis](/docs/id/permissions#bash-rule-limits). Lihat [Permissions](/docs/id/agent-sdk/permissions#allow-and-deny-rules) |

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

911| `model` | `str \| None` | `None` | Alias model Claude atau nama model lengkap. Lihat [nilai yang diterima dan ID khusus penyedia](/docs/id/model-config#available-models) |911| `model` | `str \| None` | `None` | Alias model Claude atau nama model lengkap. Lihat [nilai yang diterima dan ID khusus penyedia](/docs/id/model-config#available-models) |

912| `fallback_model` | `str \| None` | `None` | Model fallback yang akan digunakan jika model utama gagal |912| `fallback_model` | `str \| None` | `None` | Model fallback yang akan digunakan jika model utama gagal. Menerima daftar yang dipisahkan koma. Untuk panduan, lihat [Choose a model](/docs/id/agent-sdk/configuration#choose-a-model) |

913| `betas` | `list[SdkBeta]` | `[]` | Fitur beta untuk diaktifkan. Lihat [`SdkBeta`](#sdkbeta) untuk opsi yang tersedia |913| `betas` | `list[SdkBeta]` | `[]` | Fitur beta untuk diaktifkan. Lihat [`SdkBeta`](#sdkbeta) untuk opsi yang tersedia |

914| `output_format` | `dict[str, Any] \| None` | `None` | Format output untuk respons terstruktur (misalnya, `{"type": "json_schema", "schema": {...}}`). Lihat [Structured outputs](/docs/id/agent-sdk/structured-outputs) untuk detail |914| `output_format` | `dict[str, Any] \| None` | `None` | Format output untuk respons terstruktur (misalnya, `{"type": "json_schema", "schema": {...}}`). Lihat [Structured outputs](/docs/id/agent-sdk/structured-outputs) untuk detail |

915| `permission_prompt_tool_name` | `str \| None` | `None` | Nama tool MCP untuk prompt izin |915| `permission_prompt_tool_name` | `str \| None` | `None` | Nama tool MCP untuk prompt izin |

916| `cwd` | `str \| Path \| None` | `None` | Direktori kerja saat ini |916| `cwd` | `str \| Path \| None` | `None` | Direktori kerja saat ini |

917| `cli_path` | `str \| Path \| None` | `None` | Jalur kustom ke executable CLI Claude Code |917| `cli_path` | `str \| Path \| None` | `None` | Jalur kustom ke executable CLI Claude Code |

918| `settings` | `str \| None` | `None` | Jalur ke file pengaturan |918| `settings` | `str \| None` | `None` | Jalur ke file pengaturan atau string JSON inline |

919| `add_dirs` | `list[str \| Path]` | `[]` | Direktori tambahan yang dapat diakses Claude. SDK meneruskan setiap entri ke Claude Code sebagai `--add-dir`, jadi dengan sumber pengaturan `project` Claude Code juga [memuat skills, commands, dan subagents direktori](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) |919| `add_dirs` | `list[str \| Path]` | `[]` | Direktori tambahan yang dapat diakses Claude. SDK meneruskan setiap entri ke Claude Code sebagai `--add-dir`, jadi dengan sumber pengaturan `project` Claude Code juga [memuat skills, commands, dan subagents direktori](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) |

920| `env` | `dict[str, str]` | `{}` | Variabel lingkungan yang digabungkan di atas lingkungan proses yang diwarisi. Lihat [Environment variables](/docs/id/env-vars) untuk variabel yang dibaca CLI yang mendasar, dan [Handle slow or stalled API responses](#handle-slow-or-stalled-api-responses) untuk variabel terkait timeout |920| `env` | `dict[str, str]` | `{}` | Variabel lingkungan yang digabungkan di atas lingkungan proses yang diwarisi. Lihat [Environment variables](/docs/id/env-vars) untuk variabel yang dibaca CLI yang mendasar, dan [Handle slow or stalled API responses](#handle-slow-or-stalled-api-responses) untuk variabel terkait timeout |

921| `extra_args` | `dict[str, str \| None]` | `{}` | Argumen CLI tambahan untuk diteruskan langsung ke CLI |921| `extra_args` | `dict[str, str \| None]` | `{}` | Argumen CLI tambahan untuk diteruskan langsung ke CLI |


934| `agents` | `dict[str, AgentDefinition] \| None` | `None` | Subagent yang didefinisikan secara programatis |934| `agents` | `dict[str, AgentDefinition] \| None` | `None` | Subagent yang didefinisikan secara programatis |

935| `plugins` | `list[SdkPluginConfig]` | `[]` | Muat plugin kustom dari jalur lokal. Lihat [Plugins](/docs/id/agent-sdk/plugins) untuk detail |935| `plugins` | `list[SdkPluginConfig]` | `[]` | Muat plugin kustom dari jalur lokal. Lihat [Plugins](/docs/id/agent-sdk/plugins) untuk detail |

936| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Konfigurasi perilaku sandbox secara programatis. Lihat [Sandbox settings](#sandboxsettings) untuk detail |936| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Konfigurasi perilaku sandbox secara programatis. Lihat [Sandbox settings](#sandboxsettings) untuk detail |

937| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Kontrol pengaturan filesystem mana yang akan dimuat. Teruskan `[]` untuk menonaktifkan pengaturan pengguna, proyek, dan lokal. Pengaturan kebijakan terkelola dimuat terlepas dari itu; pengaturan yang dikelola server diambil ketika sesi mengautentikasi dengan kredensial organisasi pada [konfigurasi yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Lihat [Use Claude Code features](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) untuk input yang dibaca terlepas dari opsi ini, dan cara menonaktifkannya. |937| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Kontrol pengaturan filesystem mana yang akan dimuat. Teruskan `[]` untuk menonaktifkan pengaturan pengguna, proyek, dan lokal. Dengan `skills` diatur dan field ini tidak diatur, hanya sumber pengguna dan proyek yang dimuat. Atur `setting_sources` secara eksplisit untuk menyimpan pengaturan lokal. Pengaturan kebijakan terkelola endpoint dimuat terlepas dari itu; pengaturan yang dikelola server diambil ketika sesi mengautentikasi dengan kredensial organisasi pada [konfigurasi yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Untuk input yang dibaca terlepas dari opsi ini, lihat [What settingSources does not control](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

938| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills yang tersedia untuk sesi. Teruskan `"all"` untuk mengaktifkan setiap skill yang ditemukan, atau daftar nama skill. Teruskan nama yang tepat saja. SDK menolak nama yang salah bentuk dan bentuk wildcard dengan `ValueError` sebelum memulai proses Claude Code; pemeriksaan ini memerlukan Python Agent SDK 0.2.129 atau lebih baru. Ketika diatur, SDK secara otomatis menambahkan tool Skill ke `allowed_tools`. Jika Anda juga meneruskan `tools`, sertakan `"Skill"` dalam daftar itu. Lihat [Skills](/docs/id/agent-sdk/skills) |938| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills yang tersedia untuk sesi. Teruskan `"all"` untuk mengaktifkan setiap skill yang ditemukan, atau daftar nama skill. Teruskan nama yang tepat saja. SDK menolak nama yang salah bentuk dan bentuk wildcard dengan `ValueError` sebelum memulai proses Claude Code; pemeriksaan ini memerlukan Python Agent SDK 0.2.129 atau lebih baru. Ketika diatur, SDK secara otomatis menambahkan tool Skill ke `allowed_tools`. Jika Anda juga meneruskan `tools`, sertakan `"Skill"` dalam daftar itu. Lihat [Skills](/docs/id/agent-sdk/skills) |

939| `max_thinking_tokens` | `int \| None` | `None` | *Deprecated* - Token maksimal untuk blok thinking. Gunakan `thinking` sebagai gantinya |939| `max_thinking_tokens` | `int \| None` | `None` | *Deprecated* - Token maksimal untuk blok thinking. Gunakan `thinking` sebagai gantinya |

940| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Mengontrol perilaku extended thinking. Mengambil prioritas atas `max_thinking_tokens` |940| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Mengontrol perilaku extended thinking. Mengambil prioritas atas `max_thinking_tokens` |


1002 preset: Literal["claude_code"]1002 preset: Literal["claude_code"]

1003 append: NotRequired[str]1003 append: NotRequired[str]

1004 exclude_dynamic_sections: NotRequired[bool]1004 exclude_dynamic_sections: NotRequired[bool]

1005 snapshot: NotRequired[bool]

1005```1006```

1006 1007 

1007| Field | Diperlukan | Deskripsi |1008| Field | Diperlukan | Deskripsi |


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

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

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

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

1015 

1016<h3 id="systempromptcustom">

1017 `SystemPromptCustom`

1018</h3>

1019 

1020Prompt system kustom dalam bentuk objek, setara dengan melewatkan string sebagai `system_prompt`, yang juga dapat mengatur `snapshot`. Memerlukan `claude-agent-sdk` v0.2.153 atau lebih baru.

1021 

1022```python theme={null}

1023class SystemPromptCustom(TypedDict):

1024 type: Literal["custom"]

1025 prompt: str

1026 snapshot: NotRequired[bool]

1027```

1028 

1029| Field | Diperlukan | Deskripsi |

1030| :--------- | :--------- | :------------------------------------------------------------------------------------------------------------------------------- |

1031| `type` | Ya | Harus `"custom"` |

1032| `prompt` | Ya | Teks system prompt. Diteruskan ke CLI sebagai argumen command-line, jadi [batas panjang command-line](#systempromptfile) berlaku |

1033| `snapshot` | Tidak | Sama seperti [`SystemPromptPreset.snapshot`](#systempromptpreset), diterapkan ke `prompt` |

1013 1034 

1014<h3 id="systempromptfile">1035<h3 id="systempromptfile">

1015 `SystemPromptFile`1036 `SystemPromptFile`


1048 Perilaku default1069 Perilaku default

1049</h4>1070</h4>

1050 1071 

1051Ketika `setting_sources` dihilangkan atau `None`, `query()` memuat pengaturan filesystem yang sama seperti CLI Claude Code: pengguna, proyek, dan lokal. Pengaturan kebijakan terkelola dimuat dalam semua kasus; pengaturan yang dikelola server diambil ketika sesi mengautentikasi dengan kredensial organisasi pada [konfigurasi yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Lihat [What settingSources does not control](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) untuk input yang dibaca terlepas dari opsi ini, dan cara menonaktifkannya.1072Ketika `setting_sources` dihilangkan atau `None` dan `skills` tidak diatur, `query()` memuat pengaturan filesystem yang sama seperti CLI Claude Code: pengguna, proyek, dan lokal. Dengan `skills` diatur, baris [`setting_sources`](#claudeagentoptions) menjelaskan default saat ini. Pengaturan kebijakan terkelola endpoint dimuat dalam semua kasus; pengaturan yang dikelola server diambil ketika sesi mengautentikasi dengan kredensial organisasi pada [konfigurasi yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Untuk informasi lebih lanjut, lihat [What settingSources does not control](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control).

1052 1073 

1053<h4 id="why-use-setting_sources">1074<h4 id="why-use-setting_sources">

1054 Mengapa menggunakan setting\_sources1075 Mengapa menggunakan setting\_sources


11412. Pengaturan proyek (`.claude/settings.json`)11622. Pengaturan proyek (`.claude/settings.json`)

11423. Pengaturan pengguna (`~/.claude/settings.json`)11633. Pengaturan pengguna (`~/.claude/settings.json`)

1143 1164 

1144Opsi programatis seperti `agents` dan `allowed_tools` mengganti pengaturan filesystem pengguna, proyek, dan lokal. Pengaturan kebijakan terkelola mengambil prioritas atas opsi programatis.1165Opsi programatis seperti `agents`, `allowed_tools`, dan `settings` mengganti pengaturan filesystem pengguna, proyek, dan lokal. Pengaturan kebijakan terkelola mengambil prioritas atas opsi programatis.

1145 1166 

1146<h3 id="agentdefinition">1167<h3 id="agentdefinition">

1147 `AgentDefinition`1168 `AgentDefinition`


2693 Agent2714 Agent

2694</h3>2715</h3>

2695 2716 

2696**Nama tool:** `Agent`. Nama sebelumnya `Task` masih diterima sebagai alias, dan daftar `tools` dalam [`SystemMessage`](#systemmessage) init melaporkan tool ini sebagai `Task` untuk kompatibilitas mundur.2717**Nama tool:** `Agent`. Nama sebelumnya `Task` masih diterima sebagai alias, dan daftar `tools` dalam init [`SystemMessage`](#systemmessage) melaporkan tool ini sebagai `Task` untuk kompatibilitas mundur.

2697 2718 

2698**Input:**2719**Input:**

2699 2720 


2782```python theme={null}2803```python theme={null}

2783{2804{

2784 "status": "remote_launched",2805 "status": "remote_launched",

2785 "taskId": str, # ID tugas jarak jauh2806 "taskId": str, # ID tugas yang dikirimkan

2786 "sessionUrl": str, # Tautan ke sesi cloud jarak jauh2807 "sessionUrl": str, # Tautan ke sesi cloud

2787 "description": str, # Deskripsi tugas2808 "description": str, # Deskripsi tugas

2788 "prompt": str, # Prompt yang dijalankan agen2809 "prompt": str, # Prompt yang dijalankan agen

2789 "outputFile": str, # Jalur file tempat output agen ditulis2810 "outputFile": str, # Jalur file tempat output agen ditulis

2790}2811}

2791```2812```

2792 2813 

2793Mengembalikan hasil dari subagen. Output dibedakan pada bidang `status`: `"completed"` untuk tugas yang selesai, `"async_launched"` untuk tugas latar belakang, dan `"remote_launched"` untuk tugas yang Claude Code kirimkan ke sesi cloud jarak jauh, di mana `sessionUrl` menautkan ke sesi itu dan `taskId` mengidentifikasinya. Jika Claude Code [menyimpan worktree subagen yang terisolasi](/docs/id/worktrees#isolate-subagents-with-worktrees), `worktreePath` pada varian `completed` adalah tempat menemukannya, dan `worktreeBranch` adalah cabangnya ketika Claude Code membuat worktree dengan git.2814Mengembalikan hasil dari subagen. Output dibedakan pada bidang `status`: `"completed"` untuk tugas yang selesai, `"async_launched"` untuk tugas latar belakang, dan `"remote_launched"` untuk tugas yang Claude Code kirimkan ke sesi cloud, di mana `sessionUrl` menautkan ke sesi itu dan `taskId` mengidentifikasinya. Jika Claude Code [menyimpan worktree subagen yang terisolasi](/docs/id/worktrees#isolate-subagents-with-worktrees), `worktreePath` pada varian `completed` adalah tempat menemukannya, dan `worktreeBranch` adalah cabangnya ketika Claude Code membuat worktree dengan git.

2794 2815 

2795Pada varian `completed`, `resolvedModel` menamai model yang dimulai subagen, yang dapat berbeda dari input `model` yang diminta ketika [`availableModels`](/docs/id/model-config#restrict-model-selection) atau penggantian lain berlaku. Bidang ini memerlukan Claude Code v2.1.174 atau lebih baru. Pada varian `async_launched`, `resolvedModel` menamai model yang digunakan ketika agen pindah ke latar belakang, jadi swap yang terjadi sebelum backgrounding tercermin di sana. Bidang `modelsUsed` pada kedua varian mencantumkan model yang digunakan secara berurutan, dengan pengulangan berturut-turut yang runtuh; itu diatur hanya ketika model ditukar di tengah-run. `modelsUsed` dan perilaku `resolvedModel` saat backgrounding memerlukan Claude Code v2.1.212 atau lebih baru.2816Pada varian `completed`, `resolvedModel` menamai model yang dimulai subagen, yang dapat berbeda dari input `model` yang diminta ketika [`availableModels`](/docs/id/model-config#restrict-model-selection) atau penggantian lain berlaku. Bidang ini memerlukan Claude Code v2.1.174 atau lebih baru. Pada varian `async_launched`, `resolvedModel` menamai model yang digunakan ketika agen pindah ke latar belakang, jadi swap yang terjadi sebelum backgrounding tercermin di sana. Bidang `modelsUsed` pada kedua varian mencantumkan model yang digunakan secara berurutan, dengan pengulangan berturut-turut yang runtuh; itu diatur hanya ketika model ditukar di tengah-run. `modelsUsed` dan perilaku `resolvedModel` saat backgrounding memerlukan Claude Code v2.1.212 atau lebih baru.

2796 2817 

Details

62 </Tab>62 </Tab>

63 63 

64 <Tab title="Python (uv)">64 <Tab title="Python (uv)">

65 [uv](https://docs.astral.sh/uv/) adalah pengelola paket Python yang cepat yang menangani lingkungan virtual secara otomatis:65 [Instal uv](https://docs.astral.sh/uv/), pengelola paket Python yang cepat yang menangani lingkungan virtual secara otomatis. Kemudian inisialisasi proyek dan tambahkan SDK:

66 66 

67 ```bash theme={null}67 ```bash theme={null}

68 uv init68 uv init


356 356 

357Dengan `Bash` diaktifkan, coba: `"Write unit tests for utils.py, run them, and fix any failures"`357Dengan `Bash` diaktifkan, coba: `"Write unit tests for utils.py, run them, and fix any failures"`

358 358 

359Setiap snippet ini menetapkan bidang pada objek opsi yang sama. Untuk informasi lebih lanjut, lihat [Konfigurasi agen Anda](/docs/id/agent-sdk/configuration).

360 

359<h2 id="key-concepts">361<h2 id="key-concepts">

360 Konsep kunci362 Konsep kunci

361</h2>363</h2>


376 378 

377Sekarang Anda telah membuat agen pertama Anda, pelajari cara memperluas kemampuannya dan menyesuaikannya dengan kasus penggunaan Anda:379Sekarang Anda telah membuat agen pertama Anda, pelajari cara memperluas kemampuannya dan menyesuaikannya dengan kasus penggunaan Anda:

378 380 

381* **[Konfigurasi agen Anda](/docs/id/agent-sdk/configuration)**: susun objek opsi dan temukan halaman yang mencakup setiap pengaturan

379* **[Permissions](/docs/id/agent-sdk/permissions)**: kontrol apa yang dapat dilakukan agen Anda dan kapan memerlukan persetujuan382* **[Permissions](/docs/id/agent-sdk/permissions)**: kontrol apa yang dapat dilakukan agen Anda dan kapan memerlukan persetujuan

380* **[Hooks](/docs/id/agent-sdk/hooks)**: jalankan kode kustom sebelum atau sesudah panggilan alat383* **[Hooks](/docs/id/agent-sdk/hooks)**: jalankan kode kustom sebelum atau sesudah panggilan alat

381* **[Sessions](/docs/id/agent-sdk/sessions)**: bangun agen multi-turn yang mempertahankan konteks384* **[Sessions](/docs/id/agent-sdk/sessions)**: bangun agen multi-turn yang mempertahankan konteks

Details

4 4 

5# Simpan sesi ke penyimpanan eksternal5# Simpan sesi ke penyimpanan eksternal

6 6 

7> Cerminkan transkrip sesi ke S3, Redis, atau backend Anda sendiri sehingga host apa pun dapat melanjutkannya.7> Cerminkan transkrip sesi Agent SDK ke object store, key-value store, atau database Anda sendiri sehingga host lain dapat melanjutkan sesi Anda.

8 8 

9Secara default, SDK menulis transkrip sesi ke file JSONL di bawah `~/.claude/projects/` pada sistem file lokal. Adaptor `SessionStore` memungkinkan Anda mencerminkan transkrip tersebut ke backend Anda sendiri, seperti S3, Redis, atau database, sehingga sesi yang dibuat di satu host dapat dilanjutkan di host lain yang menjalankan dari direktori kerja yang cocok.9Secara default, SDK menulis transkrip sesi ke file JSONL di bawah `~/.claude/projects/` pada sistem file lokal. Adaptor `SessionStore` memungkinkan Anda mencerminkan transkrip tersebut ke backend Anda sendiri, seperti object store, key-value store, atau database, sehingga sesi yang dibuat di satu host dapat dilanjutkan di host lain yang menjalankan dari direktori kerja yang cocok.

10 10 

11Alasan umum untuk menggunakan session store:11Alasan umum untuk menggunakan session store:

12 12 

13* **Penerapan multi-host.** Fungsi serverless, pekerja yang diskalakan otomatis, dan runner CI tidak berbagi sistem file. Penyimpanan bersama memungkinkan replika melanjutkan sesi satu sama lain.13* **Penerapan multi-host.** Fungsi serverless, pekerja yang diskalakan otomatis, dan runner CI tidak berbagi sistem file. Penyimpanan bersama memungkinkan replika melanjutkan sesi satu sama lain.

14* **Daya tahan.** Kontainer lokal bersifat sementara. Penyimpanan yang didukung oleh S3 atau database bertahan melalui restart dan redeploy.14* **Daya tahan.** Kontainer lokal bersifat sementara. Penyimpanan eksternal bertahan melalui restart dan redeploy.

15* **Kepatuhan dan audit.** Simpan transkrip dalam penyimpanan yang sudah Anda kelola, dengan aturan retensi, enkripsi, dan kontrol akses Anda sendiri.15* **Kepatuhan dan audit.** Simpan transkrip dalam penyimpanan yang sudah Anda kelola, dengan aturan retensi, enkripsi, dan kontrol akses Anda sendiri.

16 16 

17<h2 id="the-sessionstore-interface">17<h2 id="the-sessionstore-interface">


197 197 

198Implementasikan `append` dan `load` terhadap backend Anda. Tambahkan `listSessions`, `listSessionSummaries`, `delete`, dan `listSubkeys` jika Anda ingin `listSessions()`, pembacaan metadata satu panggilan, `deleteSession()`, dan subagent resume bekerja terhadap penyimpanan.198Implementasikan `append` dan `load` terhadap backend Anda. Tambahkan `listSessions`, `listSessionSummaries`, `delete`, dan `listSubkeys` jika Anda ingin `listSessions()`, pembacaan metadata satu panggilan, `deleteSession()`, dan subagent resume bekerja terhadap penyimpanan.

199 199 

200Entri yang dilewatkan ke `append` diketik sebagai `SessionStoreEntry` (objek `{ type: string; ... }`). Perlakukan mereka sebagai nilai yang aman JSON yang tidak transparan: simpan dalam urutan dan kembalikan dari `load` dalam urutan yang sama. `load` harus mengembalikan entri yang deep-equal dengan apa yang ditambahkan; serialisasi byte-equal tidak diperlukan, jadi backend seperti Postgres `jsonb` yang mengurutkan ulang kunci objek tidak masalah.200Entri yang dilewatkan ke `append` diketik sebagai `SessionStoreEntry` (objek `{ type: string; ... }`). Perlakukan mereka sebagai nilai yang aman JSON yang tidak transparan: simpan dalam urutan dan kembalikan dari `load` dalam urutan yang sama. `load` harus mengembalikan entri yang deep-equal dengan apa yang ditambahkan; serialisasi byte-equal tidak diperlukan, jadi backend yang mengurutkan ulang kunci objek, seperti tipe kolom JSON biner, tidak masalah.

201 201 

202<h2 id="reference-implementations">202<h2 id="reference-implementations">

203 Implementasi referensi203 Implementasi referensi

204</h2>204</h2>

205 205 

206Repositori TypeScript SDK mencakup adaptor referensi yang dapat dijalankan untuk S3, Redis, dan Postgres di bawah [`examples/session-stores/`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores). Mereka tidak dipublikasikan ke npm; salin file `src/` yang Anda butuhkan ke proyek Anda dan instal klien backend yang sesuai.206Kedua repositori SDK mencakup adaptor referensi yang dapat dijalankan di bawah [`examples/session-stores/`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores) dalam TypeScript dan [`examples/session_stores/`](https://github.com/anthropics/claude-agent-sdk-python/tree/main/examples/session_stores) dalam Python. Ada satu adaptor per jenis penyimpanan, dan masing-masing menunjukkan bagaimana `append` dan `load` memetakan ke jenis backend tersebut. Mereka tidak dipublikasikan sebagai paket; salin adaptor untuk jenis yang paling dekat dengan backend Anda ke dalam proyek Anda, instal klien backend Anda, dan sesuaikan.

207 207 

208| Adaptor | Klien backend | Model penyimpanan |208| Jenis penyimpanan | Model penyimpanan | Adaptor contoh |

209| :----------------------------------------------------------------------------------------------------------------------------- | :------------------- | :-------------------------------------------------------------------------------------------- |209| :-------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

210| [`S3SessionStore`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/s3) | `@aws-sdk/client-s3` | Satu file bagian JSONL per `append()`; `load()` mencantumkan, mengurutkan, dan menggabungkan. |210| Object store | Satu file bagian per `append()`; `load()` mencantumkan bagian-bagian, mengurutkannya, dan menggabungkannya. | S3 ([TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/s3), [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/examples/session_stores/s3_session_store.py)) |

211| [`RedisSessionStore`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/redis) | `ioredis` | `RPUSH`/`LRANGE` list per transkrip, ditambah indeks sorted-set sesi. |211| Key-value store | Satu daftar per transkrip yang `append()` dorong ke dan `load()` baca dalam rentang, ditambah indeks sesi yang diurutkan. | Redis ([TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/redis), [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/examples/session_stores/redis_session_store.py)) |

212| [`PostgresSessionStore`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/postgres) | `pg` | Satu baris per entri dalam tabel `jsonb`, diurutkan oleh `BIGSERIAL`. |212| Relational database atau document store | Satu baris atau dokumen per entri, disimpan sebagai JSON dan diurutkan berdasarkan kunci yang ditetapkan saat penyisipan. | Postgres ([TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores/postgres), [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/examples/session_stores/postgres_session_store.py)) |

213 213 

214Setiap adaptor mengambil instance klien yang telah dikonfigurasi sebelumnya, sehingga Anda mengontrol kredensial, TLS, region, dan pooling. Misalnya, dengan S3:214Setiap adaptor mengambil instance klien yang telah dikonfigurasi sebelumnya, sehingga Anda mengontrol kredensial, TLS, region, dan pooling. Contoh berikut menghubungkan adaptor object-store ke `query()` dan kemudian melanjutkan darinya di host lain:

215 215 

216```typescript TypeScript theme={null}216```typescript TypeScript theme={null}

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


342 Retensi342 Retensi

343</h3>343</h3>

344 344 

345SDK tidak pernah menghapus dari penyimpanan Anda sendiri. Retensi adalah tanggung jawab adaptor: implementasikan TTL, kebijakan lifecycle S3, atau pembersihan terjadwal sesuai dengan persyaratan kepatuhan Anda.345SDK tidak pernah menghapus dari penyimpanan Anda sendiri. Retensi adalah tanggung jawab adaptor: gunakan mekanisme kedaluwarsa atau lifecycle backend Anda, atau jalankan pembersihan terjadwal, sesuai dengan persyaratan kepatuhan Anda.

346 346 

347Transkrip lokal di bawah `CLAUDE_CONFIG_DIR` disapu secara independen oleh pengaturan `cleanupPeriodDays`, mengikuti [aturan penyapuan retensi](/docs/id/claude-directory#cleaned-up-automatically). Run [dilanjutkan dari penyimpanan](#resume-from-the-store) tidak meninggalkan transkrip lokal, jadi untuk run tersebut retensi penyimpanan Anda adalah satu-satunya retensi yang ada.347Transkrip lokal di bawah `CLAUDE_CONFIG_DIR` disapu secara independen oleh pengaturan `cleanupPeriodDays`, mengikuti [aturan penyapuan retensi](/docs/id/claude-directory#cleaned-up-automatically). Run [dilanjutkan dari penyimpanan](#resume-from-the-store) tidak meninggalkan transkrip lokal, jadi untuk run tersebut retensi penyimpanan Anda adalah satu-satunya retensi yang ada.

348 348 


373* [Bekerja dengan sesi](/docs/id/agent-sdk/sessions): Lanjutkan, resume, dan fork tanpa penyimpanan kustom373* [Bekerja dengan sesi](/docs/id/agent-sdk/sessions): Lanjutkan, resume, dan fork tanpa penyimpanan kustom

374* [Host SDK](/docs/id/agent-sdk/hosting): Pola penerapan untuk lingkungan multi-host374* [Host SDK](/docs/id/agent-sdk/hosting): Pola penerapan untuk lingkungan multi-host

375* [TypeScript `Options`](/docs/id/agent-sdk/typescript#options): Referensi opsi lengkap375* [TypeScript `Options`](/docs/id/agent-sdk/typescript#options): Referensi opsi lengkap

376* [`examples/session-stores/`](https://github.com/anthropics/claude-agent-sdk-typescript/tree/main/examples/session-stores): Adaptor referensi S3, Redis, dan Postgres yang dapat dijalankan376* [Implementasi referensi](#reference-implementations): Adaptor contoh yang dapat dijalankan untuk penyimpanan objek, penyimpanan kunci-nilai, dan basis data, di kedua repositori SDK

Details

130* **Skills Anda**: artefak prompt yang Anda buat, masing-masing direktori yang menyimpan file `SKILL.md`. Nama skill yang dapat dipanggil pengguna bergabung dengan permukaan secara otomatis, jadi mendispatch `/security-check` Anda sendiri dan menjalankan bawaan bekerja dengan cara yang sama130* **Skills Anda**: artefak prompt yang Anda buat, masing-masing direktori yang menyimpan file `SKILL.md`. Nama skill yang dapat dipanggil pengguna bergabung dengan permukaan secara otomatis, jadi mendispatch `/security-check` Anda sendiri dan menjalankan bawaan bekerja dengan cara yang sama

131* **File perintah khusus**: bentuk artefak yang lebih lama dengan perilaku yang sama, file Markdown datar di `.claude/commands/` yang nama file mereka menjadi nama perintah. Skills adalah penerus yang direkomendasikan131* **File perintah khusus**: bentuk artefak yang lebih lama dengan perilaku yang sama, file Markdown datar di `.claude/commands/` yang nama file mereka menjadi nama perintah. Skills adalah penerus yang direkomendasikan

132 132 

133Secara default, baik Anda maupun Claude dapat memanggil skill apa pun. Anda dapat membatasi jalur mana pun melalui [frontmatter](/docs/id/skills#control-who-invokes-a-skill) skill. Untuk definisi dua istilah, lihat entri [Perintah](/docs/id/glossary#command) dan [Skill](/docs/id/glossary#skill) dalam glosarium. Lihat [Perintah dalam Claude Code](/docs/id/commands) untuk setiap bawaan dan [Perluas Claude dengan skills](/docs/id/skills) untuk panduan lengkap kedua bentuk artefak.133Secara default, baik Anda maupun Claude dapat memanggil skill apa pun. Anda dapat membatasi jalur mana pun melalui [frontmatter](/docs/id/skills#control-who-invokes-a-skill) skill. Untuk definisi perintah dan skill, lihat entri [Perintah](/docs/id/glossary#command) dan [Skill](/docs/id/glossary#skill) dalam glosarium. Lihat [Perintah dalam Claude Code](/docs/id/commands) untuk setiap bawaan dan [Perluas Claude dengan skills](/docs/id/skills) untuk panduan lengkap kedua bentuk artefak.

134 134 

135<h3 id="discover-available-commands">135<h3 id="discover-available-commands">

136 Temukan perintah yang tersedia136 Temukan perintah yang tersedia


181 181 

182Kirim perintah dengan memasukkannya dalam string prompt Anda, dengan cara yang sama Anda mengirim teks biasa. Dispatch tidak bergantung pada opsi `skills`. Mengirim `/<name>` menjalankan skill yang dapat dipanggil pengguna bahkan ketika daftar `skills` Anda menghilangkannya. Perintah yang bertindak pada riwayat percakapan, seperti `/compact`, membutuhkan pesan sebelumnya untuk bekerja dengan.182Kirim perintah dengan memasukkannya dalam string prompt Anda, dengan cara yang sama Anda mengirim teks biasa. Dispatch tidak bergantung pada opsi `skills`. Mengirim `/<name>` menjalankan skill yang dapat dipanggil pengguna bahkan ketika daftar `skills` Anda menghilangkannya. Perintah yang bertindak pada riwayat percakapan, seperti `/compact`, membutuhkan pesan sebelumnya untuk bekerja dengan.

183 183 

184Sebuah `/<name>` yang tidak cocok dengan perintah apa pun dalam sesi maupun perintah Claude Code bawaan tidak gagal query. Claude Code mengirim prompt ke Claude sebagai pesan biasa, dengan catatan bahwa perintah tidak berjalan, jadi query menghabiskan putaran model dan mengembalikan balasan Claude. Sebelum v2.1.274, sebuah `/<name>` yang tidak cocok dengan apa pun mengembalikan `Unknown command: /<name>` sebagai hasil tanpa putaran model.

185 

186Sebuah `/<name>` yang cocok dengan perintah Claude Code bawaan yang tidak tersedia dalam sesi, seperti `/theme`, mengembalikan `/theme isn't available in this environment.` sebagai hasil tanpa putaran model.

187 

184<Note>188<Note>

185 Perintah dapat mencapai batas `maxTurns` / `max_turns` seperti prompt lainnya, mengakhiri query dengan hasil kesalahan daripada `success`. Untuk kontrak hasil kesalahan, lihat [Tangani hasil](/docs/id/agent-sdk/agent-loop#handle-the-result). Jika perintah Anda mungkin mencapai batas, bungkus loop dalam `try`/`catch` di TypeScript atau `try`/`except` di Python, seperti yang ditunjukkan dalam [Input Pesan Tunggal](/docs/id/agent-sdk/streaming-vs-single-mode#single-message-input), atau atur `maxTurns` cukup tinggi agar pekerjaan selesai.189 Perintah dapat mencapai batas `maxTurns` / `max_turns` seperti prompt lainnya, mengakhiri query dengan hasil kesalahan daripada `success`. Untuk kontrak hasil kesalahan, lihat [Tangani hasil](/docs/id/agent-sdk/agent-loop#handle-the-result). Jika perintah Anda mungkin mencapai batas, bungkus loop dalam `try`/`catch` di TypeScript atau `try`/`except` di Python, seperti yang ditunjukkan dalam [Input Pesan Tunggal](/docs/id/agent-sdk/streaming-vs-single-mode#single-message-input), atau atur `maxTurns` cukup tinggi agar pekerjaan selesai.

186</Note>190</Note>

Details

153</h3>153</h3>

154 154 

155| Field | Type | Required | Description |155| Field | Type | Required | Description |

156| :---------------- | :---------------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |156| :---------------- | :---------------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

157| `description` | `string` | Ya | Deskripsi bahasa alami tentang kapan menggunakan agen ini |157| `description` | `string` | Ya | Deskripsi bahasa alami tentang kapan menggunakan agen ini |

158| `prompt` | `string` | Ya | Prompt sistem agen yang mendefinisikan peran dan perilakunya |158| `prompt` | `string` | Ya | Prompt sistem agen yang mendefinisikan peran dan perilakunya |

159| `tools` | `string[]` | Tidak | Array nama tool yang diizinkan. Jika dihilangkan, mewarisi setiap [tool yang tersedia untuk subagen](/docs/id/sub-agents#available-tools) |159| `tools` | `string[]` | Tidak | Array nama tool yang diizinkan. Jika dihilangkan, mewarisi setiap [tool yang tersedia untuk subagen](/docs/id/sub-agents#available-tools) |


165| `initialPrompt` | `string` | Tidak | Otomatis dikirimkan sebagai giliran pengguna pertama ketika agen ini berjalan sebagai agen thread utama. Diabaikan ketika agen dipanggil sebagai subagen |165| `initialPrompt` | `string` | Tidak | Otomatis dikirimkan sebagai giliran pengguna pertama ketika agen ini berjalan sebagai agen thread utama. Diabaikan ketika agen dipanggil sebagai subagen |

166| `maxTurns` | `number` | Tidak | Jumlah maksimum giliran agentic sebelum agen berhenti. Ketika agen mencapai batas, Claude Code mengembalikan output-nya yang ditandai sebagai parsial, dan Anda dapat [melanjutkan agen](#resume-subagents) untuk terus berlanjut. Penandaan parsial memerlukan Claude Code v2.1.246 atau lebih baru |166| `maxTurns` | `number` | Tidak | Jumlah maksimum giliran agentic sebelum agen berhenti. Ketika agen mencapai batas, Claude Code mengembalikan output-nya yang ditandai sebagai parsial, dan Anda dapat [melanjutkan agen](#resume-subagents) untuk terus berlanjut. Penandaan parsial memerlukan Claude Code v2.1.246 atau lebih baru |

167| `background` | `boolean` | Tidak | Jalankan agen ini sebagai tugas latar belakang non-blocking ketika dipanggil |167| `background` | `boolean` | Tidak | Jalankan agen ini sebagai tugas latar belakang non-blocking ketika dipanggil |

168| `omitClaudeMd` | `boolean` | Tidak | Jalankan agen ini tanpa file CLAUDE.md pengguna, proyek, dan lokal ketika berjalan sebagai subagen; file kebijakan yang dikelola tetap dimuat. Diabaikan ketika agen berjalan sebagai agen thread utama. Memerlukan TypeScript Agent SDK v0.3.271 atau lebih baru. Python SDK [`AgentDefinition`](/docs/id/agent-sdk/python#agentdefinition) tidak memiliki field ini |

168| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | Tidak | Tingkat upaya penalaran untuk agen ini |169| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | Tidak | Tingkat upaya penalaran untuk agen ini |

169| `permissionMode` | `PermissionMode` | Tidak | Mode izin untuk eksekusi tool dalam agen ini. [Aturan pewarisan subagen](/docs/id/agent-sdk/permissions#available-modes) menentukan kapan itu berlaku |170| `permissionMode` | `PermissionMode` | Tidak | Mode izin untuk eksekusi tool dalam agen ini. [Aturan pewarisan subagen](/docs/id/agent-sdk/permissions#available-modes) menentukan kapan itu berlaku |

170 171 


197Tabel di bawah mencantumkan apa yang diterima konteks subagent non-fork dan apa yang ditinggalkannya.198Tabel di bawah mencantumkan apa yang diterima konteks subagent non-fork dan apa yang ditinggalkannya.

198 199 

199| Subagent menerima | Subagent tidak menerima |200| Subagent menerima | Subagent tidak menerima |

200| :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------ |201| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------ |

201| Prompt sistem miliknya sendiri (`AgentDefinition.prompt`) dan prompt alat Agent | Riwayat percakapan induk atau hasil alat |202| Prompt sistem miliknya sendiri (`AgentDefinition.prompt`) dan prompt alat Agent | Riwayat percakapan induk atau hasil alat |

202| Project CLAUDE.md (dimuat melalui [`settingSources`](/docs/id/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources)) | Konten skill yang dimuat sebelumnya, kecuali tercantum dalam `AgentDefinition.skills` |203| Project CLAUDE.md (dimuat melalui [`settingSources`](/docs/id/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources)), kecuali agen menetapkan [`omitClaudeMd`](#agentdefinition-configuration) | Konten skill yang dimuat sebelumnya, kecuali tercantum dalam `AgentDefinition.skills` |

203| Definisi alat (diwariskan dari induk atau subset dalam `tools`, [disaring untuk background runs](/docs/id/sub-agents#available-tools)) | Prompt sistem induk |204| Definisi alat (diwariskan dari induk atau subset dalam `tools`, [disaring untuk background runs](/docs/id/sub-agents#available-tools)) | Prompt sistem induk |

204 205 

205<Note>206<Note>


644Anda dapat membatasi pertumbuhan itu dengan tiga cara: seberapa dalam subagen bersarang, berapa banyak yang berjalan sekaligus, dan berapa banyak seluruh kueri menghabiskan. Atur batas kedalaman dan konkurensi sebagai variabel lingkungan melalui opsi [`env`](/docs/id/agent-sdk/typescript#options), dan batas pengeluaran sebagai opsi kueri:645Anda dapat membatasi pertumbuhan itu dengan tiga cara: seberapa dalam subagen bersarang, berapa banyak yang berjalan sekaligus, dan berapa banyak seluruh kueri menghabiskan. Atur batas kedalaman dan konkurensi sebagai variabel lingkungan melalui opsi [`env`](/docs/id/agent-sdk/typescript#options), dan batas pengeluaran sebagai opsi kueri:

645 646 

646| Batas | Atur dengan | Default | Apa yang Claude Code lakukan pada batas |647| Batas | Atur dengan | Default | Apa yang Claude Code lakukan pada batas |

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

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

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

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

651 652 

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

653 654 

Details

436| Parameter | Tipe | Default | Deskripsi |436| Parameter | Tipe | Default | Deskripsi |

437| :------------------------------ | :------------------------------------ | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |437| :------------------------------ | :------------------------------------ | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

438| `options.cwd` | `string` | `process.cwd()` | Direktori untuk menyelesaikan pengaturan proyek dan lokal relatif terhadap |438| `options.cwd` | `string` | `process.cwd()` | Direktori untuk menyelesaikan pengaturan proyek dan lokal relatif terhadap |

439| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | Semua sumber | Sumber filesystem mana yang akan dimuat. Lewatkan `[]` untuk melewati pengaturan pengguna, proyek, dan lokal. Kebijakan yang dikelola endpoint dimuat dalam semua kasus. `resolveSettings()` menyertakan pengaturan yang dikelola server hanya ketika Anda melewatkan `options.serverManagedSettings` |439| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | Semua sumber | Sumber filesystem mana yang akan dimuat. Lewatkan `[]` untuk melewati pengaturan pengguna, proyek, dan lokal. [Kebijakan yang dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) dimuat dalam semua kasus. `resolveSettings()` menyertakan pengaturan yang dikelola server hanya ketika Anda melewatkan `options.serverManagedSettings` |

440| `options.managedSettings` | `Settings` | `undefined` | Pengaturan tingkat kebijakan yang disediakan oleh host penyematan. Mengikuti aturan yang sama dengan [`managedSettings` dalam `Options`](#options), kecuali bahwa `resolveSettings()` tidak mengeksekusi [`policyHelper`](/docs/id/settings-reference#policyhelper) yang dikonfigurasi, sehingga snapshot dapat mencakup pengaturan yang dijatuhkan sesi live |440| `options.managedSettings` | `Settings` | `undefined` | Pengaturan tingkat kebijakan yang disediakan oleh host penyematan. Mengikuti aturan yang sama dengan [`managedSettings` dalam `Options`](#options), kecuali bahwa `resolveSettings()` tidak mengeksekusi [`policyHelper`](/docs/id/settings-reference#policyhelper) yang dikonfigurasi, sehingga snapshot dapat mencakup pengaturan yang dijatuhkan sesi live |

441| `options.serverManagedSettings` | `Settings` | `undefined` | Payload pengaturan yang dikelola server dari `/api/claude_code/settings`. Kunci non-pembatasan melewati tanpa filter |441| `options.serverManagedSettings` | `Settings` | `undefined` | Payload pengaturan yang dikelola server dari `/api/claude_code/settings`. Kunci non-pembatasan melewati tanpa filter |

442 442 


471```471```

472 472 

473<h2 id="types">473<h2 id="types">

474 Tipe474 Jenis

475</h2>475</h2>

476 476 

477<h3 id="options">477<h3 id="options">


480 480 

481Objek konfigurasi untuk fungsi `query()`.481Objek konfigurasi untuk fungsi `query()`.

482 482 

483| Properti | Tipe | Default | Deskripsi |483| Properti | Jenis | Default | Deskripsi |

484| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |484| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

485| `abortController` | `AbortController` | `new AbortController()` | Pengontrol untuk membatalkan operasi |485| `abortController` | `AbortController` | `new AbortController()` | Pengontrol untuk membatalkan operasi |

486| `additionalDirectories` | `string[]` | `[]` | Direktori tambahan yang dapat diakses Claude. SDK meneruskan setiap entri ke Claude Code sebagai `--add-dir`, jadi dengan pengaturan `project` sumber Claude Code juga [memuat skills, commands, dan subagents direktori](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) |486| `additionalDirectories` | `string[]` | `[]` | Direktori tambahan yang dapat diakses Claude. SDK meneruskan setiap entri ke Claude Code sebagai `--add-dir`, jadi dengan pengaturan `project` sumber Claude Code juga [memuat skills, commands, dan subagents direktori](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) |

487| `agent` | `string` | `undefined` | Nama agen untuk thread utama. Agen harus didefinisikan dalam opsi `agents` atau dalam pengaturan |487| `agent` | `string` | `undefined` | Nama agent untuk thread utama. Agent harus didefinisikan dalam opsi `agents` atau dalam pengaturan |

488| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | Tentukan subagen secara terprogram |488| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | Tentukan subagents secara terprogram |

489| `agentProgressSummaries` | `boolean` | `false` | Ketika `true`, hasilkan ringkasan kemajuan satu baris untuk subagen dan teruskan pada event [`task_progress`](#sdktaskprogressmessage) melalui field `summary`. Berlaku untuk subagen foreground dan background |489| `agentProgressSummaries` | `boolean` | `false` | Ketika `true`, hasilkan ringkasan kemajuan satu baris untuk subagents dan teruskan pada acara [`task_progress`](#sdktaskprogressmessage) melalui bidang `summary`. Berlaku untuk subagents foreground dan background |

490| `allowDangerouslySkipPermissions` | `boolean` | `false` | Aktifkan bypass izin. Diperlukan saat menggunakan `permissionMode: 'bypassPermissions'` |490| `allowDangerouslySkipPermissions` | `boolean` | `false` | Aktifkan bypass permissions. Diperlukan saat menggunakan `permissionMode: 'bypassPermissions'`, saat startup atau kemudian melalui `setPermissionMode()`. Lihat [plan mode](/docs/id/agent-sdk/permissions#plan-mode-plan) untuk cara interaksinya dengan `permissionMode: 'plan'` |

491| `allowedTools` | `string[]` | `[]` | Tool untuk auto-approve tanpa prompt. Ini tidak membatasi Claude hanya pada tool ini. Jika Anda menyebutkan salah satu dari [task-tracking tools](/docs/id/agent-sdk/todo-tracking#model-availability) di sini, Claude Code juga opt-in sesi. Tool lainnya yang tidak terdaftar jatuh ke `permissionMode` dan `canUseTool`. Gunakan `disallowedTools` untuk memblokir tool. Lihat [Izin](/docs/id/agent-sdk/permissions#allow-and-deny-rules) |491| `allowedTools` | `string[]` | `[]` | Tools untuk auto-approve tanpa prompt. Ini tidak membatasi Claude hanya pada tools ini. Jika Anda menyebutkan salah satu [task-tracking tools](/docs/id/agent-sdk/todo-tracking#model-availability) di sini, Claude Code juga opt-in sesi. Tools lain yang tidak terdaftar jatuh ke `permissionMode` dan `canUseTool`. Gunakan `disallowedTools` untuk memblokir tools. Lihat [Permissions](/docs/id/agent-sdk/permissions#allow-and-deny-rules) |

492| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Aktifkan fitur beta |492| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Aktifkan fitur beta |

493| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Fungsi izin kustom, dipanggil hanya ketika [alur izin](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated) jatuh ke prompt. Tidak dipanggil untuk panggilan yang di-auto-approve oleh `allowedTools`, aturan allow, atau `permissionMode`. Aturan allow tidak pre-approve [tindakan yang tidak ada mode auto-approve](/docs/id/permission-modes#actions-no-mode-auto-approves); lihat [Bagaimana izin dievaluasi](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated) untuk mana dari mereka yang mencapai callback dan apa yang terjadi dalam mode `dontAsk` dan `auto`. Lihat [`CanUseTool`](#canusetool) untuk detail |493| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Fungsi permission kustom, dipanggil hanya ketika [permission flow](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated) jatuh ke prompt. Tidak dipanggil untuk panggilan yang di-auto-approve oleh `allowedTools`, allow rules, atau `permissionMode`. Sebuah allow rule tidak pre-approve [actions no mode auto-approves](/docs/id/permission-modes#actions-no-mode-auto-approves). Lihat [`CanUseTool`](#canusetool) untuk detail |

494| `continue` | `boolean` | `false` | Lanjutkan percakapan terbaru |494| `continue` | `boolean` | `false` | Lanjutkan percakapan terbaru |

495| `cwd` | `string` | `process.cwd()` | Direktori kerja saat ini |495| `cwd` | `string` | `process.cwd()` | Direktori kerja saat ini |

496| `debug` | `boolean` | `false` | Aktifkan mode debug untuk proses Claude Code |496| `debug` | `boolean` | `false` | Aktifkan mode debug untuk proses Claude Code |

497| `debugFile` | `string` | `undefined` | Tulis log debug ke jalur file tertentu. Secara implisit mengaktifkan mode debug |497| `debugFile` | `string` | `undefined` | Tulis debug logs ke path file tertentu. Secara implisit mengaktifkan mode debug |

498| `disallowedTools` | `string[]` | `[]` | Tool untuk tolak. Nama bare seperti `"Bash"` menghapus tool dari konteks Claude. Aturan scoped seperti `"Bash(rm *)"` membiarkan tool tersedia dan menolak panggilan yang cocok dalam setiap mode izin, termasuk `bypassPermissions`, untuk perintah [seperti yang ditulis](/docs/id/permissions#bash-rule-limits). Lihat [Izin](/docs/id/agent-sdk/permissions#allow-and-deny-rules) |498| `disallowedTools` | `string[]` | `[]` | Tools untuk ditolak. Nama bare seperti `"Bash"` menghapus tool dari konteks Claude. Aturan scoped seperti `"Bash(rm *)"` membiarkan tool tersedia dan menolak panggilan yang cocok di setiap permission mode, termasuk `bypassPermissions`, untuk perintah [seperti yang ditulis](/docs/id/permissions#bash-rule-limits). Lihat [Permissions](/docs/id/agent-sdk/permissions#allow-and-deny-rules) |

499| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Mengontrol seberapa banyak usaha yang Claude masukkan ke dalam responsnya. Bekerja dengan pemikiran adaptif untuk memandu kedalaman pemikiran. Lihat [sesuaikan tingkat usaha](/docs/id/model-config#adjust-effort-level) |499| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Mengontrol berapa banyak usaha yang Claude keluarkan dalam responsnya. Bekerja dengan adaptive thinking untuk memandu kedalaman thinking. Lihat [adjust the effort level](/docs/id/model-config#adjust-effort-level) |

500| `enableFileCheckpointing` | `boolean` | `false` | Aktifkan pelacakan perubahan file untuk rewinding. Lihat [File checkpointing](/docs/id/agent-sdk/file-checkpointing) |500| `enableFileCheckpointing` | `boolean` | `false` | Aktifkan file change tracking untuk rewinding. Lihat [File checkpointing](/docs/id/agent-sdk/file-checkpointing) |

501| `env` | `Record<string, string \| undefined>` | `process.env` | Variabel lingkungan. Ketika diatur, ini mengganti lingkungan subprocess alih-alih menggabungkan dengan `process.env`, jadi lewatkan `{ ...process.env, YOUR_VAR: 'value' }` untuk menyimpan variabel yang diwariskan seperti `PATH`. Lihat [Tangani respons API yang lambat atau terhenti](#handle-slow-or-stalled-api-responses) untuk contoh pola ini, dan [Variabel lingkungan](/docs/id/env-vars) untuk variabel yang dibaca CLI yang mendasarinya. Atur `CLAUDE_AGENT_SDK_CLIENT_APP` untuk mengidentifikasi aplikasi Anda di header User-Agent |501| `env` | `Record<string, string \| undefined>` | `process.env` | Variabel lingkungan. Ketika diatur, ini menggantikan lingkungan subprocess alih-alih merge dengan `process.env`, jadi teruskan `{ ...process.env, YOUR_VAR: 'value' }` untuk menjaga variabel yang diwariskan seperti `PATH`. Lihat [Handle slow or stalled API responses](#handle-slow-or-stalled-api-responses) untuk contoh pola ini, dan [Environment variables](/docs/id/env-vars) untuk variabel yang dibaca CLI yang mendasar. Atur `CLAUDE_AGENT_SDK_CLIENT_APP` untuk mengidentifikasi aplikasi Anda di header User-Agent |

502| `executable` | `'bun' \| 'deno' \| 'node'` | Auto-detected | Runtime JavaScript yang akan digunakan |502| `executable` | `'bun' \| 'deno' \| 'node'` | Auto-detected | JavaScript runtime untuk digunakan |

503| `executableArgs` | `string[]` | `[]` | Argumen untuk diteruskan ke executable |503| `executableArgs` | `string[]` | `[]` | Argumen untuk diteruskan ke executable |

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

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

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

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

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

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

510| `includePartialMessages` | `boolean` | `false` | Sertakan event pesan parsial |510| `includePartialMessages` | `boolean` | `false` | Sertakan partial message events |

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

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

513| `maxBudgetUsd` | `number` | `undefined` | Hentikan query ketika estimasi biaya sisi klien mencapai nilai USD ini. Dibandingkan dengan estimasi yang sama seperti `total_cost_usd`; lihat [Lacak biaya dan penggunaan](/docs/id/agent-sdk/cost-tracking) untuk peringatan akurasi |513| `maxBudgetUsd` | `number` | `undefined` | Hentikan query ketika estimasi biaya sisi klien mencapai nilai USD ini. Dibandingkan dengan estimasi yang sama seperti `total_cost_usd`. Untuk caveat akurasi dan perilaku reset, lihat [Track cost and usage](/docs/id/agent-sdk/cost-tracking) |

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

515| `maxTurns` | `number` | `undefined` | Putaran agen maksimum (perjalanan round-trip penggunaan tool) |515| `maxTurns` | `number` | `undefined` | Maksimal agentic turns (tool-use round trips) |

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

517| `model` | `string` | Default dari CLI | Alias model Claude atau nama model lengkap. Lihat [nilai yang diterima dan ID khusus penyedia](/docs/id/model-config#available-models) |517| `model` | `string` | Default dari CLI | Alias model Claude atau nama model lengkap. Lihat [accepted values and provider-specific IDs](/docs/id/model-config#available-models) |

518| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Callback untuk menangani permintaan elicitation MCP. Dipanggil ketika server MCP meminta input pengguna dan tidak ada hook yang menanganinya terlebih dahulu. Ketika tidak disediakan, permintaan elicitation yang tidak ditangani secara otomatis ditolak |518| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Callback untuk menangani MCP elicitation requests. Dipanggil ketika MCP server meminta input pengguna dan tidak ada hook yang menanganinya terlebih dahulu. Ketika tidak disediakan, unhandled elicitation requests ditolak secara otomatis |

519| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Tentukan format output untuk hasil agen. Lihat [Output terstruktur](/docs/id/agent-sdk/structured-outputs) untuk detail |519| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Tentukan format output untuk hasil agent. Lihat [Structured outputs](/docs/id/agent-sdk/structured-outputs) untuk detail |

520| `outputStyle` | `string` | `undefined` | Bukan field `Options`. Atur `outputStyle` dalam objek [`settings`](/docs/id/settings) inline atau file pengaturan sebagai gantinya. Lihat [Aktifkan output style](/docs/id/agent-sdk/modifying-system-prompts#activate-an-output-style) |520| `outputStyle` | `string` | `undefined` | Bukan bidang `Options`. Atur `outputStyle` dalam objek [`settings`](/docs/id/settings) inline atau file settings. Lihat [Activate an output style](/docs/id/agent-sdk/modifying-system-prompts#activate-an-output-style) |

521| `pathToClaudeCodeExecutable` | `string` | Auto-resolved dari biner asli bundel | Jalur ke executable Claude Code. Hanya diperlukan jika dependensi opsional dilewati selama instalasi atau platform Anda tidak dalam set yang didukung |521| `pathToClaudeCodeExecutable` | `string` | Auto-resolved dari bundled native binary | Path ke Claude Code executable. Hanya diperlukan jika optional dependencies dilewati selama install atau platform Anda tidak dalam set yang didukung |

522| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | Mode izin untuk sesi |522| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | Permission mode untuk session |

523| `permissionPromptToolName` | `string` | `undefined` | Nama tool MCP untuk prompt izin |523| `permissionPromptToolName` | `string` | `undefined` | Nama MCP tool untuk permission prompts |

524| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Siapa yang menjawab prompt izin: `'host'` merutekannya ke callback [`canUseTool`](#canusetool) Anda atau tool `permissionPromptToolName`, dan `'none'` [menolak panggilan yang akan diprompt](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated). Memerlukan Claude Code v2.1.259 atau lebih baru |524| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Siapa yang menjawab permission prompts: `'host'` merutekan mereka ke callback [`canUseTool`](#canusetool) Anda atau tool `permissionPromptToolName`, dan `'none'` [menolak panggilan yang akan diprompt](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated). Memerlukan Claude Code v2.1.259 atau lebih baru |

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

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

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

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

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

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

531| `resumeSessionAt` | `string` | `undefined` | Lanjutkan sesi pada UUID pesan tertentu |531| `resumeSessionAt` | `string` | `undefined` | Lanjutkan session pada message UUID tertentu |

532| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Konfigurasi perilaku sandbox secara terprogram. Lihat [Pengaturan sandbox](#sandboxsettings) untuk detail |532| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Konfigurasi perilaku sandbox secara terprogram. Lihat [Sandbox settings](#sandboxsettings) untuk detail |

533| `sessionId` | `string` | Auto-generated | Gunakan UUID tertentu untuk sesi alih-alih auto-generate |533| `sessionId` | `string` | Auto-generated | Gunakan UUID tertentu untuk session alih-alih auto-generating satu |

534| `sessionStore` | [`SessionStore`](/docs/id/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Cerminkan transkrip sesi ke backend eksternal sehingga host lain dapat melanjutkannya. Lihat [Pertahankan sesi ke penyimpanan eksternal](/docs/id/agent-sdk/session-storage) |534| `sessionStore` | [`SessionStore`](/docs/id/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Mirror session transcripts ke backend eksternal sehingga host lain dapat melanjutkannya. Lihat [Persist sessions to external storage](/docs/id/agent-sdk/session-storage) |

535| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alpha.* Mode flush untuk `sessionStore`. Diabaikan ketika `sessionStore` tidak diatur |535| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alpha.* Flush mode untuk `sessionStore`. Diabaikan ketika `sessionStore` tidak diatur |

536| `settings` | `string \| Settings` | `undefined` | Objek [pengaturan](/docs/id/settings) inline atau jalur ke file pengaturan. Mengisi lapisan flag-settings dalam [urutan preseden](/docs/id/settings#settings-precedence). Ubah saat runtime dengan [`applyFlagSettings()`](#applyflagsettings) |536| `settings` | `string \| Settings` | `undefined` | Objek [settings](/docs/id/settings) inline, path file settings, atau string JSON inline. Mengisi layer flag-settings dalam [precedence order](/docs/id/settings#settings-precedence). Ubah saat runtime dengan [`applyFlagSettings()`](#applyflagsettings) |

537| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI defaults (all sources) | Kontrol pengaturan filesystem mana yang akan dimuat. Lewatkan `[]` untuk menonaktifkan pengaturan pengguna, proyek, dan lokal. [Kebijakan yang dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) dimuat terlepas dari itu; pengaturan yang dikelola server diambil ketika sesi mengautentikasi dengan kredensial organisasi pada [konfigurasi yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Lihat [Gunakan fitur Claude Code](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) |537| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI defaults (all sources) | Kontrol filesystem settings mana yang akan dimuat. Teruskan `[]` untuk menonaktifkan user, project, dan local settings. [Endpoint-managed policy](/docs/id/managed-settings#delivery-mechanisms) dimuat terlepas; server-managed settings diambil ketika session mengautentikasi dengan kredensial organisasi pada [eligible configuration](/docs/id/server-managed-settings#platform-availability). Lihat [Use Claude Code features](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

538| `skills` | `string[] \| 'all'` | `undefined` | Skills yang tersedia untuk sesi. Lewatkan `'all'` untuk mengaktifkan setiap skill yang ditemukan, atau daftar nama skill. Lewatkan nama yang tepat saja. Pada Agent SDK v0.3.221 atau lebih baru, SDK menolak nama yang salah bentuk dan wildcard dengan error sebelum memulai proses Claude Code. Ketika diatur, SDK menambahkan tool Skill ke `allowedTools` secara otomatis. Jika Anda juga meneruskan `tools`, sertakan `'Skill'` dalam daftar itu. Lihat [Skills](/docs/id/agent-sdk/skills) |538| `skills` | `string[] \| 'all'` | `undefined` | Skills yang tersedia untuk session. Teruskan `'all'` untuk mengaktifkan setiap skill yang ditemukan, atau daftar nama skill. Teruskan nama yang tepat saja. Pada Agent SDK v0.3.221 atau lebih baru, SDK menolak nama yang malformed dan wildcard-form dengan error sebelum memulai proses Claude Code. Ketika diatur, SDK menambahkan Skill tool ke `allowedTools` secara otomatis. Jika Anda juga meneruskan `tools`, sertakan `'Skill'` dalam daftar itu. Lihat [Skills](/docs/id/agent-sdk/skills) |

539| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Fungsi kustom untuk spawn proses Claude Code. Gunakan untuk menjalankan Claude Code di VM, kontainer, atau lingkungan jarak jauh |539| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Fungsi kustom untuk spawn proses Claude Code. Gunakan untuk menjalankan Claude Code di VMs, containers, atau remote environments |

540| `stderr` | `(data: string) => void` | `undefined` | Callback untuk output stderr |540| `stderr` | `(data: string) => void` | `undefined` | Callback untuk output stderr |

541| `strictMcpConfig` | `boolean` | `false` | Gunakan hanya server yang diteruskan dalam `mcpServers` dan abaikan `.mcp.json` proyek, pengaturan pengguna, server MCP yang disediakan plugin, dan [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) |541| `strictMcpConfig` | `boolean` | `false` | Gunakan hanya servers yang diteruskan dalam `mcpServers` dan abaikan project `.mcp.json`, user settings, plugin-provided MCP servers, dan [claude.ai connectors](/docs/id/mcp#use-mcp-servers-from-claude-ai) |

542| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (minimal prompt) | Konfigurasi prompt sistem. Lewatkan string untuk prompt kustom, atau `{ type: 'preset', preset: 'claude_code' }` untuk menggunakan prompt sistem Claude Code. Lewatkan array string dengan konstanta `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` yang diekspor di antara bagian statis dan per-request untuk [cache bagian statis dari prompt kustom](/docs/id/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt). Saat menggunakan bentuk objek preset, tambahkan `append` untuk memperluas dengan instruksi tambahan, dan atur `excludeDynamicSections: true` untuk memindahkan konteks per-sesi ke pesan pengguna pertama untuk [reuse prompt-cache yang lebih baik di seluruh mesin](/docs/id/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines). Atur `snapshot: false` untuk membangun ulang prompt pada setiap request alih-alih [menggunakan kembali prompt yang sesi catat pada request pertamanya](/docs/id/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Untuk menetapkan `snapshot` pada prompt kustom, lewatkan bentuk `{ type: 'custom', prompt }`. Bentuk `{ type: 'custom' }` dan field `snapshot` memerlukan TypeScript Agent SDK v0.3.257 atau lebih baru |542| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (minimal prompt) | Konfigurasi system prompt. Teruskan string untuk custom prompt, atau `{ type: 'preset', preset: 'claude_code' }` untuk menggunakan system prompt Claude Code. Teruskan array strings dengan konstanta `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` yang diekspor antara bagian static dan per-request untuk [cache bagian static dari custom prompt](/docs/id/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt). Ketika menggunakan bentuk preset object, tambahkan `append` untuk memperluas dengan instruksi tambahan, dan atur `excludeDynamicSections: true` untuk memindahkan per-session context ke first user message untuk [better prompt-cache reuse across machines](/docs/id/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines). Atur `snapshot: false` untuk rebuild prompt pada setiap request alih-alih [reusing prompt yang session catat pada first request-nya](/docs/id/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Untuk mengatur `snapshot` pada custom prompt, teruskan bentuk `{ type: 'custom', prompt }`. Bentuk `{ type: 'custom' }` dan bidang `snapshot` memerlukan TypeScript Agent SDK v0.3.257 atau lebih baru |

543| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* Anggaran tugas sisi API dalam token. Ketika diatur, model diberitahu anggaran token sisa yang tersedia sehingga dapat mengatur kecepatan penggunaan tool dan membungkus sebelum batas |543| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* API-side task budget dalam tokens. Ketika diatur, model diberitahu budget token sisanya sehingga dapat pace tool use dan wrap up sebelum limit |

544| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` untuk model yang didukung | Mengontrol perilaku pemikiran/penalaran Claude. Lihat [`ThinkingConfig`](#thinkingconfig) untuk opsi |544| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` untuk model yang didukung | Mengontrol perilaku thinking/reasoning Claude. Lihat [`ThinkingConfig`](#thinkingconfig) untuk opsi |

545| `title` | `string` | `undefined` | Judul tampilan untuk sesi. Saat melanjutkan melalui `resume` atau `continue`, judul sesi yang dilanjutkan yang bertahan mengambil preseden; gunakan [`renameSession()`](#renamesession) untuk mengubah judul sesi yang ada |545| `title` | `string` | `undefined` | Display title untuk session. Ketika melanjutkan via `resume` atau `continue`, title session yang dilanjutkan yang persisted mengambil precedence; gunakan [`renameSession()`](#renamesession) untuk retitle session yang ada |

546| `toolAliases` | `Record<string, string>` | `undefined` | Petakan nama tool bawaan ke nama tool MCP sehingga Claude memanggil implementasi MCP Anda sebagai gantinya dari bawaan. Misalnya, `{ Bash: 'mcp__workspace__bash' }` |546| `toolAliases` | `Record<string, string>` | `undefined` | Map built-in tool names ke MCP tool names sehingga Claude memanggil implementasi MCP Anda alih-alih built-in. Misalnya, `{ Bash: 'mcp__workspace__bash' }` |

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

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

549 549 

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

551 Tangani respons API yang lambat atau terhenti551 Tangani respons API yang lambat atau terhenti

552</h4>552</h4>

553 553 

554Subprocess CLI membaca beberapa variabel lingkungan yang mengontrol timeout API dan deteksi stall. Lewatkan melalui opsi `env`:554CLI subprocess membaca beberapa variabel lingkungan yang mengontrol API timeouts dan stall detection. Teruskan melalui opsi `env`:

555 555 

556```typescript theme={null}556```typescript theme={null}

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


569});569});

570```570```

571 571 

572* `API_TIMEOUT_MS`: timeout per-request pada klien Anthropic, dalam milidetik. Default `600000`. Berlaku untuk loop utama dan semua subagen.572* `API_TIMEOUT_MS`: per-request timeout pada Anthropic client, dalam milidetik. Default `600000`. Berlaku untuk main loop dan semua subagents.

573* `CLAUDE_CODE_MAX_RETRIES`: maksimum retry API. Default `10`, dibatasi pada `15`. Setiap retry mendapatkan jendela `API_TIMEOUT_MS` sendiri, jadi waktu dinding terburuk kira-kira `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` ditambah backoff. Untuk run yang tidak diawasi yang perlu menunggu melalui pemadaman yang lebih lama, atur [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/id/errors#tune-retry-behavior): itu retry error kapasitas transien tanpa batas dan, pada Claude Code v2.1.199 atau lebih baru, menaikkan default untuk error transien lainnya menjadi `300` dan menghapus cap pada variabel ini.573* `CLAUDE_CODE_MAX_RETRIES`: maksimal API retries. Default `10`, capped di `15`. Setiap retry mendapat jendela `API_TIMEOUT_MS` sendiri, jadi worst-case wall time kira-kira `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus backoff. Untuk unattended runs yang perlu menunggu outages yang lebih lama, atur [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/id/errors#tune-retry-behavior): ini retries transient capacity errors tanpa batas dan, pada Claude Code v2.1.199 atau lebih baru, menaikkan default untuk transient errors lainnya ke `300` dan menghapus cap pada variabel ini.

574* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: stall watchdog untuk subagen. Saat stream watchdog aktif, default adalah `CLAUDE_STREAM_IDLE_TIMEOUT_MS` ditambah 5 menit, yang menjadi `600000` kecuali Anda menaikkan variabel itu. Dengan stream watchdog mati, default adalah `600000`. Sebelum v2.1.257, default selalu `600000`.574* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: stall watchdog untuk subagents. Saat stream watchdog aktif, default adalah `CLAUDE_STREAM_IDLE_TIMEOUT_MS` plus 5 menit, yang menjadi `600000` kecuali Anda menaikkan variabel itu. Dengan stream watchdog off, default adalah `600000`. Sebelum v2.1.257, default selalu `600000`.

575 575 

576 Timer mereset pada setiap event stream. Pada stall, Claude Code membatalkan subagen dan melaporkan stall ke parent. Untuk subagen background, itu juga menandai tugas gagal dan melampirkan hasil parsial apa pun.576 Timer reset pada setiap stream event. Pada stall, Claude Code membatalkan subagent dan melaporkan stall ke parent. Untuk background subagent, ini juga menandai task failed dan melampirkan partial result apa pun.

577* `CLAUDE_ENABLE_STREAM_WATCHDOG` dengan `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: stream watchdog yang membatalkan request ketika header telah tiba tetapi body respons berhenti streaming. Watchdog aktif secara default untuk semua penyedia; atur `CLAUDE_ENABLE_STREAM_WATCHDOG=0` untuk menonaktifkannya. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` default ke `300000` dan diklem ke minimum itu. Setelah abort, [Retry otomatis](/docs/id/errors#automatic-retries) mencakup apa yang Claude Code lakukan, berdasarkan seberapa jauh respons telah maju.577* `CLAUDE_ENABLE_STREAM_WATCHDOG` dengan `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: stream watchdog yang membatalkan request ketika headers telah tiba tetapi response body berhenti streaming. Watchdog aktif secara default untuk semua providers; atur `CLAUDE_ENABLE_STREAM_WATCHDOG=0` untuk menonaktifkannya. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` defaults ke `300000` dan diclamped ke minimum itu. Setelah abort, [Automatic retries](/docs/id/errors#automatic-retries) mencakup apa yang Claude Code lakukan, berdasarkan seberapa jauh response telah maju.

578 578 

579 Saat watchdog menunggu respons yang gateway di belakang `ANTHROPIC_BASE_URL` tahan terbuka dengan keep-alive pings, host yang menetapkan `includePartialMessages` terus menerima event `ping` [stream](#sdkpartialassistantmessage), jadi baca frame tersebut sebagai liveness daripada timeout sesi pada keheningan. Sebelum v2.1.257, frame berhenti 5 menit setelah event stream nyata terakhir.579 Saat watchdog menunggu response yang gateway di belakang `ANTHROPIC_BASE_URL` tahan terbuka dengan keep-alive pings, host yang menetapkan `includePartialMessages` terus menerima `ping` [stream events](#sdkpartialassistantmessage), jadi baca frames itu sebagai liveness daripada timing session out pada silence. Sebelum v2.1.257, frames berhenti 5 menit setelah last real stream event.

580 580 

581<h3 id="query-object">581<h3 id="query-object">

582 Objek `Query`582 Objek `Query`

583</h3>583</h3>

584 584 

585Antarmuka yang dikembalikan oleh fungsi `query()`.585Interface yang dikembalikan oleh fungsi `query()`.

586 586 

587```typescript theme={null}587```typescript theme={null}

588interface Query extends AsyncGenerator<SDKMessage, void> {588interface Query extends AsyncGenerator<SDKMessage, void> {


632</h4>632</h4>

633 633 

634| Metode | Deskripsi |634| Metode | Deskripsi |

635| :------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |635| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

636| `interrupt()` | Mengganggu query. Hanya tersedia dalam mode input streaming. Ketika CLI mengiklankan kemampuan `interrupt_receipt_v1` dalam [`SDKSystemMessage.capabilities`](#sdksystemmessage), diselesaikan dengan [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) yang mencantumkan pesan yang tertunda ketika interrupt tiba. Diselesaikan `undefined` pada CLI sebelum v2.1.205 |636| `interrupt()` | Mengganggu query. Hanya tersedia dalam streaming input mode. Ketika CLI mengiklankan kemampuan `interrupt_receipt_v1` dalam [`SDKSystemMessage.capabilities`](#sdksystemmessage), resolves dengan [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) yang mencantumkan pesan yang pending ketika interrupt tiba. Resolves `undefined` pada CLIs sebelum v2.1.205 |

637| `rewindFiles(userMessageId, options?)` | Mengembalikan file ke keadaan mereka pada pesan pengguna yang ditentukan. Lewatkan `{ dryRun: true }` untuk pratinjau perubahan. Memerlukan `enableFileCheckpointing: true`. Lihat [File checkpointing](/docs/id/agent-sdk/file-checkpointing) |637| `rewindFiles(userMessageId, options?)` | Mengembalikan files ke state mereka pada user message yang ditentukan. Teruskan `{ dryRun: true }` untuk preview changes. Memerlukan `enableFileCheckpointing: true`. Lihat [File checkpointing](/docs/id/agent-sdk/file-checkpointing) |

638| `setPermissionMode()` | Mengubah mode izin (hanya tersedia dalam mode input streaming) |638| `setPermissionMode()` | Mengubah permission mode (hanya tersedia dalam streaming input mode) |

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

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

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

642| `updateSettings(source, settings)` | Menggabungkan pengaturan ke dalam file pengaturan lokal proyek, `.claude/settings.local.json`; mereka berlaku pada request berikutnya. Menerima hanya `source: 'localSettings'` dan set kunci yang diizinkan, saat ini `outputStyle`, dengan nilai string; menghapus kunci tidak didukung. Menolak pada transport jarak jauh dan dalam sesi yang [`settingSources`](#options) kecualikan `local`. Memerlukan TypeScript SDK v0.3.257 atau lebih baru, yang membundel Claude Code v2.1.257 |642| `updateSettings(source, settings)` | Merge settings ke dalam file local settings project, `.claude/settings.local.json`; mereka berlaku pada request berikutnya. Menerima hanya `source: 'localSettings'` dan set key yang allowlisted, saat ini `outputStyle`, dengan string values; menghapus key tidak didukung. Menolak pada remote transports dan dalam sessions yang [`settingSources`](#options) exclude `local`. Memerlukan TypeScript SDK v0.3.257 atau lebih baru, yang bundle Claude Code v2.1.257 |

643| `initializationResult()` | Mengembalikan hasil inisialisasi lengkap termasuk perintah yang didukung, model, info akun, dan konfigurasi gaya output |643| `initializationResult()` | Mengembalikan full initialization result termasuk supported commands, models, account info, dan output style configuration |

644| `reinitialize()` | Kirim ulang permintaan kontrol `initialize` ke CLI yang sedang berjalan dan kembalikan hasil segar alih-alih hasil first-connect yang di-cache. Gunakan setelah celah transport, seperti reattaching ke sesi setelah disconnect, sehingga permintaan izin yang tertunda mencapai callback `canUseTool` Anda lagi. Buat callback idempotent per request ID, karena permintaan yang responsnya hilang dikirim ulang. Memerlukan Claude Code v2.1.195 atau lebih baru |644| `reinitialize()` | Re-sends `initialize` control request ke running CLI dan mengembalikan fresh result alih-alih cached first-connect result. Gunakan setelah transport gap, seperti reattaching ke session setelah disconnect, sehingga pending permission requests mencapai callback `canUseTool` Anda lagi. Buat callback idempotent per request ID, karena request yang response-nya hilang didispatch lagi. Memerlukan Claude Code v2.1.195 atau lebih baru |

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

646| `supportedModels()` | Mengembalikan model yang tersedia dengan info tampilan |646| `supportedModels()` | Mengembalikan available models dengan display info |

647| `supportedAgents()` | Mengembalikan subagen yang tersedia sebagai [`AgentInfo`](#agentinfo)`[]` |647| `supportedAgents()` | Mengembalikan available subagents sebagai [`AgentInfo`](#agentinfo)`[]` |

648| `mcpServerStatus()` | Mengembalikan status server MCP yang terhubung |648| `mcpServerStatus()` | Mengembalikan status connected MCP servers |

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

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

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

652| `accountInfo()` | Mengembalikan informasi akun |652| `accountInfo()` | Mengembalikan account information |

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

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

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

656| `streamInput(stream)` | Alirkan pesan input ke query untuk percakapan multi-putaran |656| `streamInput(stream)` | Stream input messages ke query untuk multi-turn conversations |

657| `stopTask(taskId)` | Hentikan tugas latar belakang yang sedang berjalan berdasarkan ID |657| `stopTask(taskId)` | Stop running background task berdasarkan ID |

658| `close()` | Tutup query dan hentikan proses yang mendasarinya. Secara paksa mengakhiri query dan membersihkan semua sumber daya |658| `close()` | Close query dan terminate underlying process. Secara paksa mengakhiri query dan membersihkan semua resources |

659 659 

660<h4 id="applyflagsettings">660<h4 id="applyflagsettings">

661 `applyFlagSettings()`661 `applyFlagSettings()`

662</h4>662</h4>

663 663 

664Mengubah [pengaturan](/docs/id/settings) pada sesi yang sedang berjalan tanpa memulai ulang query. Gunakan ketika pengaturan yang tidak memiliki setter khusus perlu berubah di tengah sesi, seperti memperketat `permissions` setelah agen membaca input yang tidak terpercaya. `setModel()` dan `setPermissionMode()` adalah setter khusus untuk dua kunci itu; `applyFlagSettings()` adalah bentuk umum yang menerima subset kunci pengaturan apa pun, dan melewatkan `model` di sini berperilaku sama seperti `setModel()`.664Mengubah [settings](/docs/id/settings) pada running session tanpa restart query. Gunakan ketika setting yang tidak memiliki dedicated setter perlu berubah mid-session, seperti tightening `permissions` setelah agent membaca untrusted input. `setModel()` dan `setPermissionMode()` adalah dedicated setters untuk dua key itu; `applyFlagSettings()` adalah bentuk umum yang menerima subset apa pun dari settings keys, dan meneruskan `model` di sini berperilaku sama seperti `setModel()`.

665 665 

666Hanya beberapa kunci yang berlaku mid-session:666Hanya beberapa keys yang berlaku mid-session:

667 667 

668* **Diterapkan pada putaran berikutnya**: `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Beralih `agent` juga menerapkan penggantian model agen itu dan hooks pada putaran berikutnya. Prompt sistemnya berlaku pada putaran berikutnya, atau, dalam sesi yang [menggunakan kembali prompt sistem yang tercatat](/docs/id/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session), setelah sesi dikompak.668* **Applied pada next turn**: `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Switching `agent` juga menerapkan model override dan hooks agent itu pada next turn. System prompt-nya berlaku pada next turn, atau, dalam session yang [reuses recorded system prompt](/docs/id/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session), sekali session dicompact.

669* **Diterapkan selama putaran saat ini**: `model`. Jika Anda beralih `model` saat Claude sedang mengerjakan putaran, respons yang Claude sudah hasilkan selesai pada model lama, dan sisa putaran, dimulai dengan panggilan berikutnya yang Claude Code buat ke model, menggunakan yang baru. Subagen menyimpan model mereka sendiri. Sebelum v2.1.212, switch mid-turn menunggu putaran berikutnya.669* **Applied selama current turn**: `model`. Jika Anda switch `model` saat Claude bekerja pada turn, response yang Claude sudah generate selesai pada model lama, dan sisa turn, dimulai dengan next call Claude Code buat ke model, menggunakan yang baru. Subagents menjaga model mereka sendiri. Sebelum v2.1.212, mid-turn switch menunggu next turn.

670* **Tidak ada efek mid-session**: opsi prompt sistem. Ini diselesaikan sekali saat startup, jadi sesi yang sedang berjalan menyimpan nilai asli meskipun panggilan berhasil. Untuk mengubahnya, mulai sesi baru.670* **Tidak ada efek mid-session**: opsi system prompt. Ini diselesaikan sekali saat startup, jadi running session menjaga nilai asli bahkan meskipun call berhasil. Untuk mengubahnya, mulai session baru.

671 671 

672`effortLevel` menerima nama [tingkat usaha](/docs/id/model-config#adjust-effort-level). Itu juga menerima `"ultracode"`, yang meminta usaha `xhigh` dengan [ultracode](/docs/id/workflows#let-claude-decide-with-ultracode) aktif. `applyFlagSettings()` mendeklarasikan `effortLevel` tanpa nilai itu, jadi lewatkan `{ ultracode: true }` yang setara dalam TypeScript. Nilai `ultracode` memerlukan Claude Code v2.1.203 atau lebih baru dan diterima hanya oleh `applyFlagSettings()`, bukan oleh kunci `effortLevel` dalam file pengaturan.672`effortLevel` menerima nama [effort level](/docs/id/model-config#adjust-effort-level). Ini juga menerima `"ultracode"`, yang meminta `xhigh` effort dengan [ultracode](/docs/id/workflows#let-claude-decide-with-ultracode) on. `applyFlagSettings()` mendeklarasikan `effortLevel` tanpa nilai itu, jadi teruskan `{ ultracode: true }` yang setara dalam TypeScript. Nilai `ultracode` memerlukan Claude Code v2.1.203 atau lebih baru dan diterima hanya oleh `applyFlagSettings()`, bukan oleh key `effortLevel` dalam settings file.

673 673 

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

675 675 

676Panggilan berturut-turut shallow-merge kunci tingkat atas. Panggilan kedua dengan `{ permissions: {...} }` mengganti seluruh objek `permissions` dari panggilan sebelumnya daripada deep-merging ke dalamnya. Untuk menghapus kunci dari lapisan flag dan kembali ke sumber preseden lebih rendah, lewatkan `null` untuk kunci itu. Melewatkan `undefined` tidak memiliki efek karena serialisasi JSON menjatuhkannya.676Successive calls shallow-merge top-level keys. Second call dengan `{ permissions: {...} }` menggantikan seluruh objek `permissions` dari prior call daripada deep-merging ke dalamnya. Untuk clear key dari flag layer, teruskan `null` untuk key itu. Sebagian besar keys kemudian fallback ke lower-precedence sources. Cleared `model` reset ke [Claude Code's default model](/docs/id/model-config), bahkan ketika settings file menetapkan `model`. Meneruskan `undefined` tidak memiliki efek karena JSON serialization menghapusnya.

677 677 

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

679 679 

680Contoh di bawah beralih model aktif mid-session, kemudian menghapus override sehingga model kembali ke apa pun yang ditentukan pengaturan pengguna atau proyek.680Contoh di bawah switch active model mid-session, kemudian clear override sehingga model reset ke [Claude Code's default model](/docs/id/model-config).

681 681 

682```typescript theme={null}682```typescript theme={null}

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

684 684 

685const q = query({ prompt: messageStream });685const q = query({ prompt: messageStream });

686 686 

687// Override model untuk sisa sesi687// Override model untuk sisa session

688await q.applyFlagSettings({ model: "claude-opus-4-6" });688await q.applyFlagSettings({ model: "claude-opus-4-6" });

689 689 

690// Nanti: hapus override dan kembali ke pengaturan preseden lebih rendah690// Kemudian: clear override; model reset ke Claude Code's default

691await q.applyFlagSettings({ model: null });691await q.applyFlagSettings({ model: null });

692```692```

693 693 

694<Note>694<Note>

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

696</Note>696</Note>

697 697 

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

699 `WarmQuery`699 `WarmQuery`

700</h3>700</h3>

701 701 

702Handle yang dikembalikan oleh [`startup()`](#startup). Subprocess sudah dispawn dan diinisialisasi, jadi memanggil `query()` pada handle ini menulis prompt langsung ke proses yang siap tanpa latensi startup.702Handle yang dikembalikan oleh [`startup()`](#startup). Subprocess sudah spawned dan initialized, jadi memanggil `query()` pada handle ini menulis prompt langsung ke ready process tanpa startup latency.

703 703 

704```typescript theme={null}704```typescript theme={null}

705interface WarmQuery extends AsyncDisposable {705interface WarmQuery extends AsyncDisposable {


713</h4>713</h4>

714 714 

715| Metode | Deskripsi |715| Metode | Deskripsi |

716| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------- |716| :-------------- | :-------------------------------------------------------------------------------------------------------------------------- |

717| `query(prompt)` | Kirim prompt ke subprocess yang sudah dipanaskan dan kembalikan [`Query`](#query-object). Hanya dapat dipanggil sekali per `WarmQuery` |717| `query(prompt)` | Kirim prompt ke pre-warmed subprocess dan kembalikan [`Query`](#query-object). Dapat hanya dipanggil sekali per `WarmQuery` |

718| `close()` | Tutup subprocess tanpa mengirim prompt. Gunakan ini untuk membuang warm query yang tidak lagi diperlukan |718| `close()` | Close subprocess tanpa mengirim prompt. Gunakan ini untuk discard warm query yang tidak lagi diperlukan |

719 719 

720`WarmQuery` mengimplementasikan `AsyncDisposable`, jadi dapat digunakan dengan `await using` untuk pembersihan otomatis.720`WarmQuery` mengimplementasikan `AsyncDisposable`, jadi dapat digunakan dengan `await using` untuk automatic cleanup.

721 721 

722<h3 id="sdkcontrolinitializeresponse">722<h3 id="sdkcontrolinitializeresponse">

723 `SDKControlInitializeResponse`723 `SDKControlInitializeResponse`

724</h3>724</h3>

725 725 

726Tipe pengembalian dari `initializationResult()`. Berisi data inisialisasi sesi.726Return type dari `initializationResult()`. Berisi session initialization data.

727 727 

728```typescript theme={null}728```typescript theme={null}

729type SDKControlInitializeResponse = {729type SDKControlInitializeResponse = {


739};739};

740```740```

741 741 

742`hooks_applied` melaporkan apakah Claude Code mendaftarkan `hooks` yang permintaan `initialize` bawa. SDK mengirim permintaan itu sekali ketika sesi dimulai dan lagi pada setiap panggilan [`reinitialize()`](#query-object). Field memerlukan Agent SDK v0.3.238 atau lebih baru.742`hooks_applied` melaporkan apakah Claude Code mendaftarkan `hooks` yang `initialize` request bawa. SDK mengirim request itu sekali ketika session dimulai dan lagi pada setiap panggilan [`reinitialize()`](#query-object). Field memerlukan Agent SDK v0.3.238 atau lebih baru.

743 743 

744Claude Code menghilangkan field ketika permintaan tidak membawa hooks. Ketika permintaan membawa hooks, nilainya tergantung pada apakah permintaan adalah initialize pertama sesi dan, untuk yang berulang, bagaimana itu mencapai sesi:744Claude Code menghilangkan field ketika request tidak membawa hooks. Ketika request membawa hooks, nilai tergantung pada apakah request adalah session's first initialize dan, untuk yang berulang, pada cara itu mencapai session:

745 745 

746* `true`: Claude Code mendaftarkan hooks. Initialize pertama sesi mengembalikan nilai ini. Begitu juga initialize berulang yang dikirim melalui stdin CLI. Dalam hal ini hooks dalam permintaan baru mengganti hooks yang didaftarkan sebelumnya.746* `true`: Claude Code mendaftarkan hooks. Session's first initialize mengembalikan nilai ini. Repeated initialize yang dikirim melalui CLI's stdin juga mengembalikan `true`. Dalam hal ini hooks dalam new request menggantikan hooks yang didaftarkan sebelumnya.

747* `false`: Claude Code mengabaikan hooks. Initialize berulang yang dikirim ke sesi jarak jauh mengembalikan nilai ini, jadi klien kedua yang bergabung dengan sesi tidak dapat mengganti hooks yang klien pertama daftarkan.747* `false`: Claude Code mengabaikan hooks. Repeated initialize yang dikirim ke remote session mengembalikan nilai ini, jadi second client yang join session tidak dapat menggantikan hooks yang first client daftarkan.

748 748 

749Sebelum Agent SDK v0.3.238, respons tidak pernah membawa field, dan Claude Code mengabaikan `hooks` pada setiap initialize berulang.749Sebelum Agent SDK v0.3.238, response tidak pernah membawa field, dan Claude Code mengabaikan `hooks` pada setiap repeated initialize.

750 750 

751Respons selalu melaporkan `fast_mode_state`, dan ketika sesuatu memblokir [fast mode](/docs/id/fast-mode), `fast_mode_disabled_reason` membawa kode alasan bersama dengannya, jadi Anda dapat menjelaskan keadaan terblokir alih-alih re-deriving ketersediaan. Kedua perilaku memerlukan Claude Code v2.1.219 atau lebih baru. Sebelum v2.1.219, respons menghilangkan `fast_mode_state` ketika fast mode tidak tersedia dan tidak pernah membawa alasan. Untuk kode alasan dan artinya, lihat [`fast_mode_disabled_reason`](#sdkresultmessage) pada pesan hasil.751Response selalu melaporkan `fast_mode_state`, dan ketika sesuatu memblokir [fast mode](/docs/id/fast-mode), `fast_mode_disabled_reason` membawa reason code bersama dengannya, jadi Anda dapat menjelaskan blocked state alih-alih re-deriving availability. Kedua perilaku memerlukan Claude Code v2.1.219 atau lebih baru. Sebelum v2.1.219, response menghilangkan `fast_mode_state` ketika fast mode tidak tersedia dan tidak pernah membawa reason. Untuk reason codes dan meanings mereka, lihat [`fast_mode_disabled_reason`](#sdkresultmessage) pada result message.

752 752 

753Wrapper control-response untuk `initialize` yang berhasil juga membawa array `pending_permission_requests`. Field berada pada wrapper respons itu sendiri, bukan dalam payload `SDKControlInitializeResponse` di atas. Setiap entri adalah pesan `control_request` lengkap dengan bentuk `{ type: "control_request", request_id, request }` yang sama sesi alirkan untuk permintaan izin saat berjalan.753Control-response wrapper untuk successful `initialize` juga membawa array `pending_permission_requests`. Field berada pada response wrapper itu sendiri, bukan dalam payload `SDKControlInitializeResponse` di atas. Setiap entri adalah complete `control_request` message dengan shape `{ type: "control_request", request_id, request }` yang sama yang session stream untuk permission requests saat running.

754 754 

755Array mencantumkan permintaan izin yang proses Claude Code ini keluarkan dan belum diselesaikan. SDK membaca array untuk Anda dan mengirimkan setiap entri ke callback [`canUseTool`](#canusetool) Anda, pengiriman ulang yang sama yang [`reinitialize()`](#query-object) picu setelah celah transport. Tangani ID permintaan berulang secara idempotent, karena entri dapat mengulangi permintaan yang callback sudah terima sebelum koneksi putus.755Array mencantumkan permission requests yang Claude Code process ini telah issued dan belum resolved. SDK membaca array untuk Anda dan mendispatch setiap entri ke callback [`canUseTool`](#canusetool) Anda, redelivery yang sama yang [`reinitialize()`](#query-object) trigger setelah transport gap. Handle repeated request IDs idempotently, karena entri dapat mengulangi request yang callback sudah terima sebelum connection drop.

756 756 

757Array selalu ada pada respons `initialize` yang berhasil dan kosong ketika proses ini tidak memiliki permintaan izin yang belum diselesaikan. Memerlukan Claude Code v2.1.268 atau lebih baru. Versi sebelumnya dapat menghilangkan field, jadi jika Anda mengurai protokol wire sendiri, perlakukan field yang hilang sebagai CLI yang lebih lama daripada bukti bahwa tidak ada yang tertunda.757Array selalu present pada successful `initialize` response dan kosong ketika process ini tidak memiliki unresolved permission request. Memerlukan Claude Code v2.1.268 atau lebih baru. Versi sebelumnya dapat menghilangkan field, jadi jika Anda parse wire protocol sendiri, treat missing field sebagai older CLI daripada sebagai proof bahwa nothing is pending.

758 758 

759<h3 id="sdkcontrolinterruptresponse">759<h3 id="sdkcontrolinterruptresponse">

760 `SDKControlInterruptResponse`760 `SDKControlInterruptResponse`

761</h3>761</h3>

762 762 

763Penerimaan interrupt: nilai yang [`interrupt()`](#query-object) diselesaikan dengan pada CLI yang mengiklankan kemampuan `interrupt_receipt_v1` dalam [`SDKSystemMessage.capabilities`](#sdksystemmessage). Memerlukan Claude Code v2.1.205 atau lebih baru. CLI sebelumnya menjawab interrupt dengan payload kesuksesan kosong, jadi `interrupt()` diselesaikan ke `undefined`.763Interrupt receipt: nilai yang [`interrupt()`](#query-object) resolves dengan pada CLI yang mengiklankan kemampuan `interrupt_receipt_v1` dalam [`SDKSystemMessage.capabilities`](#sdksystemmessage). Memerlukan Claude Code v2.1.205 atau lebih baru. Earlier CLIs menjawab interrupt dengan empty success payload, jadi `interrupt()` resolves ke `undefined`.

764 764 

765```typescript theme={null}765```typescript theme={null}

766type SDKControlInterruptResponse = {766type SDKControlInterruptResponse = {


769};769};

770```770```

771 771 

772`still_queued` mencantumkan UUID pesan pengguna yang tertunda ketika interrupt tiba: pesan masih dalam antrian, ditambah pesan apa pun yang Claude Code sudah ambil dari antrian untuk putaran berikutnya. Setelah putaran pertama sesi dimulai, Claude Code memproses pesan yang tercantum setelah interrupt kecuali Anda membatalkannya terlebih dahulu, dan dapat menggabungkan beberapa ke dalam satu putaran. Jika Anda mengganggu sebelum putaran pertama dimulai, Claude Code membatalkan putaran itu segera setelah dimulai, dan pesan yang tercantum dalam putaran itu tidak mendapat respons.772`still_queued` mencantumkan UUIDs dari user messages yang pending ketika interrupt tiba: messages masih dalam queue, plus messages apa pun yang Claude Code sudah ambil dari queue untuk next turn. Sekali session's first turn telah dimulai, Claude Code memproses listed messages setelah interrupt kecuali Anda cancel mereka terlebih dahulu, dan dapat merge beberapa ke dalam satu turn. Jika Anda interrupt sebelum first turn dimulai, Claude Code membatalkan turn itu segera setelah dimulai, dan listed messages dalam turn itu tidak mendapat response.

773 773 

774Gunakan penerimaan untuk memutuskan apakah akan mengirim ulang apa pun. Pesan yang tercantum yang Anda tidak batalkan memasuki percakapan apakah atau tidak mendapat respons, jadi mengirim ulangnya menghasilkan Claude menerima dua kali.774Gunakan receipt untuk memutuskan apakah akan resend apa pun. Listed message yang Anda tidak cancel memasuki conversation apakah atau tidak mendapat response, jadi resending-nya mengirimkan ke Claude dua kali.

775 775 

776Interpretasikan daftar dengan peringatan ini:776Interpretasikan list dengan caveats ini:

777 777 

778* Hanya pesan yang antri dengan UUID muncul. Array kosong tidak berarti tidak ada lagi yang akan berjalan.778* Hanya messages yang di-enqueue dengan UUID yang muncul. Array kosong tidak berarti nothing else akan run.

779* Hanya pesan thread utama yang terdaftar. Pesan yang ditujukan ke subagen di luar jangkauan.779* Hanya main-thread messages yang tercantum. Messages yang ditujukan ke subagent out of scope.

780* Daftar dapat mencakup UUID yang klien Anda tidak pernah kirim, seperti pemicu [tugas terjadwal](/docs/id/scheduled-tasks). Abaikan UUID yang tidak Anda kenal alih-alih memperlakukannya sebagai error.780* List dapat include UUIDs yang client Anda tidak pernah kirim, seperti [scheduled task](/docs/id/scheduled-tasks) triggers. Abaikan UUIDs yang Anda tidak kenal alih-alih treat sebagai error.

781 781 

782Klien yang menjalankan protokol kontrol CLI secara langsung, daripada melalui `interrupt()`, dapat menetapkan `cancel_queued: true` pada permintaan kontrol `interrupt`. Claude Code v2.1.219 dan lebih baru mengiklankan dukungan dengan kemampuan `interrupt_cancel_queued_v1` dalam [`SDKSystemMessage.capabilities`](#sdksystemmessage); CLI yang lebih lama mengabaikan field dan membiarkan pesan antrian berjalan seperti biasa. Interrupt seperti itu juga membatalkan setiap pesan yang akan tercantum di bawah `still_queued`: penerimaan mencantumnya di bawah `cancelled` sebagai gantinya, `still_queued` kosong, dan tidak ada yang berjalan.782Client yang drive CLI's control protocol langsung, daripada melalui `interrupt()`, dapat set `cancel_queued: true` pada `interrupt` control request. Claude Code v2.1.219 dan lebih baru mengiklankan support dengan kemampuan `interrupt_cancel_queued_v1` dalam [`SDKSystemMessage.capabilities`](#sdksystemmessage); older CLIs mengabaikan field dan leave queued messages untuk run seperti biasa. Interrupt seperti itu juga cancel setiap message yang akan otherwise tercantum di bawah `still_queued`: receipt mencantumnya di bawah `cancelled` sebagai gantinya, `still_queued` kosong, dan none dari mereka run.

783 783 

784Daftar `cancelled` membawa peringatan yang sama seperti `still_queued`. Metode `interrupt()` tidak pernah mengirim `cancel_queued`, jadi penerimaan yang diselesaikannya tidak membawa `cancelled`.784`cancelled` list membawa caveats yang sama seperti `still_queued`. Metode `interrupt()` tidak pernah mengirim `cancel_queued`, jadi receipts yang resolves dengan tidak membawa `cancelled`.

785 785 

786Penerimaan adalah snapshot yang diambil pada saat interrupt diproses, dan pada interrupt yang bersih tiba sebelum [`SDKResultMessage`](#sdkresultmessage) putaran yang terputus. Baca penerimaan daripada memeriksa antrian setelah hasil itu: loop memulai putaran antrian berikutnya segera, jadi antrian yang Anda periksa setelah hasil sudah berubah.786Receipt adalah snapshot yang diambil pada moment interrupt diproses, dan pada clean interrupt tiba sebelum interrupted turn's [`SDKResultMessage`](#sdkresultmessage). Baca receipt daripada inspect queue setelah result itu: loop dimulai next queued turn segera, jadi queue yang Anda inspect setelah result sudah berubah.

787 787 

788<h3 id="sdkcontrolgetcontextusageresponse">788<h3 id="sdkcontrolgetcontextusageresponse">

789 `SDKControlGetContextUsageResponse`789 `SDKControlGetContextUsageResponse`

790</h3>790</h3>

791 791 

792Tipe pengembalian dari [`getContextUsage()`](#query-object). Dengan `detail` default, ini adalah payload yang sama Claude Code render untuk perintah `/context` dalam sesi interaktif, jadi bersama dengan token counts itu membawa field tampilan seperti `color` dan `gridRows` yang Claude Code gunakan untuk menggambar grid penggunaan `/context`.792Return type dari [`getContextUsage()`](#query-object). Dengan default `detail`, ini adalah payload yang sama Claude Code render untuk `/context` command dalam interactive session, jadi bersama token counts ini membawa display fields seperti `color` dan `gridRows` yang Claude Code gunakan untuk draw `/context` usage grid.

793 793 

794Argumen `detail` opsional metode memilih bagaimana Claude Code menghitung setiap kategori. Dengan default, `'full'`, Claude Code menghitung setiap kategori dengan permintaan API token-counting. Lewatkan `{ detail: 'summary' }` untuk mendapatkan jawaban dari penggunaan respons terakhir dan estimasi lokal sebagai gantinya. Tidak ada permintaan token-count yang keluar, dan angka per-kategori adalah perkiraan. Argumen `detail` memerlukan Agent SDK v0.3.257 atau lebih baru.794Argumen `detail` opsional method memilih bagaimana Claude Code menghitung setiap kategori. Dengan default, `'full'`, Claude Code menghitung setiap kategori dengan token-counting API requests. Teruskan `{ detail: 'summary' }` untuk mendapatkan answer dari last response's usage dan local estimates sebagai gantinya. Tidak ada token-count requests keluar, dan per-category numbers adalah approximate. Argumen `detail` memerlukan Agent SDK v0.3.257 atau lebih baru.

795 795 

796Ketika Anda mengirim `/context` sebagai prompt alih-alih memanggil metode, Claude Code melampirkan payload [`SDKContextUsage`](#sdkcontextusage) ke field `context_usage` dari pesan asisten yang menghasilkan hasil. Field itu memerlukan Agent SDK v0.3.232 atau lebih baru.796Ketika Anda mengirim `/context` sebagai prompt alih-alih memanggil method, Claude Code melampirkan payload [`SDKContextUsage`](#sdkcontextusage) ke bidang `context_usage` dari assistant message yang delivers result. Field itu memerlukan Agent SDK v0.3.232 atau lebih baru.

797 797 

798```typescript theme={null}798```typescript theme={null}

799type SDKControlGetContextUsageResponse = {799type SDKControlGetContextUsageResponse = {


889};889};

890```890```

891 891 

892Baca atribusi token dari field koleksi:892Baca token attribution dari collection fields:

893 893 

894* `categories` menyimpan total per-kategori.894* `categories` memegang per-category totals.

895* `mcpTools` dan `agents` atribut token ke tool MCP individual dan subagen.895* `mcpTools` dan `agents` attribute tokens ke individual MCP tools dan subagents.

896* `memoryFiles` mencantumkan setiap file memori yang dimuat dengan biayanya.896* `memoryFiles` mencantumkan setiap loaded memory file dengan costnya.

897* `skills.skillFrontmatter` atribut token listing skill ke setiap skill yang disertakan. Hitungan per-skill mengukur setiap entri listing skill seperti Claude Code benar-benar mengirimkannya, yang dapat lebih pendek dari frontmatter lengkap skill. Bandingkan `skills.totalSkills` dengan `skills.includedSkills` untuk melihat apakah setiap skill yang ditemukan membuat listing.897* `skills.skillFrontmatter` attributes skill listing's tokens ke setiap included skill. Per-skill counts mengukur setiap skill's listing entry seperti Claude Code benar-benar kirimkan, yang dapat lebih pendek daripada skill's full frontmatter. Bandingkan `skills.totalSkills` dengan `skills.includedSkills` untuk lihat apakah setiap discovered skill membuat ke listing.

898 898 

899`totalTokens` adalah penggunaan konteks sesi saat ini, dan `maxTokens` adalah jendela yang penggunaan diukur terhadapnya. Jendela itu adalah jendela konteks model, atau jendela auto-compaction yang lebih rendah ketika satu berlaku. `rawMaxTokens` membawa nilai yang sama seperti `maxTokens`, dan `percentage` adalah `totalTokens` sebagai persentase pembulatan dari jendela itu.899`totalTokens` adalah session's current context usage, dan `maxTokens` adalah window yang usage diukur terhadap. Window itu adalah model's context window, atau lower auto-compaction window ketika satu berlaku. `rawMaxTokens` membawa nilai yang sama seperti `maxTokens`, dan `percentage` adalah `totalTokens` sebagai rounded percentage dari window itu.

900 900 

901Claude Code meninggalkan diagnostik `deferredBuiltinTools`, `systemTools`, dan `systemPromptSections` opsional yang tidak diatur, jadi harapkan mereka tidak ada bahkan meskipun tipe mendeklarasikannya.901Claude Code meninggalkan optional `deferredBuiltinTools`, `systemTools`, dan `systemPromptSections` diagnostics unset, jadi expect mereka absent bahkan meskipun type mendeklarasikan mereka.

902 902 

903<h3 id="sdkcontrolreadfileresponse">903<h3 id="sdkcontrolreadfileresponse">

904 `SDKControlReadFileResponse`904 `SDKControlReadFileResponse`

905</h3>905</h3>

906 906 

907Tipe pengembalian dari [`readFile()`](#query-object).907Return type dari [`readFile()`](#query-object).

908 908 

909```typescript theme={null}909```typescript theme={null}

910type SDKControlReadFileResponse = {910type SDKControlReadFileResponse = {


915};915};

916```916```

917 917 

918`contents` menyimpan teks file, atau data base64 ketika Anda meminta `encoding: 'base64'`; field `encoding` respons diatur ke `'base64'` dalam hal itu. `absPath` adalah path absolut yang diselesaikan. `truncated` diatur ketika file lebih panjang dari cap `maxBytes` dan konten dipotong pada batas itu.918`contents` memegang file text, atau base64 data ketika Anda meminta `encoding: 'base64'`; response's `encoding` field diatur ke `'base64'` dalam hal itu. `absPath` adalah resolved absolute path. `truncated` diatur ketika file lebih panjang daripada `maxBytes` cap dan contents dipotong pada limit itu.

919 919 

920<h4 id="what-readfile-can-read">920<h4 id="what-readfile-can-read">

921 Apa yang `readFile()` dapat baca921 Apa yang `readFile()` dapat baca

922</h4>922</h4>

923 923 

924`readFile()` melayani set file yang lebih sempit daripada tool Read:924`readFile()` melayani set files yang lebih sempit daripada Read tool:

925 925 

926* File reguler di dalam salah satu direktori kerja sesi, seperti `cwd` dan `additionalDirectories`926* Regular file di dalam salah satu session's working directories, seperti `cwd` dan `additionalDirectories`

927* Beberapa file Claude Code sendiri untuk sesi, seperti hasil tool927* Beberapa file Claude Code sendiri untuk session, seperti tool results

928 928 

929Aturan deny dan ask Read masih memblokir path yang cocok, dan aturan allow Read yang luas tidak membuka sisa filesystem ke `readFile()`. Untuk apa pun yang lain panggilan diselesaikan dengan `null`.929`Read` deny dan ask rules masih memblokir matching path, dan broad `Read` allow rule tidak membuka sisa filesystem ke `readFile()`. Untuk apa pun yang lain call resolves dengan `null`.

930 930 

931<h3 id="sdkcontrolreloadskillsresponse">931<h3 id="sdkcontrolreloadskillsresponse">

932 `SDKControlReloadSkillsResponse`932 `SDKControlReloadSkillsResponse`

933</h3>933</h3>

934 934 

935Tipe pengembalian dari [`reloadSkills()`](#query-object).935Return type dari [`reloadSkills()`](#query-object).

936 936 

937```typescript theme={null}937```typescript theme={null}

938type SDKControlReloadSkillsResponse = {938type SDKControlReloadSkillsResponse = {


940};940};

941```941```

942 942 

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

944 944 

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

946 `AgentDefinition`946 `AgentDefinition`

947</h3>947</h3>

948 948 

949Konfigurasi untuk subagen yang didefinisikan secara terprogram.949Konfigurasi untuk subagent yang didefinisikan secara terprogram.

950 950 

951```typescript theme={null}951```typescript theme={null}

952type AgentDefinition = {952type AgentDefinition = {


960 initialPrompt?: string;960 initialPrompt?: string;

961 maxTurns?: number;961 maxTurns?: number;

962 background?: boolean;962 background?: boolean;

963 omitClaudeMd?: boolean;

963 memory?: "user" | "project" | "local";964 memory?: "user" | "project" | "local";

964 effort?: "low" | "medium" | "high" | "xhigh" | "max" | number;965 effort?: "low" | "medium" | "high" | "xhigh" | "max" | number;

965 permissionMode?: PermissionMode;966 permissionMode?: PermissionMode;


968```969```

969 970 

970| Field | Diperlukan | Deskripsi |971| Field | Diperlukan | Deskripsi |

971| :------------------------------------ | :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |972| :------------------------------------ | :--------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

972| `description` | Ya | Deskripsi bahasa alami tentang kapan menggunakan agen ini |973| `description` | Ya | Natural language description tentang kapan menggunakan agent ini |

973| `tools` | Tidak | Array nama tool yang diizinkan. Jika dihilangkan, mewarisi setiap [tool yang tersedia untuk subagen](/docs/id/sub-agents#available-tools). Untuk preload Skills ke dalam konteks agen, gunakan field `skills` daripada mencantumkan `'Skill'` di sini |974| `tools` | Tidak | Array dari allowed tool names. Jika dihilangkan, inherit setiap [tool available to subagents](/docs/id/sub-agents#available-tools). Untuk preload Skills ke dalam agent's context, gunakan field `skills` daripada listing `'Skill'` di sini |

974| `disallowedTools` | Tidak | Array nama tool untuk secara eksplisit tidak izinkan untuk agen ini. Pola tingkat server MCP juga diterima: `mcp__server` atau `mcp__server__*` menghapus setiap tool dari server itu, dan `mcp__*` menghapus setiap tool MCP dari server apa pun |975| `disallowedTools` | Tidak | Array dari tool names untuk secara eksplisit disallow untuk agent ini. MCP server-level patterns juga diterima: `mcp__server` atau `mcp__server__*` menghapus setiap tool dari server itu, dan `mcp__*` menghapus setiap MCP tool dari server apa pun |

975| `prompt` | Ya | Prompt sistem agen |976| `prompt` | Ya | System prompt agent |

976| `model` | Tidak | Penggantian model untuk agen ini. Menerima alias seperti `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, atau ID model lengkap. `'inherit'` menggunakan model utama. Ketika Anda menghilangkannya, Claude Code memilih model dalam [urutan model subagen](/docs/id/sub-agents#choose-a-model) |977| `model` | Tidak | Model override untuk agent ini. Menerima alias seperti `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, atau full model ID. `'inherit'` menggunakan main model. Ketika Anda menghilangkannya, Claude Code memilih model dalam [subagent model order](/docs/id/sub-agents#choose-a-model) |

977| `mcpServers` | Tidak | Spesifikasi server MCP untuk agen ini |978| `mcpServers` | Tidak | MCP server specifications untuk agent ini |

978| `skills` | Tidak | Array nama skill untuk preload ke konteks agen |979| `skills` | Tidak | Array dari skill names untuk preload ke dalam agent context |

979| `initialPrompt` | Tidak | Auto-submitted sebagai putaran pengguna pertama ketika agen ini berjalan sebagai agen thread utama |980| `initialPrompt` | Tidak | Auto-submitted sebagai first user turn ketika agent ini berjalan sebagai main thread agent |

980| `maxTurns` | Tidak | Jumlah maksimum putaran agen (API round-trips) sebelum berhenti |981| `maxTurns` | Tidak | Maksimal agentic turns (API round-trips) sebelum stopping |

981| `background` | Tidak | Jalankan agen ini sebagai tugas latar belakang non-blocking ketika dipanggil |982| `background` | Tidak | Jalankan agent ini sebagai non-blocking background task ketika invoked |

982| `memory` | Tidak | Sumber memori untuk agen ini: `'user'`, `'project'`, atau `'local'` |983| `omitClaudeMd` | Tidak | Jalankan agent ini tanpa user, project, dan local CLAUDE.md files ketika berjalan sebagai subagent; managed policy files masih load. Gunakan untuk agents yang mengambil semuanya yang mereka butuhkan dari Agent tool prompt. Diabaikan ketika agent ini berjalan sebagai main thread agent. Memerlukan TypeScript Agent SDK v0.3.271 atau lebih baru |

983| `effort` | Tidak | Tingkat usaha penalaran untuk agen ini. Menerima tingkat bernama atau integer |984| `memory` | Tidak | Memory source untuk agent ini: `'user'`, `'project'`, atau `'local'` |

984| `permissionMode` | Tidak | Mode izin untuk eksekusi tool dalam agen ini. [Aturan inheritance subagen](/docs/id/agent-sdk/permissions#available-modes) memutuskan kapan itu berlaku. Lihat [`PermissionMode`](#permissionmode) |985| `effort` | Tidak | Reasoning effort level untuk agent ini. Menerima named level atau integer |

985| `criticalSystemReminder_EXPERIMENTAL` | Tidak | Eksperimental: Pengingat kritis ditambahkan ke prompt sistem |986| `permissionMode` | Tidak | Permission mode untuk tool execution dalam agent ini. [Subagent inheritance rules](/docs/id/agent-sdk/permissions#available-modes) memutuskan kapan berlaku. Lihat [`PermissionMode`](#permissionmode) |

987| `criticalSystemReminder_EXPERIMENTAL` | Tidak | Experimental: Critical reminder ditambahkan ke system prompt |

986 988 

987<h3 id="agentmcpserverspec">989<h3 id="agentmcpserverspec">

988 `AgentMcpServerSpec`990 `AgentMcpServerSpec`

989</h3>991</h3>

990 992 

991Menentukan server MCP yang tersedia untuk subagen. Dapat berupa nama server (string yang mereferensikan server dari konfigurasi `mcpServers` parent) atau konfigurasi server inline yang merekam nama server ke configs.993Menentukan MCP servers yang tersedia untuk subagent. Dapat berupa server name (string yang mereferensikan server dari parent's `mcpServers` config) atau inline server configuration record yang memetakan server names ke configs.

992 994 

993```typescript theme={null}995```typescript theme={null}

994type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;996type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;


1000 `SettingSource`1002 `SettingSource`

1001</h3>1003</h3>

1002 1004 

1003Mengontrol sumber konfigurasi berbasis filesystem mana yang dimuat pengaturan SDK.1005Mengontrol filesystem-based configuration sources mana yang SDK muat settings dari.

1004 1006 

1005```typescript theme={null}1007```typescript theme={null}

1006type SettingSource = "user" | "project" | "local";1008type SettingSource = "user" | "project" | "local";

1007```1009```

1008 1010 

1009| Nilai | Deskripsi | Lokasi |1011| Nilai | Deskripsi | Lokasi |

1010| :---------- | :-------------------------------------------------------------------------------------- | :---------------------------- |1012| :---------- | :---------------------------------------------------------------------------------- | :---------------------------- |

1011| `'user'` | Pengaturan pengguna global | `~/.claude/settings.json` |1013| `'user'` | Global user settings | `~/.claude/settings.json` |

1012| `'project'` | Pengaturan proyek bersama (version controlled) | `.claude/settings.json` |1014| `'project'` | Shared project settings (version controlled) | `.claude/settings.json` |

1013| `'local'` | Pengaturan proyek lokal, gitignored ketika Claude Code menyimpan pengaturan ke dalamnya | `.claude/settings.local.json` |1015| `'local'` | Local project settings, gitignored ketika Claude Code menyimpan setting ke dalamnya | `.claude/settings.local.json` |

1014 1016 

1015<h4 id="default-behavior">1017<h4 id="default-behavior">

1016 Perilaku default1018 Perilaku default

1017</h4>1019</h4>

1018 1020 

1019Ketika `settingSources` dihilangkan atau `undefined`, `query()` memuat pengaturan filesystem yang sama seperti CLI Claude Code: pengguna, proyek, dan lokal. Lihat [Apa yang settingSources tidak kontrol](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) untuk input yang dibaca terlepas dari opsi ini, dan cara menonaktifkannya.1021Ketika `settingSources` dihilangkan atau `undefined`, `query()` memuat filesystem settings yang sama seperti Claude Code CLI: user, project, dan local. Lihat [What settingSources does not control](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) untuk inputs yang dibaca terlepas dari opsi ini, dan cara menonaktifkannya.

1020 1022 

1021<h4 id="why-use-settingsources">1023<h4 id="why-use-settingsources">

1022 Mengapa menggunakan settingSources1024 Mengapa menggunakan settingSources

1023</h4>1025</h4>

1024 1026 

1025**Nonaktifkan pengaturan filesystem:**1027**Nonaktifkan filesystem settings:**

1026 1028 

1027```typescript theme={null}1029```typescript theme={null}

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

1029 1031 

1030// Jangan muat pengaturan pengguna, proyek, atau lokal dari disk1032// Jangan muat user, project, atau local settings dari disk

1031const result = query({1033const result = query({

1032 prompt: "Analyze this code",1034 prompt: "Analyze this code",

1033 options: { settingSources: [] }1035 options: { settingSources: [] }

1034});1036});

1035```1037```

1036 1038 

1037**Muat hanya sumber pengaturan tertentu:**1039**Muat hanya specific setting sources:**

1038 1040 

1039```typescript theme={null}1041```typescript theme={null}

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

1041 1043 

1042// Muat hanya pengaturan proyek, abaikan pengguna dan lokal1044// Muat hanya project settings, abaikan user dan local

1043const result = query({1045const result = query({

1044 prompt: "Run CI checks",1046 prompt: "Run CI checks",

1045 options: {1047 options: {


1048});1050});

1049```1051```

1050 1052 

1051Untuk memuat instruksi proyek CLAUDE.md, sertakan `"project"` dalam `settingSources`. Lihat [Modifikasi system prompts](/docs/id/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) untuk bagaimana loading CLAUDE.md berinteraksi dengan opsi system prompt.1053Untuk memuat CLAUDE.md project instructions, sertakan `"project"` dalam `settingSources`. Lihat [Modify system prompts](/docs/id/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) untuk cara CLAUDE.md loading berinteraksi dengan system prompt options.

1052 1054 

1053<h4 id="settings-precedence">1055<h4 id="settings-precedence">

1054 Preseden pengaturan1056 Settings precedence

1055</h4>1057</h4>

1056 1058 

1057Ketika beberapa sumber dimuat, pengaturan digabungkan dengan preseden ini (tertinggi ke terendah):1059Ketika multiple sources dimuat, settings dimerge dengan precedence ini (tertinggi ke terendah):

1058 1060 

10591. Pengaturan lokal (`.claude/settings.local.json`)10611. Local settings (`.claude/settings.local.json`)

10602. Pengaturan proyek (`.claude/settings.json`)10622. Project settings (`.claude/settings.json`)

10613. Pengaturan pengguna (`~/.claude/settings.json`)10633. User settings (`~/.claude/settings.json`)

1062 1064 

1063Opsi terprogram seperti `agents`, `allowedTools`, dan `settings` mengganti pengaturan filesystem pengguna, proyek, dan lokal. Pengaturan kebijakan terkelola mengambil preseden atas opsi terprogram.1065Programmatic options seperti `agents`, `allowedTools`, dan `settings` override user, project, dan local filesystem settings. Managed policy settings mengambil precedence atas programmatic options.

1064 1066 

1065<h3 id="permissionmode">1067<h3 id="permissionmode">

1066 `PermissionMode`1068 `PermissionMode`


1068 1070 

1069```typescript theme={null}1071```typescript theme={null}

1070type PermissionMode =1072type PermissionMode =

1071 | "default" // Perilaku izin standar1073 | "default" // Perilaku permission standar

1072 | "acceptEdits" // Auto-accept edit file1074 | "acceptEdits" // Auto-accept file edits

1073 | "bypassPermissions" // Bypass pemeriksaan izin; aturan ask eksplisit masih prompt1075 | "bypassPermissions" // Bypass permission checks; explicit ask rules masih prompt

1074 | "plan" // Mode perencanaan - jelajahi tanpa mengedit1076 | "plan" // Planning mode - explore tanpa editing

1075 | "dontAsk" // Jangan prompt untuk izin, tolak jika tidak pre-approved1077 | "dontAsk" // Jangan prompt untuk permissions, deny jika tidak pre-approved

1076 | "auto"; // Classifier model menyetujui atau menolak prompt izin1078 | "auto"; // Model classifier approves atau denies permission prompts

1077```1079```

1078 1080 

1079<h3 id="canusetool">1081<h3 id="canusetool">

1080 `CanUseTool`1082 `CanUseTool`

1081</h3>1083</h3>

1082 1084 

1083Tipe fungsi izin kustom untuk mengontrol penggunaan tool.1085Custom permission function type untuk mengontrol tool usage.

1084 1086 

1085Fungsi adalah pengganti SDK untuk prompt izin interaktif: dipanggil hanya ketika [alur evaluasi izin](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated) diselesaikan ke prompt. Panggilan tool yang sudah disetujui oleh entri `allowedTools`, aturan allow pengaturan, atau mode izin, seperti `acceptEdits` atau `bypassPermissions`, tidak pernah memanggilnya. Untuk gating setiap tool call, gunakan hook [`PreToolUse`](/docs/id/agent-sdk/hooks) sebagai gantinya.1087Fungsi adalah SDK replacement untuk interactive permission prompt: dipanggil hanya ketika [permission evaluation flow](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated) resolves ke prompt. Tool calls sudah approved oleh entri `allowedTools`, settings allow rule, atau permission mode, seperti `acceptEdits` atau `bypassPermissions`, tidak pernah invoke-nya. Untuk gate setiap tool call, gunakan [`PreToolUse` hook](/docs/id/agent-sdk/hooks) sebagai gantinya.

1086 1088 

1087Aturan allow tidak pre-approve [tindakan yang tidak ada mode auto-approve](/docs/id/permission-modes#actions-no-mode-auto-approves); lihat [Bagaimana izin dievaluasi](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated) untuk mana dari mereka yang mencapai callback dan apa yang terjadi dalam mode `dontAsk` dan `auto`.1089Sebuah allow rule tidak pre-approve [actions no mode auto-approves](/docs/id/permission-modes#actions-no-mode-auto-approves); lihat [How permissions are evaluated](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated) untuk mana dari mereka yang mencapai callback dan apa yang terjadi dalam `dontAsk` dan `auto` mode.

1088 1090 

1089```typescript theme={null}1091```typescript theme={null}

1090type CanUseTool = (1092type CanUseTool = (


1094 signal: AbortSignal;1096 signal: AbortSignal;

1095 suggestions?: PermissionUpdate[];1097 suggestions?: PermissionUpdate[];

1096 blockedPath?: string;1098 blockedPath?: string;

1099 mcpServer?: { name: string; source: string };

1097 decisionReason?: string;1100 decisionReason?: string;

1098 toolUseID: string;1101 toolUseID: string;

1099 agentID?: string;1102 agentID?: string;


1102) => Promise<PermissionResult | null>;1105) => Promise<PermissionResult | null>;

1103```1106```

1104 1107 

1105| Opsi | Tipe | Deskripsi |1108| Opsi | Jenis | Deskripsi |

1106| :--------------- | :------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1109| :--------------- | :------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1107| `signal` | `AbortSignal` | Signaled jika operasi harus dibatalkan |1110| `signal` | `AbortSignal` | Signaled jika operasi harus dibatalkan |

1108| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | Saran pembaruan izin sehingga pengguna tidak diprompt lagi untuk tool ini. Prompt Bash menyertakan saran dengan [destination](#permissionupdatedestination) `localSettings`, jadi mengembalikannya dalam `updatedPermissions` menulis aturan ke `.claude/settings.local.json` dan bertahan di seluruh sesi. |1111| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | Suggested permission updates sehingga user tidak diprompt lagi untuk tool ini. Bash prompts include suggestion dengan `localSettings` [destination](#permissionupdatedestination), jadi returning-nya dalam `updatedPermissions` menulis rule ke `.claude/settings.local.json` dan persists across sessions. |

1109| `blockedPath` | `string` | Jalur file yang memicu permintaan izin, jika berlaku |1112| `blockedPath` | `string` | File path yang triggered permission request, jika applicable |

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

1111| `toolUseID` | `string` | Pengenal unik untuk tool call spesifik ini dalam pesan asisten |1114| `decisionReason` | `string` | Menjelaskan mengapa permission request ini triggered |

1112| `agentID` | `string` | Jika berjalan dalam sub-agen, ID sub-agen |1115| `toolUseID` | `string` | Unique identifier untuk specific tool call ini dalam assistant message |

1113| `requestId` | `string` | `request_id` dari envelope `control_request`. `control_response` yang aplikasi Anda kirim di luar SDK, seperti HTTP POST yang ditandatangani, harus mengulangi nilai ini sehingga proses Claude Code dapat mencocokkan balasan ke permintaan |1116| `agentID` | `string` | Jika running dalam sub-agent, sub-agent's ID |

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

1114 1118 

1115Callback biasanya menyelesaikan permintaan dengan mengembalikan [`PermissionResult`](#permissionresult), yang SDK tulis kembali melalui transportnya sebagai `control_response`. Kembalikan `null` hanya ketika aplikasi Anda sudah mengirim `control_response` untuk permintaan ini melalui saluran sendiri, mengulangi `requestId`; SDK kemudian melewati penulisan respons ke transportnya. Mengembalikan `null` dalam kasus lain meninggalkan tool call terblokir tanpa batas, karena tidak ada `control_response` yang pernah dikirim dan prompt izin tidak timeout.1119Callback normally resolves request dengan mengembalikan [`PermissionResult`](#permissionresult), yang SDK tulis kembali atas transport-nya sebagai `control_response`. Kembalikan `null` hanya ketika aplikasi Anda sudah mengirim `control_response` untuk request ini atas channel sendiri, echoing `requestId`; SDK kemudian skip menulis response ke transport-nya. Mengembalikan `null` dalam kasus lain apa pun meninggalkan tool call blocked indefinitely, karena tidak ada `control_response` yang pernah dikirim dan permission prompts tidak timeout.

1116 1120 

1117Opsi `requestId` dan nilai pengembalian `null` memerlukan Claude Code v2.1.199 atau lebih baru.1121Opsi `requestId` dan nilai return `null` memerlukan Claude Code v2.1.199 atau lebih baru.

1118 1122 

1119<h3 id="permissionresult">1123<h3 id="permissionresult">

1120 `PermissionResult`1124 `PermissionResult`

1121</h3>1125</h3>

1122 1126 

1123Hasil pemeriksaan izin.1127Hasil dari permission check.

1124 1128 

1125```typescript theme={null}1129```typescript theme={null}

1126type PermissionResult =1130type PermissionResult =


1142 `ToolConfig`1146 `ToolConfig`

1143</h3>1147</h3>

1144 1148 

1145Konfigurasi untuk perilaku tool bawaan.1149Konfigurasi untuk perilaku built-in tool.

1146 1150 

1147```typescript theme={null}1151```typescript theme={null}

1148type ToolConfig = {1152type ToolConfig = {


1152};1156};

1153```1157```

1154 1158 

1155| Field | Tipe | Deskripsi |1159| Field | Jenis | Deskripsi |

1156| :------------------------------ | :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1160| :------------------------------ | :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1157| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | Opt-in ke field `preview` pada opsi [`AskUserQuestion`](/docs/id/agent-sdk/user-input#question-format) dan atur format kontennya. Ketika tidak diatur, Claude tidak memancarkan preview |1161| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | Opts ke dalam bidang `preview` pada [`AskUserQuestion`](/docs/id/agent-sdk/user-input#question-format) options dan menetapkan content format-nya. Ketika unset, Claude tidak emit previews |

1158 1162 

1159<h3 id="mcpserverconfig">1163<h3 id="mcpserverconfig">

1160 `McpServerConfig`1164 `McpServerConfig`

1161</h3>1165</h3>

1162 1166 

1163Konfigurasi untuk server MCP.1167Konfigurasi untuk MCP servers.

1164 1168 

1165```typescript theme={null}1169```typescript theme={null}

1166type McpServerConfig =1170type McpServerConfig =


1236 `SdkPluginConfig`1240 `SdkPluginConfig`

1237</h3>1241</h3>

1238 1242 

1239Konfigurasi untuk memuat plugin di SDK.1243Konfigurasi untuk memuat plugins dalam SDK.

1240 1244 

1241```typescript theme={null}1245```typescript theme={null}

1242type SdkPluginConfig = {1246type SdkPluginConfig = {


1246};1250};

1247```1251```

1248 1252 

1249| Field | Tipe | Deskripsi |1253| Field | Jenis | Deskripsi |

1250| :----------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1254| :----------------- | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1251| `type` | `'local'` | Harus `'local'` (hanya plugin lokal yang saat ini didukung) |1255| `type` | `'local'` | Harus `'local'` (hanya local plugins yang saat ini didukung) |

1252| `path` | `string` | Jalur absolut atau relatif ke direktori plugin |1256| `path` | `string` | Absolute atau relative path ke plugin directory |

1253| `skipMcpDiscovery` | `boolean` | Ketika `true`, SDK memuat skills, hooks, agen, dan perintah dari plugin ini tetapi tidak membaca `.mcp.json` atau manifest `mcpServers` miliknya. Atur ini ketika aplikasi Anda memiliki koneksi MCP plugin. |1257| `skipMcpDiscovery` | `boolean` | Ketika `true`, SDK memuat skills, hooks, agents, dan commands dari plugin ini tetapi tidak membaca `.mcp.json` atau manifest `mcpServers`-nya. Atur ini ketika aplikasi Anda memiliki plugin's MCP connections. |

1254 1258 

1255**Contoh:**1259**Contoh:**

1256 1260 


1261];1265];

1262```1266```

1263 1267 

1264Untuk informasi lengkap tentang membuat dan menggunakan plugin, lihat [Plugins](/docs/id/agent-sdk/plugins).1268Untuk informasi lengkap tentang membuat dan menggunakan plugins, lihat [Plugins](/docs/id/agent-sdk/plugins).

1265 1269 

1266<h2 id="message-types">1270<h2 id="message-types">

1267 Tipe Pesan1271 Jenis Pesan

1268</h2>1272</h2>

1269 1273 

1270<h3 id="sdkmessage">1274<h3 id="sdkmessage">

1271 `SDKMessage`1275 `SDKMessage`

1272</h3>1276</h3>

1273 1277 

1274Tipe union dari semua pesan yang mungkin dikembalikan oleh query.1278Tipe union dari semua pesan yang mungkin dikembalikan oleh kueri.

1275 1279 

1276```typescript theme={null}1280```typescript theme={null}

1277type SDKMessage =1281type SDKMessage =


1335};1339};

1336```1340```

1337 1341 

1338Field `message` adalah [`BetaMessage`](https://platform.claude.com/docs/id/api/messages/create) dari Anthropic SDK. Ini mencakup field seperti `id`, `content`, `model`, `stop_reason`, dan `usage`.1342Bidang `message` adalah [`BetaMessage`](https://platform.claude.com/docs/en/api/messages/create) dari Anthropic SDK. Ini mencakup bidang seperti `id`, `content`, `model`, `stop_reason`, dan `usage`.

1339 1343 

1340`SDKAssistantMessageError` adalah salah satu dari: `'authentication_failed'`, `'oauth_org_not_allowed'`, `'account_on_hold'`, `'billing_error'`, `'rate_limit'`, `'overloaded'`, `'invalid_request'`, `'model_not_found'`, `'server_error'`, `'max_output_tokens'`, `'cloud_credential_error'`, atau `'unknown'`. Empat dari nilai-nilai ini berarti lebih dari yang dikatakan nama mereka:1344`SDKAssistantMessageError` adalah salah satu dari: `'authentication_failed'`, `'oauth_org_not_allowed'`, `'account_on_hold'`, `'billing_error'`, `'rate_limit'`, `'overloaded'`, `'invalid_request'`, `'model_not_found'`, `'server_error'`, `'max_output_tokens'`, `'cloud_credential_error'`, atau `'unknown'`. Empat dari nilai-nilai ini berarti lebih dari yang nama mereka katakan:

1341 1345 

1342* `'model_not_found'`: model yang dipilih tidak ada atau tidak tersedia untuk akun atau deployment Anda1346* `'model_not_found'`: model yang dipilih tidak ada atau tidak tersedia untuk akun atau deployment Anda

1343* `'overloaded'`: API mengembalikan 529 karena server mencapai kapasitas, berbeda dengan `'rate_limit'`, yang merupakan 429 terhadap kuota Anda1347* `'overloaded'`: API mengembalikan 529 karena server mencapai kapasitas, berbeda dengan `'rate_limit'`, yang merupakan 429 terhadap kuota Anda

1344* `'account_on_hold'`: [akun Anda sedang ditahan](/docs/id/errors#your-account-is-on-hold)1348* `'account_on_hold'`: [akun Anda sedang ditahan](/docs/id/errors#your-account-is-on-hold)

1345* `'cloud_credential_error'`: Claude Code tidak dapat memperoleh kredensial AWS atau Google Cloud yang dapat digunakan di mesin tempat ia berjalan, sehingga tidak ada permintaan yang mencapai penyedia cloud. Penyebab umum adalah sign-in cloud yang kedaluwarsa atau tidak pernah selesai di mesin itu, meskipun layanan kredensial yang singkat tidak dapat dijangkau melaporkan nilai yang sama. Lihat [Could not load AWS or Google Cloud credentials](/docs/id/errors#could-not-load-aws-or-google-cloud-credentials). Memerlukan TypeScript Agent SDK v0.3.267 atau lebih baru, yang menggabungkan Claude Code v2.1.2671349* `'cloud_credential_error'`: Claude Code tidak dapat memperoleh kredensial AWS atau Google Cloud yang dapat digunakan di mesin tempat ia berjalan, sehingga tidak ada permintaan yang mencapai penyedia cloud. Penyebab umum adalah masuk cloud yang kedaluwarsa atau tidak pernah selesai di mesin itu, meskipun layanan kredensial yang singkat tidak dapat dijangkau melaporkan nilai yang sama. Lihat [Tidak dapat memuat kredensial AWS atau Google Cloud](/docs/id/errors#could-not-load-aws-or-google-cloud-credentials). Memerlukan TypeScript Agent SDK v0.3.267 atau lebih baru, yang menggabungkan Claude Code v2.1.267

1346 1350 

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

1348 1352 

1349Claude Code menetapkan `user_message_uuid` dan `user_message_uuids` pada pesan asisten pertama putaran, di bawah kondisi dalam [`user_message_uuid`](#user_message_uuid).1353Claude Code menetapkan `user_message_uuid` dan `user_message_uuids` pada pesan asisten pertama giliran, di bawah kondisi dalam [`user_message_uuid`](#user_message_uuid).

1350 1354 

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

1352 1356 

1353`context_usage` adalah salinan terstruktur dari laporan `/context`, diketik sebagai [`SDKContextUsage`](#sdkcontextusage), dan memerlukan Agent SDK v0.3.232 atau lebih baru. Ketika Anda mengirim `/context` sebagai prompt, Claude Code mengirimkan laporan sebagai pesan asisten yang `message.content` menyimpan tabel markdown, dan melampirkan `context_usage` ke pesan yang sama. Claude Code tidak menetapkan field pada pesan asisten lain apa pun, dan versi sebelumnya mengirimkan tabel `/context` tanpanya, jadi baca rincian dari field ketika ada dan kembali ke teks markdown ketika tidak.1357`context_usage` adalah salinan terstruktur dari laporan `/context`, diketik sebagai [`SDKContextUsage`](#sdkcontextusage), dan memerlukan Agent SDK v0.3.232 atau lebih baru. Ketika Anda mengirim `/context` sebagai prompt, Claude Code mengirimkan laporan sebagai pesan asisten yang `message.content` menyimpan tabel markdown, dan melampirkan `context_usage` ke pesan yang sama. Claude Code tidak menetapkan bidang pada pesan asisten lain mana pun, dan versi sebelumnya mengirimkan tabel `/context` tanpanya, jadi baca rincian dari bidang ketika ada dan kembali ke teks markdown ketika tidak.

1354 1358 

1355<h3 id="sdkusermessage">1359<h3 id="sdkusermessage">

1356 `SDKUserMessage`1360 `SDKUserMessage`


1372};1376};

1373```1377```

1374 1378 

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

1376 1380 

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

1378 1382 

1379Untuk tool `Agent`, `tool_use_result` adalah [`AgentOutput`](#agent-2). Pada hasil `completed`, `content` menyimpan laporan subagent tanpa ID agen dan trailer penggunaan yang Claude Code tambahkan ke teks `tool_result`, jadi render dari `tool_use_result` daripada mem-parse teks itu.1383Untuk alat `Agent`, `tool_use_result` adalah [`AgentOutput`](#agent-2). Pada hasil `completed`, `content` menyimpan laporan subagen tanpa ID agen dan trailer penggunaan yang Claude Code tambahkan ke teks `tool_result`, jadi render dari `tool_use_result` daripada mengurai teks itu.

1380 1384 

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

1382 1386 

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

1384 `SDKUserMessageReplay`1388 `SDKUserMessageReplay`


1400};1404};

1401```1405```

1402 1406 

1403Putaran pengguna yang disuntikkan dari luar sesi, yang [`origin`](#sdkmessageorigin)-nya adalah `peer` atau `channel`, mencapai aliran sebagai replay apakah itu disampaikan selama putaran aktif atau memulai putaran baru saat sesi idle. Sebelum v2.1.207, putaran yang disuntikkan disampaikan saat sesi idle tidak menghasilkan pesan pada aliran dan hanya muncul ketika Anda membaca ulang transkrip.1407Giliran pengguna yang disuntikkan dari luar sesi, yang [`origin`](#sdkmessageorigin) jenisnya adalah `peer` atau `channel`, mencapai aliran sebagai pemutaran ulang apakah itu disampaikan selama giliran aktif atau memulai giliran baru saat sesi menganggur. Sebelum v2.1.207, giliran yang disuntikkan disampaikan saat sesi menganggur tidak menghasilkan pesan pada aliran dan hanya muncul ketika Anda membaca ulang transkrip.

1404 1408 

1405<h3 id="sdkresultmessage">1409<h3 id="sdkresultmessage">

1406 `SDKResultMessage`1410 `SDKResultMessage`


1463 permission_denials: SDKPermissionDenial[];1467 permission_denials: SDKPermissionDenial[];

1464 queued_turn_count?: number;1468 queued_turn_count?: number;

1465 errors: string[];1469 errors: string[];

1470 startup_failure_reason?: SDKStartupFailureReason;

1466 user_message_uuid?: string;1471 user_message_uuid?: string;

1467 user_message_uuids?: string[];1472 user_message_uuids?: string[];

1468 terminal_reason?: TerminalReason;1473 terminal_reason?: TerminalReason;


1472 };1477 };

1473```1478```

1474 1479 

1475Beberapa field pada hasil membawa detail diagnostik di luar `subtype`:1480Beberapa bidang pada hasil membawa detail diagnostik di luar `subtype`:

1476 1481 

1477* `api_error_status`: kode status HTTP dari kesalahan API yang mengakhiri percakapan. Tidak ada atau `null` ketika putaran berakhir tanpa kesalahan API.1482* `api_error_status`: kode status HTTP dari kesalahan API yang mengakhiri percakapan. Tidak ada atau `null` ketika giliran berakhir tanpa kesalahan API.

1478* `ttft_ms`: waktu ke token pertama dalam milidetik, diukur ketika pesan asisten pertama yang lengkap tiba. Hadir hanya pada cabang kesuksesan.1483* `ttft_ms`: waktu ke token pertama dalam milidetik, diukur ketika pesan asisten lengkap pertama tiba. Hadir hanya pada lengan kesuksesan.

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

1480* `user_message_uuid`: `uuid` dari [`SDKUserMessage`](#sdkusermessage) yang dijawab putaran ini. Lihat [`user_message_uuid`](#user_message_uuid) untuk hasil mana yang membawanya.1485* `user_message_uuid`: `uuid` dari pesan yang Anda kirim yang dijawab giliran ini. Lihat [`user_message_uuid`](#user_message_uuid) untuk hasil mana yang membawanya.

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

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

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

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

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

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

1487* `total_cost_usd`: biaya perkiraan kumulatif dalam USD untuk panggilan `query()` ini, mencakup panggilan yang sama dengan `modelUsage` dan reset pada titik yang sama. Ini adalah perkiraan, bukan pernyataan penagihan. Lihat [Track cost and usage](/docs/id/agent-sdk/cost-tracking) untuk peringatan akurasi.1492* `total_cost_usd`: biaya perkiraan kumulatif dalam USD untuk panggilan `query()` ini, mencakup panggilan yang sama dengan `modelUsage` dan pengaturan ulang pada titik yang sama. Ini adalah perkiraan, bukan pernyataan penagihan. Lihat [Lacak biaya dan penggunaan](/docs/id/agent-sdk/cost-tracking) untuk peringatan akurasi.

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

1494*

1495 

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

1497 

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

1490* `fast_mode_state`: salah satu dari `"on"`, `"off"`, atau `"cooldown"`.1499* `fast_mode_state`: salah satu dari `"on"`, `"off"`, atau `"cooldown"`.

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


1501| `unknown` | Claude Code tidak dapat menentukan ketersediaan |1510| `unknown` | Claude Code tidak dapat menentukan ketersediaan |

1502| `not_first_party` | Sesi menggunakan penyedia selain Anthropic API |1511| `not_first_party` | Sesi menggunakan penyedia selain Anthropic API |

1503| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/id/env-vars) diatur |1512| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/id/env-vars) diatur |

1504| `model_not_allowed` | Model Opus fast mode tidak ada dalam daftar allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) organisasi |1513| `model_not_allowed` | Model Opus fast mode tidak ada dalam daftar izin [`availableModels`](/docs/id/model-config#restrict-model-selection) organisasi |

1505| `sdk_opt_in_required` | Sesi belum memilih fast mode: teruskan `fastMode: true` dalam opsi [`settings`](#options) atau melalui [`applyFlagSettings()`](#applyflagsettings) |1514| `sdk_opt_in_required` | Sesi belum memilih fast mode: teruskan `fastMode: true` dalam opsi [`settings`](#options) atau melalui [`applyFlagSettings()`](#applyflagsettings) |

1506| `pending` | Pemeriksaan ketersediaan belum selesai |1515| `pending` | Pemeriksaan ketersediaan belum selesai |

1507 1516 

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

1509 1518 

1510Field `origin` meneruskan [`SDKMessageOrigin`](#sdkmessageorigin) dari pesan pengguna yang memicu hasil ini. Ketika SDK menyuntikkan putaran lanjutan sintetis, seperti untuk tugas latar belakang yang selesai, `SDKResultMessage` yang dihasilkan membawa `origin: { kind: "task-notification" }`. Rutinitas yang pemicunya dipecat dan pesan yang diverifikasi server dari sesi lain Anda tiba dengan jenis ini juga, masing-masing dengan `subkind` yang dijelaskan dalam [Task-notification subkinds](#task-notification-subkinds). Periksa `kind` untuk membedakan hasil yang menjawab prompt Anda dari lanjutan yang disuntikkan sebelum merutekan atau menekan mereka.1519Bidang `origin` meneruskan [`SDKMessageOrigin`](#sdkmessageorigin) dari pesan pengguna yang memicu hasil ini. Ketika SDK menyuntikkan giliran tindak lanjut sintetis, seperti untuk tugas yang selesai, `SDKResultMessage` yang dihasilkan membawa `origin: { kind: "task-notification" }`. Rutinitas yang pemicunya dipecat dan pesan yang diverifikasi server dari sesi lain Anda tiba dengan jenis ini juga, masing-masing dengan `subkind` yang dijelaskan dalam [Subkind notifikasi tugas](#task-notification-subkinds). Periksa `kind` untuk membedakan hasil yang menjawab prompt Anda dari tindak lanjut yang disuntikkan sebelum merutekan atau menekan mereka.

1511 1520 

1512Field ini tidak ada untuk hasil yang dipancarkan sebelum putaran pengguna apa pun, seperti kesalahan startup.1521Bidang tidak ada untuk hasil yang dipancarkan sebelum giliran pengguna apa pun, seperti kesalahan startup.

1513 1522 

1514Ketika hook `PreToolUse` mengembalikan `permissionDecision: "defer"`, hasil memiliki `stop_reason: "tool_deferred"` dan `deferred_tool_use` membawa `id`, `name`, dan `input` tool yang tertunda. Baca field ini untuk menampilkan permintaan di UI Anda sendiri, kemudian lanjutkan dengan `session_id` yang sama untuk melanjutkan. Lihat [Defer a tool call for later](/docs/id/hooks#defer-a-tool-call-for-later) untuk perjalanan putaran lengkap.1523Ketika hook `PreToolUse` mengembalikan `permissionDecision: "defer"`, hasil memiliki `stop_reason: "tool_deferred"` dan `deferred_tool_use` membawa `id`, `name`, dan `input` alat yang tertunda. Baca bidang ini untuk menampilkan permintaan di UI Anda sendiri, kemudian lanjutkan dengan `session_id` yang sama untuk melanjutkan. Lihat [Tunda panggilan alat untuk nanti](/docs/id/hooks#defer-a-tool-call-for-later) untuk perjalanan putaran penuh.

1515 1524 

1516<h4 id="user_message_uuid">1525<h4 id="user_message_uuid">

1517 `user_message_uuid`1526 `user_message_uuid`

1518</h4>1527</h4>

1519 1528 

1520`uuid` dari [`SDKUserMessage`](#sdkusermessage) yang dijawab putaran ini, diulang sehingga Anda dapat mencocokkan balasan Claude Code dengan pesan yang Anda kirim. Claude Code mengulangi `uuid` hanya jika Anda menetapkan satu pada pesan. Field ini opsional pada `SDKUserMessage`, dan prompt string yang dilewatkan ke `query()` tidak membawa apa pun.1529`uuid` dari [`SDKUserMessage`](#sdkusermessage) yang dijawab giliran, diulang sehingga Anda dapat mencocokkan balasan Claude Code dengan pesan yang Anda kirim. Claude Code mengulangi `uuid` hanya jika Anda menetapkan satu pada pesan. Bidang ini opsional pada `SDKUserMessage`, dan prompt string yang dilewatkan ke `query()` tidak membawa apa pun.

1521 1530 

1522Pesan mana yang dijawab putaran tergantung pada bagaimana putaran dimulai:1531Pesan mana yang dijawab giliran tergantung pada bagaimana giliran dimulai:

1523 1532 

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

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

1526* **Prompt yang Claude Code hasilkan sendiri**, seperti putaran yang melanjutkan pekerjaan terputus setelah sesi dimulai ulang: putaran tidak menjawab pesan Anda pada awalnya dan frame-nya tidak membawa echo. Jika Claude Code mengambil pesan reguler Anda di antara panggilan tool, putaran menjawab pesan itu dari saat itu. Echo pengambilan memerlukan Agent SDK v0.3.265 atau lebih baru; versi sebelumnya tidak mengulangi apa pun pada putaran ini.1535* **Prompt yang dihasilkan Claude Code sendiri**, seperti giliran yang melanjutkan pekerjaan terputus setelah sesi dimulai ulang: giliran tidak menjawab pesan Anda pada awalnya dan frame-nya tidak membawa echo. Jika Claude Code mengambil pesan reguler Anda di antara panggilan alat, giliran menjawab pesan itu dari saat itu. Echo pengambilan memerlukan Agent SDK v0.3.265 atau lebih baru; versi sebelumnya tidak mengulangi apa pun pada giliran ini.

1527 1536 

1528Claude Code mengulangi `uuid` pesan yang dijawab pada tiga jenis frame:1537Claude Code mengulangi `uuid` pesan yang dijawab pada tiga jenis frame:

1529 1538 

1530* **Hasil**: setiap hasil putaran yang menjawab pesan yang Anda kirim. Setiap hasil seperti itu membawanya pada Agent SDK v0.3.265 atau lebih baru. Sebelum v0.3.265, hasil kesuksesan putaran yang dimulai pesan reguler tidak membawanya ketika putaran tidak mengirim permintaan API atau berakhir dengan panggilan tool yang ditunda. Sebelum v0.3.246, hasil kesalahan juga tidak membawanya, dan sebelum v0.3.216 setiap hasil tidak membawanya.1539* **Hasil**: setiap hasil giliran yang menjawab pesan yang Anda kirim. Setiap hasil seperti itu membawanya pada Agent SDK v0.3.265 atau lebih baru. Sebelum v0.3.265, hasil kesuksesan giliran yang dimulai pesan reguler tidak membawanya ketika giliran tidak mengirim permintaan API atau berakhir dengan panggilan alat yang ditunda. Sebelum v0.3.246, hasil kesalahan juga tidak membawanya, dan sebelum v0.3.216 setiap hasil tidak.

1531* **Balasan pertama putaran**: [pesan asisten](#sdkassistantmessage) pertama, atau dengan `includePartialMessages` [event aliran](#sdkpartialassistantmessage) pertama yang `event.type`-nya bukan `ping`, sehingga Anda dapat mengikat balasan sebelum hasil tiba. Ketika putaran tidak streaming apa pun, Claude Code menetapkannya pada pesan asisten pertama sebagai gantinya. Echo balasan pertama memerlukan Agent SDK v0.3.246 atau lebih baru. Ketika pesan yang dijawab putaran berubah di tengah putaran, balasan pertama setelah perubahan membawa field juga, pada Agent SDK v0.3.265 atau lebih baru; versi sebelumnya menetapkannya pada satu frame balasan per putaran.1540* **Balasan pertama giliran**: [pesan asisten](#sdkassistantmessage) pertama, atau dengan `includePartialMessages` [acara aliran](#sdkpartialassistantmessage) pertama yang `event.type` bukan `ping`, jadi Anda dapat mengikat balasan sebelum hasil tiba. Ketika giliran tidak mengalirkan apa pun, Claude Code menetapkannya pada pesan asisten pertama. Echo balasan pertama memerlukan Agent SDK v0.3.246 atau lebih baru. Ketika pesan yang dijawab giliran berubah di tengah giliran, balasan pertama setelah perubahan membawa bidang juga, pada Agent SDK v0.3.265 atau lebih baru; versi sebelumnya menetapkannya pada satu frame balasan per giliran.

1532* **Setiap frame [`thinking_tokens`](#sdkthinkingtokensmessage) putaran**: sehingga Anda dapat mengatribusikan kemajuan pemikiran ke pesan yang Anda kirim tanpa menunggu balasan pertama putaran. Memerlukan Agent SDK v0.3.260 atau lebih baru.1541* **Setiap frame [`thinking_tokens`](#sdkthinkingtokensmessage) giliran**: jadi Anda dapat mengatribusikan kemajuan pemikiran ke pesan yang Anda kirim tanpa menunggu balasan pertama giliran. Memerlukan Agent SDK v0.3.260 atau lebih baru.

1533 1542 

1534Claude Code menghilangkan field dalam kasus-kasus ini:1543Claude Code menghilangkan bidang dalam kasus-kasus ini:

1535 1544 

1536* Frame balasan selain balasan pertama itu1545* Frame balasan selain balasan pertama itu

1537* Frame subagent1546* Frame subagen

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

1539* Hasil yang tidak menjawab pesan apa pun yang Anda kirim, seperti hasil yang dinolkan setelah proses worker yang jatuh1548* Hasil yang tidak menjawab pesan apa pun yang Anda kirim, seperti hasil yang dinolkan setelah proses pekerja yang jatuh

1540 1549 

1541<h4 id="user_message_uuids">1550<h4 id="user_message_uuids">

1542 `user_message_uuids`1551 `user_message_uuids`

1543</h4>1552</h4>

1544 1553 

1545`uuid` dari setiap pesan yang Anda kirim yang Claude Code jawab dalam putaran ini. Ketika Anda mengirim beberapa pesan berdekatan, Claude Code dapat menggabungkannya menjadi satu putaran, dan `user_message_uuid` kemudian menamai hanya yang terakhir. Untuk mencocokkan balasan dengan salah satu pesan yang digabungkan, cari `uuid` pesan itu di mana pun dalam daftar ini. Memerlukan Agent SDK v0.3.259 atau lebih baru.1554`uuid` dari setiap pesan yang Anda kirim yang dijawab Claude Code dalam giliran ini. Ketika Anda mengirim beberapa pesan berdekatan, Claude Code dapat menggabungkannya menjadi satu giliran, dan `user_message_uuid` kemudian menamai hanya yang terakhir. Untuk mencocokkan balasan dengan salah satu pesan yang digabungkan, cari `uuid` pesan itu di mana pun dalam daftar ini. Memerlukan Agent SDK v0.3.259 atau lebih baru.

1546 1555 

1547Claude Code menetapkan daftar bersama dengan `user_message_uuid` pada setiap frame balasan yang membawa field itu dan pada hasil. Untuk set lengkap frame yang membawa `user_message_uuid`, dan versi yang masing-masing memerlukan, lihat [`user_message_uuid`](#user_message_uuid). Daftar selalu berisi `user_message_uuid` dan menyimpan paling banyak 64 entri.1556Claude Code menetapkan daftar bersama dengan `user_message_uuid` pada setiap frame balasan yang membawa bidang itu dan pada hasil. Untuk set lengkap frame yang membawa `user_message_uuid`, dan versi yang masing-masing memerlukan, lihat [`user_message_uuid`](#user_message_uuid). Daftar selalu berisi `user_message_uuid` dan menyimpan paling banyak 64 entri.

1548 1557 

1549Ketika Claude Code mengambil pesan reguler yang Anda kirim saat putaran berjalan, ia menambahkan `uuid` pesan itu ke daftar hasil.1558Ketika Claude Code mengambil pesan reguler yang Anda kirim saat giliran berjalan, ia menambahkan `uuid` pesan itu ke daftar hasil.

1550 1559 

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

1552 1561 

1553<h4 id="queued_turn_count">1562<h4 id="queued_turn_count">

1554 `queued_turn_count`1563 `queued_turn_count`


1556 1565 

1557Jumlah pesan yang Anda kirim dengan [`origin: { kind: "human" }`](#sdkmessageorigin) yang masih menunggu dalam antrian perintah ketika Claude Code menghasilkan hasil. Memerlukan Agent SDK v0.3.242 atau lebih baru.1566Jumlah pesan yang Anda kirim dengan [`origin: { kind: "human" }`](#sdkmessageorigin) yang masih menunggu dalam antrian perintah ketika Claude Code menghasilkan hasil. Memerlukan Agent SDK v0.3.242 atau lebih baru.

1558 1567 

1559Apa yang `0` dan field yang tidak ada katakan:1568Apa yang `0` dan bidang yang tidak ada katakan:

1569 

1570* **`0`**: Claude Code tidak menghitung pesan yang Anda kirim tanpa `origin` itu, dan tidak menghitung notifikasi tugas, jadi giliran masih dapat mengikuti.

1571* **Tidak ada**: hasil akhir yang Claude Code pancarkan setelah kerusakan atau kesalahan startup fatal menghilangkan bidang, dan [mungkin membawa total yang dinolkan](/docs/id/agent-sdk/cost-tracking#recover-totals-after-a-session-crash).

1560 1572 

1561* **`0`**: Claude Code tidak menghitung pesan yang Anda kirim tanpa `origin` itu, dan tidak menghitung notifikasi tugas, jadi putaran masih dapat mengikuti.1573<h4 id="startup_failure_reason">

1562* **Tidak ada**: hasil akhir yang Claude Code pancarkan setelah crash atau kesalahan startup fatal menghilangkan field, dan [mungkin membawa total yang dinolkan](/docs/id/agent-sdk/cost-tracking#recover-totals-after-a-session-crash).1574 `startup_failure_reason`

1575</h4>

1576 

1577Mengapa Claude Code menolak untuk memulai, sehingga aplikasi Anda dapat menawarkan perbaikan daripada percobaan ulang. Claude Code menetapkannya pada hasil `error_during_execution` yang ditulis sebelum keluar pada kegagalan startup yang diketahui. Hasil itu membawa total yang dinolkan, dan array `errors` membawa teks yang sama dengan stderr. Bidang tidak ada pada setiap hasil lainnya. Memerlukan Agent SDK v0.3.274 atau lebih baru.

1578 

1579Atur `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` ke `1` dalam [`env`](#options) untuk menerima hasil ini untuk setiap nilai `SDKStartupFailureReason`. Tanpa variabel itu, Claude Code menulis hasil hanya untuk kegagalan ini, dan sisanya berakhir dengan output stderr, keluar non-nol, dan tidak ada pesan hasil:

1580 

1581* Resume yang Claude Code hentikan karena tidak dapat [mengembalikan sesi ke worktree-nya](/docs/id/worktrees#the-session-resumes-outside-its-worktree), dengan `worktree_unverified` atau `worktree_resume_refused`. Bagian itu mengatakan kesalahan mana yang membawa nilai mana.

1582* [`continue`](#options) yang ditolak dari percakapan yang dipegang sesi latar belakang, dengan `session_held_by_background`. Untuk [`resume`](#options) yang ditolak dari percakapan seperti itu, Claude Code menulis hasil hanya ketika variabel diatur.

1583 

1584```typescript theme={null}

1585type SDKStartupFailureReason =

1586 | "org_pin_api_key_conflict"

1587 | "org_verify_failed"

1588 | "org_pin_mismatch"

1589 | "managed_settings_invalid"

1590 | "remote_settings_required_unavailable"

1591 | "gateway_signin_required"

1592 | "gateway_access_denied"

1593 | "proxy_invalid"

1594 | "temp_dir_unusable"

1595 | "cwd_unavailable"

1596 | "shell_tool_missing"

1597 | "session_held_by_background"

1598 | "worktree_resume_refused"

1599 | "worktree_unverified"

1600 | "cli_version_too_old"

1601 | "bypass_root";

1602```

1603 

1604Setiap nilai menamai satu penolakan:

1605 

1606| Nilai | Apa yang menghentikan sesi |

1607| :------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

1610| `org_pin_mismatch` | Masuk milik organisasi yang pin tidak izinkan |

1611| `managed_settings_invalid` | Pengaturan kebijakan terkelola tidak dapat dibaca, atau pin tidak menamai organisasi |

1612| `remote_settings_required_unavailable` | Pengaturan terkelola yang organisasi perlukan tidak dapat dimuat |

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

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

1615| `proxy_invalid` | Pengaturan proxy bukan URL lengkap |

1616| `temp_dir_unusable` | Direktori sementara per-pengguna tidak aman atau tidak dapat dibuat |

1617| `cwd_unavailable` | Direktori kerja dihapus, dipindahkan, atau tidak dapat dibaca |

1618| `shell_tool_missing` | Di Windows, tidak ada alat shell yang tersedia: Git Bash hilang, dan PowerShell hilang atau dimatikan dengan `CLAUDE_CODE_USE_POWERSHELL_TOOL` |

1619| `session_held_by_background` | Percakapan untuk dilanjutkan atau diteruskan berjalan sebagai [sesi latar belakang](/docs/id/agent-view) |

1620| `worktree_resume_refused` | Worktree sesi gagal pemeriksaan keamanannya, atau resume diluncurkan dari dalamnya. `errors` mengatakan apakah menjalankan resume yang sama lagi berlanjut tanpa worktree |

1621| `worktree_unverified` | Worktree sesi tidak dapat diverifikasi sekarang, dan mencoba lagi mungkin berhasil |

1622| `cli_version_too_old` | Versi Claude Code ini di bawah minimum yang Anthropic perlukan |

1623| `bypass_root` | Mode izin bypass diminta saat berjalan sebagai root |

1563 1624 

1564<h3 id="sdksystemmessage">1625<h3 id="sdksystemmessage">

1565 `SDKSystemMessage`1626 `SDKSystemMessage`


1582 mcp_servers: {1643 mcp_servers: {

1583 name: string;1644 name: string;

1584 status: string;1645 status: string;

1646 source?: string;

1585 }[];1647 }[];

1586 model: string;1648 model: string;

1587 permissionMode: PermissionMode;1649 permissionMode: PermissionMode;


1597};1659};

1598```1660```

1599 1661 

1600`fast_mode_state` melaporkan status [fast mode](/docs/id/fast-mode) sesi. Ketika sesuatu memblokir fast mode, `fast_mode_disabled_reason` menamai pemeriksaan yang memblokirnya; field memerlukan Claude Code v2.1.219 atau lebih baru. Untuk kode alasan dan artinya, lihat [`fast_mode_disabled_reason`](#sdkresultmessage) pada pesan hasil.1662`fast_mode_state` melaporkan status [fast mode](/docs/id/fast-mode) sesi. Ketika sesuatu memblokir fast mode, `fast_mode_disabled_reason` menamai pemeriksaan yang memblokirnya; bidang memerlukan Claude Code v2.1.219 atau lebih baru. Untuk kode alasan dan artinya, lihat [`fast_mode_disabled_reason`](#sdkresultmessage) pada pesan hasil.

1663 

1664`terminal_slash_commands` menamai entri dalam `slash_commands` yang antarmukanya terikat ke terminal lokal, seperti `exit`. Anda dapat mengirimnya seperti entri lain dalam `slash_commands`; bidang ada sehingga klien jarak jauh atau mobile dapat menyembunyikannya dari menu perintah. Bidang ada hanya ketika tidak kosong, dan memerlukan Agent SDK v0.3.229 atau lebih baru.

1601 1665 

1602`terminal_slash_commands` menamai entri dalam `slash_commands` yang antarmukanya terikat ke terminal lokal, seperti `exit`. Anda dapat mengirimnya seperti entri lain dalam `slash_commands`; field ada sehingga klien jarak jauh atau mobile dapat menyembunyikannya dari menu perintah. Field ada hanya ketika tidak kosong, dan memerlukan Agent SDK v0.3.229 atau lebih baru.1666*

1667 

1668`source` pada setiap entri `mcp_servers`: dari mana definisi server berasal, dengan nilai yang sama seperti [`McpServerStatus`](#mcpserverstatus) `source`. Memerlukan Agent SDK v0.3.274 atau lebih baru.

1603 1669 

1604*1670*

1605 1671 

1606`effort`: [tingkat upaya](/docs/id/model-config#adjust-effort-level) yang Claude Code kirim pada permintaan sesi berikutnya, atau `null` ketika tidak mengirim apa pun. Claude Code menetapkan field hanya pada pesan init yang dikirimnya ke klien [Remote Control](/docs/id/remote-control), dan menghilangkannya dari pesan init yang dibaca aplikasi Anda. Memerlukan Agent SDK v0.3.234 atau lebih baru.1672`effort`: [tingkat upaya](/docs/id/model-config#adjust-effort-level) yang Claude Code kirim pada permintaan sesi berikutnya, atau `null` ketika tidak mengirim apa pun. Claude Code menetapkan bidang hanya pada pesan init yang dikirimnya ke klien [Remote Control](/docs/id/remote-control), dan menghilangkannya dari pesan init yang dibaca aplikasi Anda. Memerlukan Agent SDK v0.3.234 atau lebih baru.

1607 1673 

1608Array `capabilities` menamai perilaku protokol yang diimplementasikan CLI ini, sehingga Anda dapat mendeteksi fitur daripada membandingkan string `claude_code_version`. Ini adalah set terbuka: abaikan nilai yang tidak Anda kenali, dan periksa kemampuan spesifik yang perilakunya Anda andalkan. Field memerlukan Claude Code v2.1.205 atau lebih baru dan tidak ada pada CLI yang lebih awal.1674Array `capabilities` menamai perilaku protokol yang diimplementasikan CLI ini, jadi Anda dapat mendeteksi fitur daripada membandingkan string `claude_code_version`. Ini adalah set terbuka: abaikan nilai yang tidak Anda kenal, dan periksa kemampuan spesifik yang perilakunya Anda andalkan. Bidang memerlukan Claude Code v2.1.205 atau lebih baru dan tidak ada pada CLI sebelumnya.

1609 1675 

1610| Kemampuan | Arti |1676| Kemampuan | Arti |

1611| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1677| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

1614 1680 

1615<h3 id="sdkpartialassistantmessage">1681<h3 id="sdkpartialassistantmessage">

1616 `SDKPartialAssistantMessage`1682 `SDKPartialAssistantMessage`

1617</h3>1683</h3>

1618 1684 

1619Pesan parsial streaming (hanya ketika `includePartialMessages` adalah true). Field `parent_tool_use_id` selalu `null`: event aliran dipancarkan untuk sesi utama saja. Untuk atribusi subagent, gunakan pesan lengkap, yang membawa `parent_tool_use_id`, atau aktifkan [`forwardSubagentText`](#options) untuk menerima teks dan pemikiran subagent sebagai pesan lengkap.1685Pesan parsial streaming (hanya ketika `includePartialMessages` adalah true). Bidang `parent_tool_use_id` selalu `null`: acara aliran dipancarkan untuk sesi utama saja. Untuk atribusi subagen, gunakan pesan lengkap, yang membawa `parent_tool_use_id`, atau aktifkan [`forwardSubagentText`](#options) untuk menerima teks dan pemikiran subagen sebagai pesan lengkap.

1620 1686 

1621```typescript theme={null}1687```typescript theme={null}

1622type SDKPartialAssistantMessage = {1688type SDKPartialAssistantMessage = {


1625 parent_tool_use_id: string | null;1691 parent_tool_use_id: string | null;

1626 uuid: UUID;1692 uuid: UUID;

1627 session_id: string;1693 session_id: string;

1628 ttft_ms?: number; // Waktu ke token pertama dalam ms, hadir hanya pada event message_start1694 ttft_ms?: number; // Waktu ke token pertama dalam ms, hadir hanya pada acara message_start

1629 user_message_uuid?: string;1695 user_message_uuid?: string;

1630 user_message_uuids?: string[];1696 user_message_uuids?: string[];

1631};1697};

1632```1698```

1633 1699 

1634Claude Code menetapkan `user_message_uuid` dan `user_message_uuids` pada event aliran non-ping pertama putaran, dan lagi ketika pesan yang dijawab putaran berubah, di bawah kondisi dalam [`user_message_uuid`](#user_message_uuid).1700Claude Code menetapkan `user_message_uuid` dan `user_message_uuids` pada acara aliran non-ping pertama giliran, dan lagi ketika pesan yang dijawab giliran berubah, di bawah kondisi dalam [`user_message_uuid`](#user_message_uuid).

1635 1701 

1636<h3 id="sdkcompactboundarymessage">1702<h3 id="sdkcompactboundarymessage">

1637 `SDKCompactBoundaryMessage`1703 `SDKCompactBoundaryMessage`


1656 `SDKInformationalMessage`1722 `SDKInformationalMessage`

1657</h3>1723</h3>

1658 1724 

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

1660 1726 

1661```typescript theme={null}1727```typescript theme={null}

1662type SDKInformationalMessage = {1728type SDKInformationalMessage = {


1675 `SDKWorkerShuttingDownMessage`1741 `SDKWorkerShuttingDownMessage`

1676</h3>1742</h3>

1677 1743 

1678Dipancarkan pada pembongkaran worker yang elegan sehingga klien jarak jauh dapat menunjukkan mengapa worker hilang daripada menunggu timeout heartbeat. `reason` adalah string snake\_case pendek yang ditetapkan oleh CLI host, seperti `"host_exit"` atau `"remote_control_disabled"`. Bertindak atas ini hanya ketika streaming langsung. Sesi yang dilanjutkan memutar ulang instance masa lalu dari pesan ini, jadi abaikan dalam kasus itu.1744Dipancarkan pada pembongkaran pekerja yang anggun sehingga klien jarak jauh dapat menunjukkan mengapa pekerja keluar daripada menunggu timeout detak jantung. `reason` adalah string snake\_case pendek yang ditetapkan oleh CLI host, seperti `"host_exit"` atau `"remote_control_disabled"`. Bertindak atas ini hanya ketika streaming langsung. Sesi yang dilanjutkan memutar ulang instans masa lalu dari pesan ini, jadi abaikan dalam kasus itu.

1679 1745 

1680```typescript theme={null}1746```typescript theme={null}

1681type SDKWorkerShuttingDownMessage = {1747type SDKWorkerShuttingDownMessage = {


1691 `SDKPluginInstallMessage`1757 `SDKPluginInstallMessage`

1692</h3>1758</h3>

1693 1759 

1694Event kemajuan instalasi plugin. Dipancarkan ketika [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/id/env-vars) diatur, sehingga aplikasi Agent SDK Anda dapat melacak instalasi plugin marketplace sebelum putaran pertama. Status `started` dan `completed` mengurung instalasi keseluruhan. Status `installed` dan `failed` melaporkan marketplace individual dan menyertakan `name`.1760Acara kemajuan instalasi plugin. Dipancarkan ketika [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/id/env-vars) diatur, jadi aplikasi Agent SDK Anda dapat melacak instalasi plugin marketplace sebelum giliran pertama. Status `started` dan `completed` mengurung instalasi keseluruhan. Status `installed` dan `failed` melaporkan marketplace individual dan menyertakan `name`.

1695 1761 

1696```typescript theme={null}1762```typescript theme={null}

1697type SDKPluginInstallMessage = {1763type SDKPluginInstallMessage = {


1709 `SDKPermissionDeniedMessage`1775 `SDKPermissionDeniedMessage`

1710</h3>1776</h3>

1711 1777 

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

1713 1779 

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

1715*1781*

1716 1782 

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

1718 1784 

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

1720*1786*

1721 1787 

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

1723 1789 

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

1725 1791 

1726```typescript theme={null}1792```typescript theme={null}

1727type SDKPermissionDeniedMessage = {1793type SDKPermissionDeniedMessage = {


1738};1804};

1739```1805```

1740 1806 

1741| Field | Tipe | Deskripsi |1807| Bidang | Tipe | Deskripsi |

1742| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- |1808| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- |

1743| `tool_name` | `string` | Nama tool yang ditolak |1809| `tool_name` | `string` | Nama alat yang ditolak |

1744| `tool_use_id` | `string` | ID dari blok `tool_use` yang dijawab penolakan ini |1810| `tool_use_id` | `string` | ID blok `tool_use` yang dijawab penolakan ini |

1745| `agent_id` | `string` | ID subagent ketika panggilan yang ditolak berasal dari dalam subagent. Mencerminkan field pada `can_use_tool` untuk perutean sisi host |1811| `agent_id` | `string` | ID subagen ketika panggilan yang ditolak berasal dari dalam subagen. Mencerminkan bidang pada `can_use_tool` untuk perutean sisi host |

1746| `decision_reason_type` | `string` | Diskriminator untuk komponen yang memutuskan, seperti `"rule"`, `"mode"`, `"classifier"`, atau `"asyncAgent"` |1812| `decision_reason_type` | `string` | Diskriminator untuk komponen yang memutuskan, seperti `"rule"`, `"mode"`, `"classifier"`, atau `"asyncAgent"` |

1747| `decision_reason` | `string` | Alasan yang dapat dibaca manusia dari komponen yang memutuskan, ketika tersedia |1813| `decision_reason` | `string` | Alasan yang dapat dibaca manusia dari komponen yang memutuskan, ketika tersedia |

1748| `message` | `string` | Pesan penolakan yang dikembalikan ke model dalam `tool_result` |1814| `message` | `string` | Pesan penolakan yang dikembalikan ke model dalam `tool_result` |


1751 `SDKPermissionDenial`1817 `SDKPermissionDenial`

1752</h3>1818</h3>

1753 1819 

1754Informasi tentang penggunaan tool yang ditolak.1820Informasi tentang penggunaan alat yang ditolak.

1755 1821 

1756```typescript theme={null}1822```typescript theme={null}

1757type SDKPermissionDenial = {1823type SDKPermissionDenial = {


1765 `SDKContextUsage`1831 `SDKContextUsage`

1766</h3>1832</h3>

1767 1833 

1768Bentuk terstruktur dari laporan `/context`, dibawa sebagai `context_usage` pada [`SDKAssistantMessage`](#sdkassistantmessage) yang mengirimkan hasil `/context`. Agent SDK v0.3.232 dan lebih baru mengekspor tipe. Tidak seperti [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse), ia hanya membawa data yang diperlukan untuk merender rincian penggunaan, tanpa field tampilan seperti `color` dan `gridRows`.1834Bentuk terstruktur dari laporan `/context`, dibawa sebagai `context_usage` pada [`SDKAssistantMessage`](#sdkassistantmessage) yang mengirimkan hasil `/context`. Agent SDK v0.3.232 dan lebih baru mengekspor tipe. Tidak seperti [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse), ia hanya membawa data yang diperlukan untuk merender rincian penggunaan, tanpa bidang tampilan seperti `color` dan `gridRows`.

1769 1835 

1770```typescript theme={null}1836```typescript theme={null}

1771type SDKContextUsage = {1837type SDKContextUsage = {


1802};1868};

1803```1869```

1804 1870 

1805Tabel mencantumkan apa yang Claude Code masukkan dalam setiap field. Field dari `model` melalui `over_limit` mendeskripsikan sesi secara keseluruhan, dan field koleksi mengatribusikan token ke item individual.1871Tabel mencantumkan apa yang Claude Code masukkan dalam setiap bidang. Bidang dari `model` melalui `over_limit` menggambarkan sesi secara keseluruhan, dan bidang koleksi mengatribusikan token ke item individual.

1806 1872 

1807| Field | Tipe | Deskripsi |1873| Bidang | Tipe | Deskripsi |

1808| ---------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1874| ---------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1809| `model` | `string` | Model loop utama yang Claude Code hitung penggunaan untuk, bukan subagent |1875| `model` | `string` | Model loop utama yang Claude Code hitung penggunaan, bukan subagen |

1810| `total_tokens` | `number` | Perkiraan Claude Code dari token yang digunakan. Tidak diklem ke jendela, jadi dapat melebihi `raw_max_tokens` ketika sesi melampaui batas |1876| `total_tokens` | `number` | Perkiraan Claude Code tentang token yang digunakan. Tidak diklem ke jendela, jadi dapat melebihi `raw_max_tokens` ketika sesi melampaui batas |

1811| `raw_max_tokens` | `number` | Jendela konteks model, atau [jendela auto-compact](/docs/id/model-config#context-window-and-auto-compaction) yang lebih rendah ketika satu berlaku, seperti yang Anda atur atau batas 200K yang Claude Code terapkan pada beberapa model dengan jendela 1M-token. Claude Code mengukur `total_tokens` terhadap jendela ini |1877| `raw_max_tokens` | `number` | Jendela konteks model, atau [jendela auto-compact](/docs/id/model-config#context-window-and-auto-compaction) yang lebih rendah ketika satu berlaku, seperti yang Anda atur atau batas 200K yang Claude Code terapkan pada beberapa model dengan jendela 1M-token. Claude Code mengukur `total_tokens` terhadap jendela ini |

1812| `percentage` | `number` | `total_tokens` sebagai persentase pembulatan `raw_max_tokens`, jadi dapat melebihi 100 ketika sesi melampaui batas |1878| `percentage` | `number` | `total_tokens` sebagai persentase pembulatan `raw_max_tokens`, jadi dapat melebihi 100 ketika sesi melampaui batas |

1813| `over_limit` | `object` | Ada hanya ketika `total_tokens` melebihi `raw_max_tokens`. `tokens_over` adalah jumlah yang berlebihan, dan `kind` mengatakan bagaimana Claude Code menyelesaikan jendela |1879| `over_limit` | `object` | Hadir hanya ketika `total_tokens` melebihi `raw_max_tokens`. `tokens_over` adalah jumlah yang berlebihan, dan `kind` mengatakan bagaimana Claude Code menyelesaikan jendela |

1814| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | Satu entri per baris rincian penggunaan-per-kategori |1880| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | Satu entri per baris rincian penggunaan-per-kategori |

1815| `mcp_tools` | `object[]` | Token yang diatribusikan ke setiap tool MCP, dengan nama kawatnya, seperti `mcp__linear__create_issue`, dan `server_name`-nya |1881| `mcp_tools` | `object[]` | Token yang diatribusikan ke setiap alat MCP, dengan nama kawatnya, seperti `mcp__linear__create_issue`, dan `server_name` |

1816| `memory_files` | `object[]` | Token yang diatribusikan ke setiap file memori yang dimuat, dengan `path`-nya dan label sumber seperti `Project` atau `User` dalam `type` |1882| `memory_files` | `object[]` | Token yang diatribusikan ke setiap file memori yang dimuat, dengan `path` dan label sumber seperti `Project` atau `User` dalam `type` |

1817| `agents` | `object[]` | Token yang diatribusikan ke setiap definisi subagent kustom, dengan pengidentifikasi sumber seperti `projectSettings`, `userSettings`, atau `plugin`. Subagent bawaan tidak tercantum |1883| `agents` | `object[]` | Token yang diatribusikan ke setiap definisi subagen kustom, dengan pengidentifikasi sumber seperti `projectSettings`, `userSettings`, atau `plugin`. Subagen bawaan tidak tercantum |

1818| `skills` | `object[]` | Token yang diatribusikan ke setiap skill dalam daftar skill, dengan pengidentifikasi sumber dan, untuk skill plugin, nama plugin dalam `plugin_name`. Tidak ada ketika tidak ada skill yang berkontribusi token |1884| `skills` | `object[]` | Token yang diatribusikan ke setiap skill dalam daftar skill, dengan pengidentifikasi sumber dan, untuk skill plugin, nama plugin dalam `plugin_name`. Tidak ada ketika tidak ada skill yang berkontribusi token |

1819 1885 

1820`over_limit.kind` mencatat bagaimana Claude Code menyelesaikan jendela, bukan apakah API menerima permintaan berikutnya:1886`over_limit.kind` merekam bagaimana Claude Code menyelesaikan jendela, bukan apakah API menerima permintaan berikutnya:

1821 1887 

1822* `hard_limit`: jendela adalah apa yang Claude Code percaya menjadi batas model sendiri, melampaui mana API menolak permintaan1888* `hard_limit`: jendela adalah apa yang Claude Code percaya menjadi batas model sendiri, melampaui mana API menolak permintaan

1823* `compaction_window`: jendela adalah jendela kebijakan pemadatan, yang mungkin atau mungkin tidak bertepatan dengan batas model1889* `compaction_window`: jendela adalah jendela kebijakan pemadatan, yang mungkin atau mungkin tidak bertepatan dengan batas model

1824 1890 

1825Claude Code mengembangkan tipe secara aditif, menambahkan data baru sebagai field opsional daripada membentuk ulang yang ada. Baca field yang Anda ketahui dan abaikan yang tidak Anda kenali.1891Claude Code mengembangkan tipe secara aditif, menambahkan data baru sebagai bidang opsional daripada membentuk ulang yang ada. Baca bidang yang Anda ketahui dan abaikan yang tidak Anda kenal.

1826 1892 

1827<h3 id="sdkcontextusagecategory">1893<h3 id="sdkcontextusagecategory">

1828 `SDKContextUsageCategory`1894 `SDKContextUsageCategory`

1829</h3>1895</h3>

1830 1896 

1831Satu baris rincian penggunaan `/context` per-kategori.1897Satu baris rincian penggunaan-per-kategori `/context`.

1832 1898 

1833```typescript theme={null}1899```typescript theme={null}

1834type SDKContextUsageCategory = {1900type SDKContextUsageCategory = {


1838};1904};

1839```1905```

1840 1906 

1841Tabel mencantumkan apa yang Claude Code masukkan dalam setiap field baris.1907Tabel mencantumkan apa yang Claude Code masukkan dalam setiap bidang baris.

1842 1908 

1843| Field | Tipe | Deskripsi |1909| Bidang | Tipe | Deskripsi |

1844| -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- |1910| -------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------- |

1845| `name` | `string` | Nama tampilan baris seperti yang dicetak `/context`, seperti `Messages`. Klasifikasikan baris berdasarkan `kind`, bukan berdasarkan nama |1911| `name` | `string` | Nama tampilan baris seperti `/context` mencetaknya, seperti `Messages`. Klasifikasikan baris berdasarkan `kind`, bukan berdasarkan nama |

1846| `tokens` | `number` | Hitungan token baris. Baris dapat membawa nol token |1912| `tokens` | `number` | Hitungan token baris. Baris dapat membawa nol token |

1847| `kind` | `string` | Apa yang diwakili baris: `used`, `free`, `buffer`, atau `deferred` |1913| `kind` | `string` | Apa yang diwakili baris: `used`, `free`, `buffer`, atau `deferred` |

1848 1914 


1851* `used`: konten yang menempati jendela konteks1917* `used`: konten yang menempati jendela konteks

1852* `free`: jendela yang tersisa1918* `free`: jendela yang tersisa

1853* `buffer`: cadangan pemadatan1919* `buffer`: cadangan pemadatan

1854* `deferred`: skema tool yang Claude Code tahan di luar jendela dan kecualikan dari perhitungan penggunaan, tercantum untuk kesadaran1920* `deferred`: skema alat yang Claude Code tahan di luar jendela dan kecualikan dari perhitungan penggunaan, tercantum untuk kesadaran

1855 1921 

1856<h3 id="sdkmessageorigin">1922<h3 id="sdkmessageorigin">

1857 `SDKMessageOrigin`1923 `SDKMessageOrigin`

1858</h3>1924</h3>

1859 1925 

1860Asal-usul pesan dengan peran pengguna. Ini muncul sebagai `origin` pada [`SDKUserMessage`](#sdkusermessage) dan diteruskan ke [`SDKResultMessage`](#sdkresultmessage) yang sesuai sehingga Anda dapat mengetahui apa yang memicu putaran tertentu.1926Asal usul pesan peran pengguna. Ini muncul sebagai `origin` pada [`SDKUserMessage`](#sdkusermessage) dan diteruskan ke [`SDKResultMessage`](#sdkresultmessage) yang sesuai sehingga Anda dapat mengetahui apa yang memicu giliran tertentu.

1861 1927 

1862```typescript theme={null}1928```typescript theme={null}

1863type SDKMessageOrigin =1929type SDKMessageOrigin =


1883```1949```

1884 1950 

1885| `kind` | Arti |1951| `kind` | Arti |

1886| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1952| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

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

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

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

1890| `task-notification` | Putaran sintetis yang disuntikkan untuk pengiriman yang tiba tanpa prompt pengguna segar, seperti tugas latar belakang yang selesai; lihat [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) untuk lengan itu. `subkind` opsional menandai apa yang menaikkan notifikasi. Lihat [Task-notification subkinds](#task-notification-subkinds). |1956| `task-notification` | Giliran sintetis yang disuntikkan untuk pengiriman yang tiba tanpa prompt pengguna segar, seperti tugas yang selesai; lihat [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) untuk lengan itu. `subkind` opsional menandai apa yang menaikkan notifikasi. Lihat [Subkind notifikasi tugas](#task-notification-subkinds). |

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

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

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

1894 1960 

1895<h3 id="task-notification-subkinds">1961<h3 id="task-notification-subkinds">

1896 Task-notification subkinds1962 Subkind notifikasi tugas

1897</h3>1963</h3>

1898 1964 

1899Ketika Claude Code mengirimkan notifikasi tugas ke sesi, ia menetapkan `subkind` pada `origin` notifikasi hanya jika server Anthropic memverifikasi dari mana notifikasi itu berasal. `subkind` memerlukan Claude Code v2.1.213 atau lebih baru, dan mengambil salah satu dari dua nilai:1965Ketika Claude Code mengirimkan notifikasi tugas ke sesi, ia menetapkan `subkind` pada `origin` notifikasi hanya jika server Anthropic memverifikasi dari mana notifikasi itu berasal. `subkind` memerlukan Claude Code v2.1.213 atau lebih baru, dan mengambil salah satu dari dua nilai:

1900 1966 

1901* `scheduled-trigger`: notifikasi adalah prompt tersimpan [rutinitas](/docs/id/routines), disampaikan karena salah satu pemicu rutinitas dipecat: jadwalnya, [pemicu API](/docs/id/routines#add-an-api-trigger)-nya, [pemicu GitHub](/docs/id/routines#add-a-github-trigger)-nya, atau **Run now**. Claude Code membingkai ini ke model sebagai tugas yang ditugaskan sesi, dengan pemberitahuan berbeda dari [pemberitahuan yang notifikasi tugas lain bawa](#sdktasknotificationmessage).1967* `scheduled-trigger`: notifikasi adalah prompt tersimpan [rutinitas](/docs/id/routines), disampaikan karena salah satu pemicu rutinitas dipecat: jadwalnya, [pemicu API](/docs/id/routines#add-an-api-trigger), [pemicu GitHub](/docs/id/routines#add-a-github-trigger), atau **Jalankan sekarang**. Claude Code membingkai ini ke model sebagai tugas yang ditugaskan sesi, dengan pemberitahuan berbeda dari [pemberitahuan yang dibawa notifikasi tugas lain](#sdktasknotificationmessage).

1902*1968*

1903 1969 

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

1905 1971 

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

1907 1973 

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

1909 Peer origin fields1975 Bidang asal peer

1910</h3>1976</h3>

1911 1977 

1912Asal `peer` mengidentifikasi agen mana yang mengirim pesan: [rekan tim](/docs/id/agent-teams) dalam proses mengirim ke `main` dengan `SendMessage`, atau [peer lintas sesi](/docs/id/cross-session-messaging), sesi Claude Code lain Anda. Peer lintas sesi memerlukan Claude Code v2.1.224 atau lebih baru di macOS dan Linux; lihat [ketersediaan pesan lintas sesi](/docs/id/cross-session-messaging#availability) untuk persyaratan Windows asli. Peer lintas sesi dapat berjalan di mesin yang sama, atau di [mesin lain Anda](/docs/id/cross-session-messaging#message-sessions-on-other-machines) atau [Claude Code on the web](/docs/id/claude-code-on-the-web) ketika pesannya tiba melalui Remote Control. Dua jenis pengirim mengisi field secara berbeda:1978Asal `peer` mengidentifikasi agen mana yang mengirim pesan: [rekan kerja](/docs/id/agent-teams) dalam proses mengirim ke `main` dengan `SendMessage`, atau [rekan lintas sesi](/docs/id/cross-session-messaging), sesi Claude Code lain Anda. Rekan lintas sesi memerlukan Claude Code v2.1.224 atau lebih baru di macOS dan Linux; lihat [ketersediaan pesan lintas sesi](/docs/id/cross-session-messaging#availability) untuk persyaratan Windows asli. Rekan lintas sesi dapat berjalan di mesin yang sama, atau di [mesin lain Anda](/docs/id/cross-session-messaging#message-sessions-on-other-machines) atau [Claude Code di web](/docs/id/claude-code-on-the-web) ketika pesannya tiba melalui Remote Control. Dua jenis pengirim mengisi bidang secara berbeda:

1913 1979 

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

1915*1981*

1916 1982 

1917`fromMode`: kelas izin sesi pengiriman, `bypass` atau `prompting`, dideklarasikan oleh host yang meneruskan pesan peer antara sesi Anda, seperti [aplikasi desktop](/docs/id/desktop#work-across-sessions). Claude Code membacanya dalam sesi penerima ketika menerapkan [kontrol inbound](/docs/id/cross-session-messaging#control-inbound-messages). Memerlukan Agent SDK v0.3.234 atau lebih baru.1983`fromMode`: kelas izin sesi pengiriman, `bypass` atau `prompting`, dideklarasikan oleh host yang meneruskan pesan peer antara sesi Anda, seperti [aplikasi desktop](/docs/id/desktop#work-across-sessions). Claude Code membacanya dalam sesi penerima ketika menerapkan [kontrol inbound](/docs/id/cross-session-messaging#control-inbound-messages). Memerlukan Agent SDK v0.3.234 atau lebih baru.

1918 1984 

1919* `senderTaskId`: ID tugas rekan tim. Tidak ada untuk peer lintas sesi.1985* `senderTaskId`: ID tugas rekan kerja. Tidak ada untuk rekan lintas sesi.

1920*1986*

1921 1987 

1922`name`: nama tampilan pengirim, dinormalisasi oleh Claude Code: menghapus kontrol Unicode, format, surrogate, dan pemisah baris atau paragraf code points, kemudian memangkas hasilnya dan membatasinya pada 64 code points dengan ellipsis. Memerlukan Claude Code v2.1.205 atau lebih baru.1988`name`: nama tampilan pengirim, dinormalisasi oleh Claude Code: ia menghapus kontrol Unicode, format, surrogate, dan pemisah baris atau paragraf, kemudian memangkas hasil dan membatasinya pada 64 poin kode dengan elipsis. Memerlukan Claude Code v2.1.205 atau lebih baru.

1923 1989 

1924*1990*

1925 1991 

1926`body`: badan pesan yang didekode dengan amplop peer yang dihapus, byte-exact dengan apa yang dilihat model. Selalu ada untuk pesan rekan tim; untuk peer lintas sesi, ada hanya ketika putaran adalah tepat satu amplop peer yang dibentuk oleh Claude Code. Render `name` dan `body` daripada mem-parse ulang teks pesan. Memerlukan Claude Code v2.1.205 atau lebih baru.1992`body`: badan pesan yang didekode dengan amplop peer dihapus, byte-tepat dengan apa yang dilihat model. Selalu ada untuk pesan rekan kerja; untuk rekan lintas sesi, ada hanya ketika giliran adalah tepat satu amplop peer yang dibentuk Claude Code. Render `name` dan `body` daripada mengurai ulang teks pesan. Memerlukan Claude Code v2.1.205 atau lebih baru.

1927 1993 

1928*1994*

1929 1995 


1931 1997 

1932*1998*

1933 1999 

1934`verifiedPeerPid`: ID proses dari proses yang terhubung ke soket pesan lintas sesi sesi ini, diverifikasi oleh kernel dan dibaca dari koneksi itu sendiri, tidak pernah dari payload. Gunakan itu, bukan `from`, untuk mengidentifikasi pengirim: `from` dapat dipalsukan oleh proses pengguna yang sama. Field tidak ada ketika Claude Code tidak dapat memverifikasinya, seperti di Windows atau ingress non-socket, jadi nilai yang tidak ada berarti pengirim tidak diverifikasi. Untuk lalu lintas yang diteruskan itu mengidentifikasi relay daripada penulis pesan, dan ID proses dapat didaur ulang, jadi perlakukan sebagai asal daripada token autentikasi. Memerlukan Claude Code v2.1.216 atau lebih baru.2000`verifiedPeerPid`: ID proses dari proses yang terhubung ke soket pesan lintas sesi sesi ini, diverifikasi oleh kernel dan dibaca dari koneksi itu sendiri, tidak pernah dari muatan. Gunakan itu, bukan `from`, untuk mengidentifikasi pengirim: `from` dapat dipalsukan oleh proses pengguna yang sama. Bidang tidak ada ketika Claude Code tidak dapat memverifikasinya, seperti di Windows atau ingress non-soket, jadi nilai yang tidak ada berarti pengirim tidak diverifikasi. Untuk lalu lintas yang diteruskan itu mengidentifikasi relay daripada penulis pesan, dan ID proses dapat didaur ulang, jadi perlakukan sebagai asal usul daripada token autentikasi. Memerlukan Claude Code v2.1.216 atau lebih baru.

1935 2001 

1936<h2 id="hook-types">2002<h2 id="hook-types">

1937 Tipe Hook2003 Tipe Hook


2084 tool_name: string;2150 tool_name: string;

2085 tool_input: unknown;2151 tool_input: unknown;

2086 tool_use_id: string;2152 tool_use_id: string;

2153 mcp_server?: McpServerProvenance;

2087};2154};

2088```2155```

2089 2156 

2157`mcp_server` hadir ketika alat berasal dari server MCP; lihat [`McpServerProvenance`](#mcpserverprovenance). Input `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, dan `PermissionDenied` membawa bidang yang sama. Bidang ini memerlukan Agent SDK v0.3.274 atau lebih baru.

2158 

2090<h4 id="posttoolusehookinput">2159<h4 id="posttoolusehookinput">

2091 `PostToolUseHookInput`2160 `PostToolUseHookInput`

2092</h4>2161</h4>


2099 tool_response: unknown;2168 tool_response: unknown;

2100 tool_use_id: string;2169 tool_use_id: string;

2101 duration_ms?: number;2170 duration_ms?: number;

2171 mcp_server?: McpServerProvenance;

2102};2172};

2103```2173```

2104 2174 


2115 error: string;2185 error: string;

2116 is_interrupt?: boolean;2186 is_interrupt?: boolean;

2117 duration_ms?: number;2187 duration_ms?: number;

2188 mcp_server?: McpServerProvenance;

2118};2189};

2119```2190```

2120 2191 


2149 tool_input: unknown;2220 tool_input: unknown;

2150 tool_use_id: string;2221 tool_use_id: string;

2151 reason: string;2222 reason: string;

2223 mcp_server?: McpServerProvenance;

2152};2224};

2153```2225```

2154 2226 


2368 tool_name: string;2440 tool_name: string;

2369 tool_input: unknown;2441 tool_input: unknown;

2370 permission_suggestions?: PermissionUpdate[];2442 permission_suggestions?: PermissionUpdate[];

2443 mcp_server?: McpServerProvenance;

2371};2444};

2372```2445```

2373 2446 


2751```2824```

2752 2825 

2753<h2 id="tool-input-types">2826<h2 id="tool-input-types">

2754 Tipe Input Tool2827 Jenis Input Tool

2755</h2>2828</h2>

2756 2829 

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

2758 2831 

2759<h3 id="toolinputschemas">2832<h3 id="toolinputschemas">

2760 `ToolInputSchemas`2833 `ToolInputSchemas`

2761</h3>2834</h3>

2762 2835 

2763Union dari tipe input tool yang dieksport dari `@anthropic-ai/claude-agent-sdk`; anggota mencakup:2836Gabungan jenis input tool yang diekspor dari `@anthropic-ai/claude-agent-sdk`; anggota mencakup:

2764 2837 

2765```typescript theme={null}2838```typescript theme={null}

2766type ToolInputSchemas =2839type ToolInputSchemas =


2813**Nama tool:** `Agent`. Nama sebelumnya `Task` masih diterima sebagai alias, dan array `tools` dalam pesan init [`SDKSystemMessage`](#sdksystemmessage) saat ini mencantumkan tool ini sebagai `Task` untuk kompatibilitas mundur.2886**Nama tool:** `Agent`. Nama sebelumnya `Task` masih diterima sebagai alias, dan array `tools` dalam pesan init [`SDKSystemMessage`](#sdksystemmessage) saat ini mencantumkan tool ini sebagai `Task` untuk kompatibilitas mundur.

2814 2887 

2815<Note>2888<Note>

2816 Bidang `mode` sudah usang dan diabaikan pada Claude Code v2.1.212 atau yang lebih baru. Subagen berjalan dalam mode izin sesi induk atau [`permissionMode`](#agentdefinition) definisinya, dan [aturan pewarisan subagen](/docs/id/agent-sdk/permissions#available-modes) memutuskan yang mana.2889 Bidang `mode` sudah usang dan diabaikan pada Claude Code v2.1.212 atau lebih baru. Subagent berjalan dalam mode izin sesi induk atau [`permissionMode`](#agentdefinition) definisinya, dan [aturan pewarisan subagent](/docs/id/agent-sdk/permissions#available-modes) memutuskan yang mana.

2817</Note>2890</Note>

2818 2891 

2819```typescript theme={null}2892```typescript theme={null}


2830};2903};

2831```2904```

2832 2905 

2833Meluncurkan agen baru untuk menangani tugas kompleks multi-langkah secara otonom.2906Meluncurkan agent baru untuk menangani tugas kompleks multi-langkah secara otonom.

2834 2907 

2835<h3 id="askuserquestion">2908<h3 id="askuserquestion">

2836 AskUserQuestion2909 AskUserQuestion


2852};2925};

2853```2926```

2854 2927 

2855Menanyakan pertanyaan klarifikasi kepada pengguna selama eksekusi. Lihat [Tangani persetujuan dan input pengguna](/docs/id/agent-sdk/user-input#handle-clarifying-questions) untuk detail penggunaan.2928Menanyakan pertanyaan klarifikasi kepada pengguna selama eksekusi. Lihat [Menangani persetujuan dan input pengguna](/docs/id/agent-sdk/user-input#handle-clarifying-questions) untuk detail penggunaan.

2856 2929 

2857<h3 id="bash">2930<h3 id="bash">

2858 Bash2931 Bash


2870};2943};

2871```2944```

2872 2945 

2873Mengeksekusi perintah Bash dengan timeout opsional dan eksekusi latar belakang. Direktori kerja bertahan di antara perintah, termasuk perintah yang dijalankan di putaran berikutnya dari sesi multi-putaran; status shell seperti variabel lingkungan yang diekspor tidak. Untuk batas pada perubahan direktori mana yang bertahan, lihat [Apa yang bertahan di antara perintah](/docs/id/tools-reference#what-persists-between-commands).2946Mengeksekusi perintah Bash dengan timeout opsional dan eksekusi latar belakang. Direktori kerja tetap ada di antara perintah, termasuk perintah yang dijalankan di putaran berikutnya dari sesi multi-putaran; status shell seperti variabel lingkungan yang diekspor tidak. Untuk batas pada perubahan direktori mana yang bertahan, lihat [Apa yang bertahan di antara perintah](/docs/id/tools-reference#what-persists-between-commands).

2874 2947 

2875<h3 id="monitor">2948<h3 id="monitor">

2876 Monitor2949 Monitor


2880 2953 

2881```typescript theme={null}2954```typescript theme={null}

2882type MonitorInput = {2955type MonitorInput = {

2956 description: string;

2957 timeout_ms: number;

2883 command?: string;2958 command?: string;

2884 ws?: {2959 ws?: {

2885 url: string;2960 url: string;

2886 protocols?: string[];2961 protocols?: string[];

2887 };2962 };

2888 description: string;

2889 timeout_ms: number;

2890 persistent: boolean;

2891};2963};

2892```2964```

2893 2965 

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

2895 2967 

2896Atur `persistent: true` untuk watch panjang sesi seperti log tails. Ketika Monitor menjalankan perintah, ia mengikuti aturan izin yang sama seperti Bash; watch WebSocket meminta persetujuan secara terpisah. Lihat [referensi tool Monitor](/docs/id/tools-reference#monitor-tool) untuk perilaku dan ketersediaan provider. Tipe yang diekspor menandai `timeout_ms` dan `persistent` sebagai wajib karena skema mengisi default mereka, 300000 dan `false`; panggilan yang menghilangkan mereka memvalidasi.2968`timeout_ms` adalah batas waktu pengawasan dalam milidetik. Ini default ke 300000, dan batas waktu efektif paling banyak 1800000, yaitu 30 menit. Pada batas waktu pengawasan berakhir dan Claude menerima satu pemberitahuan sehingga dapat memulai pengawasan baru jika masih membutuhkannya.

2969 

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

2971 

2972Ketika Monitor menjalankan perintah, ia mengikuti aturan izin yang sama dengan Bash; pengawasan WebSocket meminta persetujuan secara terpisah. Lihat [referensi tool Monitor](/docs/id/tools-reference#monitor-tool) untuk perilaku dan ketersediaan penyedia.

2897 2973 

2898<h3 id="taskoutput">2974<h3 id="taskoutput">

2899 TaskOutput2975 TaskOutput


2901 2977 

2902**Nama tool:** `TaskOutput`2978**Nama tool:** `TaskOutput`

2903 2979 

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

2905 2981 

2906```typescript theme={null}2982```typescript theme={null}

2907type TaskOutputInput = {2983type TaskOutputInput = {


2945};3021};

2946```3022```

2947 3023 

2948Membaca file dari filesystem lokal, termasuk teks, gambar, PDF, dan notebook Jupyter. Gunakan `pages` untuk rentang halaman PDF (misalnya, `"1-5"`).3024Membaca file dari sistem file lokal, termasuk teks, gambar, PDF, dan notebook Jupyter. Gunakan `pages` untuk rentang halaman PDF (misalnya, `"1-5"`).

2949 3025 

2950Untuk PDF, Claude menerima konten file di dalam `tool_result` panggilan Read. Pembacaan yang mengembalikan output `pdf` membawa blok `text` ringkasan diikuti oleh blok `document`. Pembacaan yang mengembalikan output `parts` membawa blok `text` ringkasan diikuti oleh satu blok per halaman yang diekstrak: blok `image`, atau blok `text` yang menamai halaman ketika Claude Code tidak dapat merender sebagai gambar. Sebelum Agent SDK v0.3.242, Claude Code mengirimkan konten file sebagai pesan `user` terpisah setelah hasil tool.3026Untuk PDF, Claude menerima konten file di dalam `tool_result` panggilan Read. Pembacaan yang mengembalikan output `pdf` [](#tool-output-types) membawa blok `text` ringkasan diikuti oleh blok `document`. Satu yang mengembalikan output `parts` membawa blok `text` ringkasan diikuti oleh satu blok per halaman yang diekstrak: blok `image`, atau blok `text` yang menamai halaman ketika Claude Code tidak dapat merender sebagai gambar. Sebelum Agent SDK v0.3.242, Claude Code mengirimkan konten file sebagai pesan `user` terpisah setelah hasil tool.

2951 3027 

2952<h3 id="write">3028<h3 id="write">

2953 Write3029 Write


2962};3038};

2963```3039```

2964 3040 

2965Menulis file ke filesystem lokal, menimpa jika ada.3041Menulis file ke sistem file lokal, menimpa jika ada.

2966 3042 

2967<h3 id="glob">3043<h3 id="glob">

2968 Glob3044 Glob


2977};3053};

2978```3054```

2979 3055 

2980Pencocokan pola file cepat yang bekerja dengan ukuran codebase apa pun.3056Pencocokan pola file cepat yang bekerja dengan ukuran basis kode apa pun.

2981 3057 

2982<h3 id="grep">3058<h3 id="grep">

2983 Grep3059 Grep


3005};3081};

3006```3082```

3007 3083 

3008Tool pencarian yang kuat dibangun di atas ripgrep dengan dukungan regex.3084Tool pencarian canggih yang dibangun di atas ripgrep dengan dukungan regex.

3009 3085 

3010<h3 id="taskstop">3086<h3 id="taskstop">

3011 TaskStop3087 TaskStop


3020};3096};

3021```3097```

3022 3098 

3023Menghentikan tugas latar belakang atau shell yang sedang berjalan berdasarkan ID. Mulai dari v2.1.198, `task_id` juga menerima rekan tim agent atau agen latar belakang bernama berdasarkan ID agen atau nama.3099Menghentikan tugas latar belakang atau shell yang sedang berjalan berdasarkan ID. Mulai dari v2.1.198, `task_id` juga menerima rekan tim tim agent atau agent latar belakang bernama berdasarkan ID atau nama agent.

3024 3100 

3025<h3 id="notebookedit">3101<h3 id="notebookedit">

3026 NotebookEdit3102 NotebookEdit


3089};3165};

3090```3166```

3091 3167 

3092Menjalankan [workflow dinamis](/docs/id/workflows): skrip yang mengorkestra banyak subagen di latar belakang dan mengembalikan satu hasil yang dikonsolidasikan. Tool `Workflow` tersedia di Agent SDK v0.3.149 dan yang lebih baru. Setidaknya satu dari `script`, `name`, atau `scriptPath` diperlukan.3168Menjalankan [workflow dinamis](/docs/id/workflows): skrip yang mengorkestra banyak subagent di latar belakang dan mengembalikan satu hasil terpadu. Tool Workflow tersedia di Agent SDK v0.3.149 dan lebih baru. Setidaknya satu dari `script`, `name`, atau `scriptPath` diperlukan.

3093 3169 

3094| Field | Type | Description |3170| Bidang | Jenis | Deskripsi |

3095| ----------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |3171| ----------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

3096| `script` | `string` | Skrip workflow inline. Harus dimulai dengan `export const meta = { name, description }` sebagai literal, diikuti oleh badan skrip menggunakan `agent()`, `parallel()`, `pipeline()`, dan `phase()`. Array `phases` opsional dalam `meta` mengelompokkan agen di bawah tahap bernama dalam tampilan kemajuan |3172| `script` | `string` | Skrip workflow inline. Harus dimulai dengan `export const meta = { name, description }` sebagai literal, diikuti oleh badan skrip menggunakan `agent()`, `parallel()`, `pipeline()`, dan `phase()`. Array `phases` opsional dalam `meta` mengelompokkan agent di bawah tahap bernama dalam tampilan kemajuan |

3097| `name` | `string` | Nama workflow bawaan atau yang disimpan di `.claude/workflows/`. Diselesaikan ke skrip |3173| `name` | `string` | Nama workflow bawaan atau yang disimpan di `.claude/workflows/`. Diselesaikan ke skrip |

3098| `scriptPath` | `string` | Jalur ke file skrip workflow di disk. Mengambil prioritas atas `script` dan `name`. Claude Code menyimpan setiap invokasi skrip dan mengembalikan jalur dalam hasil, sehingga Anda dapat mengedit file itu dan menginvokasi kembali dengan `scriptPath` yang sama untuk melakukan iterasi |3174| `scriptPath` | `string` | Jalur ke file skrip workflow di disk. Mengambil prioritas atas `script` dan `name`. Claude Code tetap menyimpan skrip setiap invokasi dan mengembalikan jalur dalam hasil, sehingga Anda dapat mengedit file itu dan menginvokasi kembali dengan `scriptPath` yang sama untuk melakukan iterasi |

3099| `args` | `unknown` | Nilai input yang diekspos ke skrip sebagai `args` global, untuk workflow bernama yang diparameterisasi seperti pertanyaan penelitian atau daftar jalur file. Lewatkan array dan objek sebagai nilai JSON aktual, bukan sebagai string yang dikodekan JSON |3175| `args` | `unknown` | Nilai input yang diekspos ke skrip sebagai `args` global, untuk workflow bernama yang diparameterisasi seperti pertanyaan penelitian atau daftar jalur file. Lewatkan array dan objek sebagai nilai JSON aktual, bukan sebagai string yang dikodekan JSON |

3100| `resumeFromRunId` | `string` | Run ID dari invokasi `Workflow` sebelumnya untuk dilanjutkan. Panggilan `agent()` yang selesai dengan input yang tidak berubah biasanya mengembalikan hasil yang di-cache; sisanya berjalan langsung. [Lanjutkan setelah jeda](/docs/id/workflows#resume-after-a-pause) mencakup panggilan yang selesai mana yang berjalan kembali. Sesi yang sama saja |3176| `resumeFromRunId` | `string` | ID Jalankan dari invokasi `Workflow` sebelumnya untuk dilanjutkan. Panggilan `agent()` yang selesai dengan input tidak berubah biasanya mengembalikan hasil cache; sisanya berjalan langsung. [Lanjutkan setelah jeda](/docs/id/workflows#resume-after-a-pause) mencakup panggilan selesai mana yang dijalankan kembali. Sesi yang sama saja |

3101| `title` | `string` | Diabaikan; blok `meta` skrip menetapkan judul |3177| `title` | `string` | Diabaikan; blok `meta` skrip menetapkan judul |

3102| `description` | `string` | Diabaikan; blok `meta` skrip menetapkan deskripsi |3178| `description` | `string` | Diabaikan; blok `meta` skrip menetapkan deskripsi |

3103 3179 


3198type TaskListInput = {};3274type TaskListInput = {};

3199```3275```

3200 3276 

3201Mengembalikan snapshot dari semua tugas dalam daftar saat ini.3277Mengembalikan snapshot semua tugas dalam daftar saat ini.

3202 3278 

3203<h3 id="exitplanmode">3279<h3 id="exitplanmode">

3204 ExitPlanMode3280 ExitPlanMode


3217};3293};

3218```3294```

3219 3295 

3220Keluar dari plan mode. Bidang `allowedPrompts` sudah usang dan diabaikan; Claude Code masih menerimanya sehingga pemanggil dan transkrip yang ada memvalidasi. Sebelum v2.1.205, ia meminta izin Bash berbasis prompt untuk mengimplementasikan rencana.3296Keluar dari mode rencana. Bidang `allowedPrompts` sudah usang dan diabaikan; Claude Code masih menerimanya sehingga pemanggil dan transkrip yang ada memvalidasi. Sebelum v2.1.205, ia meminta izin Bash berbasis prompt untuk mengimplementasikan rencana.

3221 3297 

3222<h3 id="listmcpresources">3298<h3 id="listmcpresources">

3223 ListMcpResources3299 ListMcpResources


3231};3307};

3232```3308```

3233 3309 

3234Membuat daftar sumber daya MCP yang tersedia dari server yang terhubung.3310Mencantumkan sumber daya MCP yang tersedia dari server yang terhubung.

3235 3311 

3236<h3 id="readmcpresource">3312<h3 id="readmcpresource">

3237 ReadMcpResource3313 ReadMcpResource


3261};3337};

3262```3338```

3263 3339 

3264Membuat dan memasuki worktree git sementara untuk pekerjaan terisolasi. Lewatkan `path` untuk beralih ke worktree yang ada alih-alih membuat yang baru. Pada entri pertama target harus berupa worktree terdaftar dari repositori saat ini atau, dalam workspace multi-repo, dari repositori yang bersarang di dalamnya; dari dalam sesi worktree harus berada di bawah `.claude/worktrees/` dari repositori sesi. `name` dan `path` saling eksklusif.3340Membuat dan memasuki worktree git sementara untuk pekerjaan terisolasi. Lewatkan `path` untuk beralih ke worktree yang ada alih-alih membuat yang baru. Pada entri pertama target harus berupa worktree terdaftar dari repositori saat ini atau, di ruang kerja multi-repo, dari repositori yang bersarang di dalamnya; dari dalam sesi worktree harus berada di bawah `.claude/worktrees/` dari repositori sesi. `name` dan `path` saling eksklusif.

3265 3341 

3266<h3 id="exitworktree">3342<h3 id="exitworktree">

3267 ExitWorktree3343 ExitWorktree


3276};3352};

3277```3353```

3278 3354 

3279Keluar dari worktree git saat ini dan kembali ke direktori kerja asli. Aksi `keep` meninggalkan worktree dan cabang di disk, sementara `remove` menghapus keduanya. `discard_changes` harus `true` ketika menghapus worktree yang memiliki file yang tidak dikomit atau komit yang tidak digabung.3355Keluar dari worktree git saat ini dan kembali ke direktori kerja asli. Tindakan `keep` meninggalkan worktree dan cabang di disk, sementara `remove` menghapus keduanya. `discard_changes` harus `true` ketika menghapus worktree yang memiliki file yang tidak dikomit atau komit yang tidak digabung.

3280 3356 

3281<h3 id="enterplanmode">3357<h3 id="enterplanmode">

3282 EnterPlanMode3358 EnterPlanMode


3288type EnterPlanModeInput = {};3364type EnterPlanModeInput = {};

3289```3365```

3290 3366 

3291Memasuki plan mode, di mana Claude meneliti dan menyajikan rencana sebelum membuat perubahan.3367Memasuki mode rencana, di mana Claude meneliti dan menyajikan rencana sebelum membuat perubahan.

3292 3368 

3293<h3 id="croncreate">3369<h3 id="croncreate">

3294 CronCreate3370 CronCreate


3305};3381};

3306```3382```

3307 3383 

3308Menjadwalkan prompt untuk berjalan pada jadwal cron 5-bidang dalam waktu lokal. Atur `recurring` ke `false` untuk menembak sekali pada kecocokan berikutnya. Pekerjaan bersifat sesi-scoped secara default: memulai percakapan segar menghapusnya, dan melanjutkan dengan `--resume` atau `--continue` memulihkan pekerjaan yang belum kedaluwarsa. Lihat [Tugas terjadwal](/docs/id/scheduled-tasks).3384Menjadwalkan prompt untuk dijalankan pada jadwal cron 5-bidang dalam waktu lokal. Atur `recurring` ke `false` untuk menembak sekali pada kecocokan berikutnya. Pekerjaan bersifat sesi-scoped secara default: memulai percakapan segar menghapusnya, dan melanjutkan dengan `--resume` atau `--continue` memulihkan pekerjaan yang belum kedaluwarsa. Lihat [Tugas terjadwal](/docs/id/scheduled-tasks).

3309 3385 

3310Mengatur `durable` ke `true` meminta persistensi ke `.claude/scheduled_tasks.json` sehingga pekerjaan bertahan dari restart. Penjadwalan tahan lama tidak tersedia di setiap sesi: ketika tidak, Claude Code menerima `durable: true` tetapi membuat pekerjaan hanya-sesi. Baca bidang `durable` output untuk melihat apakah pekerjaan bertahan.3386Mengatur `durable` ke `true` meminta persistensi ke `.claude/scheduled_tasks.json` sehingga pekerjaan bertahan dari restart. Penjadwalan tahan lama tidak tersedia di setiap sesi: ketika tidak, Claude Code menerima `durable: true` tetapi membuat pekerjaan hanya sesi. Baca bidang `durable` output untuk melihat apakah pekerjaan bertahan.

3311 3387 

3312<h3 id="crondelete">3388<h3 id="crondelete">

3313 CronDelete3389 CronDelete


3333type CronListInput = {};3409type CronListInput = {};

3334```3410```

3335 3411 

3336Membuat daftar pekerjaan cron terjadwal: pekerjaan tahan lama dari `.claude/scheduled_tasks.json` dan pekerjaan hanya-sesi dari sesi saat ini.3412Mencantumkan pekerjaan cron terjadwal: pekerjaan tahan lama dari `.claude/scheduled_tasks.json` dan pekerjaan hanya sesi dari sesi saat ini.

3337 3413 

3338<h3 id="schedulewakeup">3414<h3 id="schedulewakeup">

3339 ScheduleWakeup3415 ScheduleWakeup


3351};3427};

3352```3428```

3353 3429 

3354Menjadwalkan satu kali wake-up yang menembak prompt yang diberikan setelah penundaan. Tool ini mendukung perintah `/loop` yang berjalan sendiri. Runtime menjepit `delaySeconds` antara 60 dan 3600 detik. Bidang `delaySeconds`, `reason`, `prompt`, dan `noop` diperlukan kecuali `stop` adalah true. `noop: true` melaporkan wake-up di mana tidak ada yang berubah. Mengatur `stop: true` membatalkan wake-up yang tertunda dan mengakhiri `/loop` yang berjalan sendiri. Bidang `stop` memerlukan Claude Code v2.1.202 atau yang lebih baru. Lihat [baris ScheduleWakeup dalam referensi tools](/docs/id/tools-reference).3430Menjadwalkan bangun sekali yang menembak prompt yang diberikan setelah penundaan. Tool ini mendukung perintah `/loop` yang berjalan sendiri. Runtime menjepit `delaySeconds` antara 60 dan 3600 detik. Bidang `delaySeconds`, `reason`, `prompt`, dan `noop` diperlukan kecuali `stop` adalah true. `noop: true` melaporkan bangun di mana tidak ada yang berubah. Mengatur `stop: true` membatalkan bangun yang tertunda dan mengakhiri `/loop` yang berjalan sendiri. Bidang `stop` memerlukan Claude Code v2.1.202 atau lebih baru. Lihat [baris ScheduleWakeup dalam referensi tool](/docs/id/tools-reference).

3355 3431 

3356<h3 id="remotetrigger">3432<h3 id="remotetrigger">

3357 RemoteTrigger3433 RemoteTrigger


3379};3455};

3380```3456```

3381 3457 

3382Mengelola [Routines](/docs/id/routines), Claude Code berjalan terjadwal dan dipicu yang dihosting di cloud. Tool ini mendukung perintah `/schedule`. `trigger_id` diperlukan untuk aksi `get`, `update`, `run`, dan `list_runs`. `body` diperlukan untuk `create`, `update`, dan `create_webhook_trigger`, dan opsional untuk `run`.3458Mengelola [Rutinitas](/docs/id/routines), jalankan Claude Code terjadwal dan dipicu yang dihosting di cloud. Tool ini mendukung perintah `/schedule`. `trigger_id` diperlukan untuk tindakan `get`, `update`, `run`, dan `list_runs`. `body` diperlukan untuk `create`, `update`, dan `create_webhook_trigger`, dan opsional untuk `run`.

3383 3459 

3384`create_webhook_trigger` melampirkan sumber event ke routine yang ada, seperti [event GitHub](/docs/id/routines#add-a-github-trigger) yang menembaknya. `body` menamai sumber, event, dan routine untuk menembak. Memerlukan Claude Code v2.1.225 atau yang lebih baru.3460`create_webhook_trigger` melampirkan sumber peristiwa ke rutinitas yang ada, seperti [peristiwa GitHub](/docs/id/routines#add-a-github-trigger) yang menembaknya. `body` menamai sumber, peristiwa, dan rutinitas untuk menembak. Memerlukan Claude Code v2.1.225 atau lebih baru.

3385 3461 

3386`list_runs` membuat daftar run routine terbaru, dan `get_run_log` membaca log satu run. `session_id` menamai run untuk dibaca, dari hasil `list_runs`, dan `cursor` halaman melalui hasil aksi apa pun. Kedua aksi memerlukan Claude Code v2.1.227 atau yang lebih baru.3462`list_runs` mencantumkan jalankan rutinitas baru-baru ini, dan `get_run_log` membaca log satu jalankan. `session_id` menamai jalankan untuk dibaca, dari hasil `list_runs`, dan `cursor` halaman melalui tindakan mana pun hasil. Kedua tindakan memerlukan Claude Code v2.1.227 atau lebih baru.

3387 3463 

3388Tool ini hanya tersedia ketika sesi diautentikasi dengan akun claude.ai pada paket dengan Routines diaktifkan, dan tidak ada ketika kebijakan organisasi Anda menonaktifkan [Claude Code di web](/docs/id/claude-code-on-the-web). Pada Claude Code v2.1.227 atau yang lebih baru, tool juga tidak ada ketika Owner telah [mematikan routines untuk organisasi](/docs/id/routines#routines-are-disabled-by-your-organizations-policy). Sebelum v2.1.227, sesi dengan hanya toggle routines dimatikan masih menunjukkan tool, dan server menolak panggilannya.3464Tool ini hanya tersedia ketika sesi diautentikasi dengan akun claude.ai pada paket dengan Rutinitas diaktifkan, dan tidak ada ketika kebijakan organisasi Anda menonaktifkan [Claude Code di web](/docs/id/claude-code-on-the-web). Pada Claude Code v2.1.227 atau lebih baru, tool juga tidak ada ketika Pemilik telah [mematikan rutinitas untuk organisasi](/docs/id/routines#routines-are-disabled-by-your-organizations-policy). Sebelum v2.1.227, sesi dengan hanya toggle rutinitas yang dimatikan masih menunjukkan tool, dan server menolak panggilannya.

3389 3465 

3390<h3 id="pushnotification">3466<h3 id="pushnotification">

3391 PushNotification3467 PushNotification


3400};3476};

3401```3477```

3402 3478 

3403Mengirim notifikasi push proaktif kepada pengguna. Jaga `message` di bawah 200 karakter karena sistem operasi mobile memotong teks yang lebih panjang. Lihat [baris PushNotification dalam referensi tools](/docs/id/tools-reference) untuk ketersediaan provider; pengiriman push berjalan melalui infrastruktur yang dihosting Anthropic yang tidak dapat diakses dari Amazon Bedrock, Claude Platform di AWS, Agent Platform Google Cloud, atau Microsoft Foundry.3479Mengirim notifikasi push proaktif kepada pengguna. Jaga `message` di bawah 200 karakter karena sistem operasi mobile memotong teks yang lebih panjang. Lihat [baris PushNotification dalam referensi tool](/docs/id/tools-reference) untuk ketersediaan penyedia; pengiriman push berjalan melalui infrastruktur yang dihosting Anthropic yang tidak dapat diakses dari Amazon Bedrock, Claude Platform di AWS, Platform Agent Google Cloud, atau Microsoft Foundry.

3404 3480 

3405<h3 id="repl">3481<h3 id="repl">

3406 REPL3482 REPL


3416};3492};

3417```3493```

3418 3494 

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

3420 3496 

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

3422 3498 

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

3424 ReportFindings3500 ReportFindings


3442};3518};

3443```3519```

3444 3520 

3445Melaporkan temuan review kode sebagai daftar terstruktur sehingga Claude Code dapat merender mereka alih-alih mencetaknya sebagai teks. `level` adalah tingkat upaya yang dijalankan review. Temuan diurutkan paling parah terlebih dahulu, dengan paling banyak 32 per panggilan, dan array kosong ketika tidak ada yang bertahan. Memerlukan Claude Code v2.1.196 atau yang lebih baru.3521Melaporkan temuan tinjauan kode sebagai daftar terstruktur sehingga Claude Code dapat merender alih-alih mencetaknya sebagai teks. `level` adalah tingkat upaya yang dijalankan tinjauan. Temuan diurutkan paling parah terlebih dahulu, dengan paling banyak 32 per panggilan, dan array kosong ketika tidak ada yang bertahan. Memerlukan Claude Code v2.1.196 atau lebih baru.

3446 3522 

3447Setiap temuan membawa bidang ini:3523Setiap temuan membawa bidang-bidang ini:

3448 3524 

3449* `file`: jalur relatif repo temuan berada. `line` opsional adalah baris 1-indexed yang ditambatkan.3525* `file`: jalur relatif repo temuan berada. `line` opsional adalah baris 1-indexed yang ditambatkan.

3450* `summary`: pernyataan satu kalimat dari cacat. `failure_scenario` menjelaskan input konkret dan status yang mengarah ke output yang salah atau crash.3526* `summary`: pernyataan satu kalimat dari cacat. `failure_scenario` menjelaskan input konkret dan status yang mengarah ke output yang salah atau crash.

3451* `short_summary`: label terkompresi opsional paling banyak 60 karakter untuk tampilan kompak. Memerlukan Claude Code v2.1.212 atau yang lebih baru.3527* `short_summary`: label terkompresi opsional paling banyak 60 karakter untuk tampilan kompak. Memerlukan Claude Code v2.1.212 atau lebih baru.

3452* `category`: slug kebab-case pendek opsional dari tipe temuan, seperti `correctness` atau `test-coverage`. Memerlukan Claude Code v2.1.199 atau yang lebih baru.3528* `category`: slug kebab-case pendek opsional dari jenis temuan, seperti `correctness` atau `test-coverage`. Memerlukan Claude Code v2.1.199 atau lebih baru.

3453* `verdict`: ditetapkan ketika pass verify berjalan; tidak ada pada review inline-only.3529* `verdict`: ditetapkan ketika lulus verifikasi berjalan; tidak ada pada tinjauan inline-only.

3454* `outcome`: ditetapkan hanya ketika melaporkan kembali setelah menerapkan perbaikan.3530* `outcome`: ditetapkan hanya ketika melaporkan kembali setelah menerapkan perbaikan.

3455 3531 

3456<h3 id="artifact">3532<h3 id="artifact">


3476};3552};

3477```3553```

3478 3554 

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

3480 3556 

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

3482 3558 

3483Lewatkan `"list"` untuk menghitung artifact yang diterbitkan pengguna; hanya `limit` dan `scope` yang dapat menemaninya. `scope` default ke `"mine"`, yang membuat daftar artifact yang dimiliki pengguna; `"shared"` membuat daftar artifact yang dibagikan orang lain kepada pengguna, dan `"all"` membuat daftar keduanya.3559Lewatkan `"list"` untuk menghitung artefak yang diterbitkan pengguna; hanya `limit` dan `scope` yang dapat menemaninya. `scope` default ke `"mine"`, yang mencantumkan artefak yang dimiliki pengguna; `"shared"` mencantumkan artefak yang dibagikan orang lain kepada pengguna, dan `"all"` mencantumkan keduanya.

3484 3560 

3485* `capabilities`: kemampuan runtime yang digunakan halaman yang diterbitkan, dikunci berdasarkan nama kemampuan, seperti [connector yang dapat dipanggil halaman](/docs/id/artifacts#pull-live-data-with-mcp-connectors). Layanan artifact memvalidasi deklarasi dan menolak publish yang menamai kemampuan yang tidak dapat digunakan akun atau memberikan satu config yang tidak valid. Lewatkan `{}` untuk menghapus deklarasi yang disimpan, dan hilangkan bidang pada redeploy untuk menyimpannya. Memerlukan Agent SDK v0.3.235 atau yang lebih baru.3561* `capabilities`: kemampuan runtime yang digunakan halaman yang diterbitkan, dikunci berdasarkan nama kemampuan, seperti [konektor yang dapat dipanggil halaman](/docs/id/artifacts#pull-live-data-with-mcp-connectors). Layanan artefak memvalidasi deklarasi dan menolak publikasi yang menamai kemampuan yang tidak dapat digunakan akun atau memberikan satu konfigurasi yang tidak valid. Lewatkan `{}` untuk menghapus deklarasi yang disimpan, dan hilangkan bidang pada redeploy untuk menyimpannya. Memerlukan Agent SDK v0.3.235 atau lebih baru.

3486* `contract`: versi runtime yang dijalankan halaman yang diterbitkan. Hilangkan untuk menyimpan versi artifact saat ini, lewatkan `"latest"` untuk upgrade, atau lewatkan versi spesifik untuk pin atau rollback. Memerlukan Agent SDK v0.3.235 atau yang lebih baru.3562* `contract`: versi runtime yang dijalankan halaman yang diterbitkan. Hilangkan untuk menyimpan versi artefak saat ini, lewatkan `"latest"` untuk upgrade, atau lewatkan versi tertentu untuk pin atau rollback. Memerlukan Agent SDK v0.3.235 atau lebih baru.

3487 3563 

3488Tipe dieksport, tetapi tool dimatikan secara default dalam sesi Agent SDK. Penerbitan juga memerlukan setiap kondisi dalam [tabel ketersediaan artifact](/docs/id/artifacts#availability), yang sesi yang diautentikasi dengan kunci API tidak memenuhi.3564Jenis diekspor, tetapi tool dimatikan secara default dalam sesi Agent SDK. Publikasi juga memerlukan setiap kondisi dalam [tabel ketersediaan artefak](/docs/id/artifacts#availability), yang sesi yang diautentikasi dengan kunci API tidak memenuhi.

3489 3565 

3490<h3 id="projects">3566<h3 id="projects">

3491 Projects3567 Projects


3510};3586};

3511```3587```

3512 3588 

3513Membaca dan menulis Project claude.ai yang dilampirkan ke sesi. Mengirim berdasarkan `method`:3589Membaca dan menulis Proyek claude.ai yang dilampirkan ke sesi. Mengirim pada `method`:

3514 3590 

3515* `project_info`: mengembalikan metadata project dan daftar doc.3591* `project_info`: mengembalikan metadata proyek dan daftar doc.

3516* `project_read`: membaca satu doc berdasarkan `path`.3592* `project_read`: membaca satu doc berdasarkan `path`.

3517* `project_search`: menanyakan basis pengetahuan project dengan `query`. `n` membatasi hit dan default ke 5.3593* `project_search`: menanyakan basis pengetahuan proyek dengan `query`. `n` membatasi hit dan default ke `5`.

3518* `project_write`: membuat atau mengganti doc di `path` dari tepat satu dari `content`, yang membawa teks inline, atau `local_path`, yang menamai file di dalam direktori kerja. `present_to_user: true` menandai doc yang ditulis sebagai deliverable yang perlu dilihat pengguna.3594* `project_write`: membuat atau mengganti doc di `path` dari tepat satu dari `content`, yang membawa teks inline, atau `local_path`, yang menamai file di dalam direktori kerja. `present_to_user: true` menandai doc yang ditulis sebagai deliverable yang perlu dilihat pengguna.

3519* `project_delete`: menghapus doc berdasarkan `path`.3595* `project_delete`: menghapus doc berdasarkan `path`.

3520 3596 


3531};3607};

3532```3608```

3533 3609 

3534Membuat daftar anak langsung dari sumber daya direktori pada server MCP. Hanya dapat digunakan terhadap server yang telah mendeklarasikan dukungan untuk listing direktori; listing tidak rekursif. Listing direktori tidak diaktifkan di setiap sesi: ketika dimatikan, panggilan mengembalikan daftar `resources` kosong dan bidang `error` melaporkan bahwa listing direktori tidak diaktifkan.3610Mencantumkan anak langsung dari sumber daya direktori pada server MCP. Hanya dapat digunakan terhadap server yang telah mendeklarasikan dukungan untuk daftar direktori; daftar tidak rekursif. Daftar direktori tidak diaktifkan di setiap sesi: ketika dimatikan, panggilan mengembalikan daftar `resources` kosong dan bidang `error` melaporkan bahwa daftar direktori tidak diaktifkan.

3535 3611 

3536<h3 id="refreshmcptools">3612<h3 id="refreshmcptools">

3537 RefreshMcpTools3613 RefreshMcpTools


3545};3621};

3546```3622```

3547 3623 

3548Menanyakan ulang daftar tool dari server MCP yang terhubung dan menerapkan perubahan apa pun. Tipe dieksport, tetapi Claude Code mendaftarkan tool hanya ketika Anda mengatur `CLAUDE_CODE_ENABLE_REFRESH_MCP_TOOLS=1` dalam [opsi `env`](#options), dan hanya dalam sesi dengan setidaknya satu server MCP. Memerlukan Claude Code v2.1.211 atau yang lebih baru.3624Menanyakan ulang daftar tool server MCP yang terhubung dan menerapkan perubahan apa pun. Jenis diekspor, tetapi Claude Code mendaftarkan tool hanya ketika Anda mengatur `CLAUDE_CODE_ENABLE_REFRESH_MCP_TOOLS=1` dalam [opsi `env`](#options), dan hanya dalam sesi dengan setidaknya satu server MCP. Memerlukan Claude Code v2.1.211 atau lebih baru.

3549 3625 

3550<h3 id="showonboardingrolepicker">3626<h3 id="showonboardingrolepicker">

3551 ShowOnboardingRolePicker3627 ShowOnboardingRolePicker


3557type ShowOnboardingRolePickerInput = {};3633type ShowOnboardingRolePickerInput = {};

3558```3634```

3559 3635 

3560Merender baris chip role-picker yang dapat diklik selama onboarding Cowork sehingga pengguna dapat memilih peran mereka dan mendapatkan plugin yang cocok diinstal. Tidak memerlukan argumen; daftar peran ditentukan oleh klien. Panggilan memblokir sampai pengguna merespons.3636Merender baris chip pemilih peran yang dapat diklik selama onboarding Cowork sehingga pengguna dapat memilih peran mereka dan mendapatkan plugin yang cocok diinstal. Tidak memerlukan argumen; daftar peran ditentukan oleh klien. Panggilan memblokir sampai pengguna merespons.

3561 3637 

3562<h3 id="mcpinput">3638<h3 id="mcpinput">

3563 McpInput3639 McpInput


3571};3647};

3572```3648```

3573 3649 

3574Argumen tool MCP adalah objek terbuka: setiap server mendefinisikan parameter sendirinya, jadi tipe tidak menempatkan batasan pada nama bidang atau nilai. Konsultasikan skema tool server sendiri untuk bidang yang diterima tool tertentu.3650Argumen tool MCP adalah objek terbuka: setiap server mendefinisikan parameternya sendiri, jadi jenis tidak menempatkan batasan pada nama bidang atau nilai. Konsultasikan skema tool server sendiri untuk bidang yang diterima tool tertentu.

3575 3651 

3576<h2 id="tool-output-types">3652<h2 id="tool-output-types">

3577 Tipe Output Tool3653 Tipe Output Tool


4884| `description` | `string` | Deskripsi tentang kapan menggunakan agen ini |4960| `description` | `string` | Deskripsi tentang kapan menggunakan agen ini |

4885| `model` | `string \| undefined` | Model yang digunakan agen ini: alias atau ID model, atau `'inherit'` untuk model parent. Ketika `undefined`, Claude Code memilih model dalam [urutan model subagen](/docs/id/sub-agents#choose-a-model) |4961| `model` | `string \| undefined` | Model yang digunakan agen ini: alias atau ID model, atau `'inherit'` untuk model parent. Ketika `undefined`, Claude Code memilih model dalam [urutan model subagen](/docs/id/sub-agents#choose-a-model) |

4886 4962 

4963<h3 id="mcpserverprovenance">

4964 `McpServerProvenance`

4965</h3>

4966 

4967Server MCP yang melayani tool `mcp__*`, dan tempat asal definisi server itu. Input hook [`PreToolUse`](#pretoolusehookinput), `PostToolUse`, `PostToolUseFailure`, `PermissionRequest`, dan `PermissionDenied` membawanya sebagai `mcp_server`, dan opsi [`CanUseTool`](#canusetool) membawanya sebagai `mcpServer`. Keduanya menghilangkannya untuk tool yang tidak berasal dari server MCP.

4968 

4969```typescript theme={null}

4970type McpServerProvenance = {

4971 name: string;

4972 source: string;

4973};

4974```

4975 

4976| Field | Tipe | Deskripsi |

4977| :------- | :------- | :----------------------------------------------------------------------------------------------------------- |

4978| `name` | `string` | Nama yang didaftarkan server, nilai yang sama yang dilaporkan [`mcpServerStatus()`](#query-object) untuk itu |

4979| `source` | `string` | Tempat asal definisi server: `sdk`, `plugin`, atau cakupan konfigurasi |

4980 

4981`source` mengambil salah satu nilai berikut. Set terbuka, jadi perlakukan nilai yang tidak Anda kenali sebagai sumber yang dikonfigurasi, tidak pernah sebagai `sdk`:

4982 

4983* **`sdk`**: server dalam proses yang didaftarkan aplikasi Anda. Hanya aplikasi host SDK yang dapat mendaftarkan satu, jadi server yang dikonfigurasi tidak pernah melaporkan `sdk`, apa pun namanya.

4984* **`plugin`**: server yang disediakan [plugin](/docs/id/agent-sdk/plugins). `name` adalah bentuk `plugin:<plugin-name>:<server-name>` yang bersifat scoped seperti yang dijelaskan di bawah [server MCP yang disediakan plugin](/docs/id/mcp#plugin-provided-mcp-servers).

4985* **Cakupan konfigurasi**: `user`, `project`, `local`, `dynamic`, `managed`, `enterprise`, `claudeai`, atau `agent`. Server `.mcp.json` melaporkan `project`, dan [cakupan instalasi MCP](/docs/id/mcp#mcp-installation-scopes) mendefinisikan `local`, `project`, dan `user`. Server yang diteruskan aplikasi Anda dalam opsi [`mcpServers`](#options), selain server SDK dalam proses, melaporkan `dynamic`.

4986 

4987Dasarkan keputusan kepercayaan pada `source`, bukan pada `name` atau awalan nama tool `mcp__<server>__`. Untuk sumber apa pun selain `sdk`, `name` adalah teks yang tidak dipercaya: escape sebelum ditampilkan.

4988 

4989`McpServerProvenance` dan field yang membawanya memerlukan Agent SDK v0.3.274 atau lebih baru.

4990 

4887<h3 id="mcpserverstatus">4991<h3 id="mcpserverstatus">

4888 `McpServerStatus`4992 `McpServerStatus`

4889</h3>4993</h3>


4901 error?: string;5005 error?: string;

4902 config?: McpServerStatusConfig;5006 config?: McpServerStatusConfig;

4903 scope?: string;5007 scope?: string;

5008 source?: string;

4904 tools?: {5009 tools?: {

4905 name: string;5010 name: string;

4906 description?: string;5011 description?: string;


4913};5018};

4914```5019```

4915 5020 

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

5022 

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

4917 `McpServerStatusConfig`5024 `McpServerStatusConfig`

4918</h3>5025</h3>


5660| :-------------------------- | :---------------------------------------------------- | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |5767| :-------------------------- | :---------------------------------------------------- | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

5664| `excludedCommands` | `string[]` | `[]` | Perintah yang selalu bypass pembatasan sandbox (misalnya, `['docker']`). Ini berjalan unsandboxed secara otomatis tanpa keterlibatan model |5771| `excludedCommands` | `string[]` | `[]` | Perintah yang selalu bypass pembatasan sandbox (misalnya, `['docker']`). Ini berjalan unsandboxed secara otomatis tanpa keterlibatan model |

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

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

Details

12 Untuk bermigrasi, gunakan [API `query()`](/docs/id/agent-sdk/typescript) dan [opsi sesi](/docs/id/agent-sdk/sessions) yang diterimanya. Lewatkan `AsyncIterable<SDKUserMessage>` untuk percakapan multi-turn, atau `options.resume` untuk melanjutkan sesi yang disimpan. Halaman ini disimpan untuk referensi jika Anda mempertahankan kode pada Agent SDK 0.2.x atau lebih awal.12 Untuk bermigrasi, gunakan [API `query()`](/docs/id/agent-sdk/typescript) dan [opsi sesi](/docs/id/agent-sdk/sessions) yang diterimanya. Lewatkan `AsyncIterable<SDKUserMessage>` untuk percakapan multi-turn, atau `options.resume` untuk melanjutkan sesi yang disimpan. Halaman ini disimpan untuk referensi jika Anda mempertahankan kode pada Agent SDK 0.2.x atau lebih awal.

13</Warning>13</Warning>

14 14 

15V2 adalah API sesi eksperimental yang menghilangkan kebutuhan untuk async generators dan koordinasi yield. Alih-alih mengelola status generator di seluruh turn, setiap turn adalah siklus `send()`/`stream()` terpisah. Permukaan API berkurang menjadi tiga konsep:15V2 adalah API sesi eksperimental yang menghilangkan kebutuhan untuk async generators dan koordinasi yield. Alih-alih mengelola status generator di seluruh turn, setiap turn adalah siklus `send()`/`stream()` terpisah. Permukaan API berkurang menjadi membuat sesi, mengirim pesan, dan streaming respons:

16 16 

17* `createSession()` / `resumeSession()`: Mulai atau lanjutkan percakapan17* `createSession()` / `resumeSession()`: Mulai atau lanjutkan percakapan

18* `session.send()`: Kirim pesan18* `session.send()`: Kirim pesan

Details

555Input berisi pertanyaan yang dihasilkan Claude dalam array `questions`. Setiap pertanyaan memiliki bidang-bidang ini:555Input berisi pertanyaan yang dihasilkan Claude dalam array `questions`. Setiap pertanyaan memiliki bidang-bidang ini:

556 556 

557| Bidang | Deskripsi |557| Bidang | Deskripsi |

558| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |558| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |

559| `question` | Teks pertanyaan lengkap untuk ditampilkan |559| `question` | Teks pertanyaan lengkap untuk ditampilkan |

560| `header` | Label pendek untuk pertanyaan (maks 12 karakter) |560| `header` | Label pendek untuk pertanyaan (maks 12 karakter) |

561| `options` | Array 2-4 pilihan, masing-masing dengan `label` dan `description`. TypeScript: secara opsional `preview` (lihat [di bawah](#option-previews-typescript)) |561| `options` | Array 2-4 pilihan, masing-masing dengan `label` dan `description`. TypeScript: secara opsional `preview`. Lihat [Pratinjau opsi](#option-previews-typescript). |

562| `multiSelect` | Jika `true`, pengguna dapat memilih beberapa opsi |562| `multiSelect` | Jika `true`, pengguna dapat memilih beberapa opsi |

563 563 

564Struktur yang diterima callback Anda:564Struktur yang diterima callback Anda:

agent-teams.md +5 −1

Details

120 `tmux` memiliki keterbatasan yang diketahui pada sistem operasi tertentu dan secara tradisional bekerja paling baik di macOS. Menggunakan `tmux -CC` di iTerm2 adalah entrypoint yang disarankan ke `tmux`.120 `tmux` memiliki keterbatasan yang diketahui pada sistem operasi tertentu dan secara tradisional bekerja paling baik di macOS. Menggunakan `tmux -CC` di iTerm2 adalah entrypoint yang disarankan ke `tmux`.

121</Note>121</Note>

122 122 

123Default adalah `"in-process"`. Sebelum v2.1.179 default adalah `"auto"`, jadi session yang ditingkatkan yang sebelumnya membuka split panes sekarang tetap dalam satu terminal kecuali Anda menetapkan mode secara eksplisit. Atur `"auto"` untuk mengaktifkan split panes ketika Anda sudah berjalan di dalam session tmux, atau ketika terminal Anda adalah iTerm2 dengan CLI `it2` yang terinstal, jatuh kembali ke in-process sebaliknya. Pengaturan `"tmux"` mengaktifkan mode split-pane dan auto-detects apakah akan menggunakan tmux atau iTerm2 berdasarkan terminal Anda.123Default adalah `"in-process"`. Atur `"auto"` untuk mengaktifkan split panes ketika Anda sudah berjalan di dalam session tmux, atau ketika terminal Anda adalah iTerm2 dengan CLI `it2` yang terinstal, jatuh kembali ke in-process sebaliknya. Pengaturan `"tmux"` mengaktifkan mode split-pane dan auto-detects apakah akan menggunakan tmux atau iTerm2 berdasarkan terminal Anda.

124 124 

125Mulai dari v2.1.186, atur `"iterm2"` untuk menggunakan iTerm2 native split panes secara eksplisit. Mode ini memerlukan [`it2` CLI](https://github.com/mkusaka/it2) dan menampilkan error dengan perintah install jika `it2` hilang. Prompt setup yang menawarkan untuk menginstal `it2` atau beralih ke tmux muncul di bawah `"auto"` atau `"tmux"` ketika terminal Anda adalah iTerm2 dan tmux tersedia sebagai fallback.125Mulai dari v2.1.186, atur `"iterm2"` untuk menggunakan iTerm2 native split panes secara eksplisit. Mode ini memerlukan [`it2` CLI](https://github.com/mkusaka/it2) dan menampilkan error dengan perintah install jika `it2` hilang. Prompt setup yang menawarkan untuk menginstal `it2` atau beralih ke tmux muncul di bawah `"auto"` atau `"tmux"` ketika terminal Anda adalah iTerm2 dan tmux tersedia sebagai fallback.

126 126 


310* **`skills`**: Claude Code tidak menerapkan `skills` definition ke rekan tim dalam mode tampilan apa pun. Rekan tim memuat skills dari pengaturan proyek dan pengguna Anda.310* **`skills`**: Claude Code tidak menerapkan `skills` definition ke rekan tim dalam mode tampilan apa pun. Rekan tim memuat skills dari pengaturan proyek dan pengguna Anda.

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

312 312 

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

314 

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

316 

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

314 Izin318 Izin

315</h3>319</h3>

agent-view.md +203 −127

Details

16 16 

17Ketika Anda ingin bekerja lebih langsung di sesi agen mana pun, lampirkan ke baris untuk memasuki percakapan lengkap.17Ketika Anda ingin bekerja lebih langsung di sesi agen mana pun, lampirkan ke baris untuk memasuki percakapan lengkap.

18 18 

19Untuk membandingkan tampilan agen dengan subagen, tim agen, dan worktrees, lihat [Jalankan agen secara paralel](/docs/id/agents).19Untuk membandingkan tampilan agen dengan subagen, tim agen, dan worktrees, lihat [Jalankan agen secara paralel](/docs/id/agents). Tampilan agen menjalankan sesi di mesin Anda dan Anda mengirim masing-masing; untuk membuat Claude memulai dan melacak sesi paralel di cloud dari satu percakapan, lihat [Projects](/docs/id/claude-projects).

20 20 

21<Note>21<Note>

22 Tampilan agen adalah pratinjau penelitian. Antarmuka dan pintasan keyboard mungkin berubah seiring dengan evolusi fitur.22 Tampilan agen adalah pratinjau penelitian. Antarmuka dan pintasan keyboard mungkin berubah seiring dengan evolusi fitur.


133 133 

134Judul tab terminal menunjukkan jumlah menunggu-masukan saat tampilan agen terbuka: `2 awaiting input · claude agents` ketika sesi membutuhkan masukan, atau `claude agents` ketika tidak ada.134Judul tab terminal menunjukkan jumlah menunggu-masukan saat tampilan agen terbuka: `2 awaiting input · claude agents` ketika sesi membutuhkan masukan, atau `claude agents` ketika tidak ada.

135 135 

136Untuk membaca status sesi dari skrip atau program lain, gunakan [`claude agents --json`](#read-session-state-from-a-script) daripada file di bawah `~/.claude/jobs/`.

137 

136Saat tampilan agen terbuka, Claude Code juga mengirim notifikasi melalui [saluran notifikasi terminal](/docs/id/terminal-config#get-a-terminal-bell-or-notification) yang dikonfigurasi ketika sesi latar belakang lokal mulai membutuhkan masukan Anda, selesai, atau gagal. Sesi yang berjalan sesuai jadwal, seperti sesi [`/loop`](/docs/id/scheduled-tasks), hanya memberitahu ketika mereka membutuhkan masukan Anda. Notifikasi menggunakan pengaturan [`preferredNotifChannel`](/docs/id/settings-reference#preferrednotifchannel) yang sama dengan sisa Claude Code dan menjalankan hook [`Notification`](/docs/id/hooks#notification) dengan tipe `agent_needs_input` atau `agent_completed`.138Saat tampilan agen terbuka, Claude Code juga mengirim notifikasi melalui [saluran notifikasi terminal](/docs/id/terminal-config#get-a-terminal-bell-or-notification) yang dikonfigurasi ketika sesi latar belakang lokal mulai membutuhkan masukan Anda, selesai, atau gagal. Sesi yang berjalan sesuai jadwal, seperti sesi [`/loop`](/docs/id/scheduled-tasks), hanya memberitahu ketika mereka membutuhkan masukan Anda. Notifikasi menggunakan pengaturan [`preferredNotifChannel`](/docs/id/settings-reference#preferrednotifchannel) yang sama dengan sisa Claude Code dan menjalankan hook [`Notification`](/docs/id/hooks#notification) dengan tipe `agent_needs_input` atau `agent_completed`.

137 139 

138Sesi latar belakang tidak memerlukan terminal apa pun yang terbuka untuk terus bekerja. [Proses supervisor](#the-supervisor-process) terpisah menjalankannya, jadi Anda dapat menutup tampilan agen, menutup shell, atau memulai sesi interaktif baru dan pekerjaan yang dikirim terus berlanjut.140Sesi latar belakang tidak memerlukan terminal apa pun yang terbuka untuk terus bekerja. [Proses supervisor](#the-supervisor-process) terpisah menjalankannya, jadi Anda dapat menutup tampilan agen, menutup shell, atau memulai sesi interaktif baru dan pekerjaan yang dikirim terus berlanjut.


220 222 

221Tekan `←` pada prompt kosong, atau jalankan `/exit`, untuk melepaskan dan kembali ke tampilan agen, apakah Anda membuka sesi dari tampilan agen atau dengan `claude attach <id>` dari shell Anda.223Tekan `←` pada prompt kosong, atau jalankan `/exit`, untuk melepaskan dan kembali ke tampilan agen, apakah Anda membuka sesi dari tampilan agen atau dengan `claude attach <id>` dari shell Anda.

222 224 

225`←` juga melepaskan saat overlay [`/btw`](/docs/id/interactive-mode#side-questions-with-%2Fbtw) terbuka. Memerlukan Claude Code v2.1.257 atau lebih baru. Pertanyaan samping yang masih menjawab terus berjalan saat Anda pergi. Lain kali Anda melampirkan, overlay dibuka kembali dengannya, atau dengan jawabannya.

226 

223Di Windows, jika Anda menekan `←` dalam sekitar setengah detik setelah melampirkan, Claude Code menunjukkan `Ambiguous ←, press again to detach`, karena dalam jendela itu terminal dapat mengirimkan ulang tekan dari sebelum Anda melampirkan. Tekan `←` lagi untuk melepaskan.227Di Windows, jika Anda menekan `←` dalam sekitar setengah detik setelah melampirkan, Claude Code menunjukkan `Ambiguous ←, press again to detach`, karena dalam jendela itu terminal dapat mengirimkan ulang tekan dari sebelum Anda melampirkan. Tekan `←` lagi untuk melepaskan.

224 228 

225`Ctrl+Z` juga melepaskan tetapi kembali ke tempat Anda memulai: tampilan agen jika Anda melampirkan dari sana, atau shell Anda jika Anda menjalankan `claude attach`. Gunakan `Ctrl+Z` ketika dialog memiliki fokus dan tidak merespons `←`.229`Ctrl+Z` juga melepaskan tetapi kembali ke tempat Anda memulai: tampilan agen jika Anda melampirkan dari sana, atau shell Anda jika Anda menjalankan `claude attach`. Gunakan `Ctrl+Z` ketika dialog memiliki fokus dan tidak merespons `←`.


330| `Ctrl+C` | Hapus input; tekan dua kali untuk keluar |334| `Ctrl+C` | Hapus input; tekan dua kali untuk keluar |

331| `?` | Tampilkan semua pintasan |335| `?` | Tampilkan semua pintasan |

332 336 

337`Ctrl+S`, `Ctrl+T`, dan `Ctrl+G` mengikuti [`keybindings.json`](/docs/id/keybindings) Anda. Ikat ulang atau lepas ikat `Ctrl+S` dan `Ctrl+T` dengan tindakan `agents:switchView` dan `agents:togglePin` dalam konteks [`Agents`](/docs/id/keybindings#agents-actions), dan `Ctrl+G` melalui pengikatan `chat:externalEditor` konteks `Chat`. Pintasan lain dalam tabel tidak dapat diikat ulang.

338 

333<h2 id="dispatch-new-agents">339<h2 id="dispatch-new-agents">

334 Kirim agen baru340 Dispatch new agents

335</h2>341</h2>

336 342 

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

338 344 

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

340 Dari tampilan agen346 From agent view

341</h3>347</h3>

342 348 

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

344 350 

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

346 352 

347Tempel gambar ke dalam prompt untuk menyertakan tangkapan layar atau diagram dengan tugas.353Tempel gambar ke dalam prompt untuk menyertakan tangkapan layar atau diagram dengan tugas.

348 354 

349Teks yang ditempel lebih panjang dari 800 karakter atau lebih dari tiga baris runtuh menjadi placeholder `[Pasted text #N]` sehingga input tetap pada satu baris; teks lengkap dikirim ketika Anda mengirim. Untuk meninjau atau mengedit teks yang runtuh sebelum mengirim, tempel teks yang sama lagi dan placeholder berkembang kembali ke dalam input.355Teks yang ditempel lebih panjang dari 800 karakter atau lebih dari tiga baris runtuh menjadi placeholder `[Pasted text #N]` sehingga input tetap pada satu baris; teks lengkap dikirim ketika Anda mengirim. Untuk meninjau atau mengedit teks yang runtuh sebelum mengirim, tempel teks yang sama lagi dan placeholder akan berkembang kembali ke dalam input.

350 356 

351Awali atau sebutkan bagian dari prompt untuk mengontrol bagaimana sesi dimulai:357Awali atau sebutkan bagian dari prompt untuk mengontrol cara sesi dimulai:

352 358 

353| Input | Efek |359| Input | Efek |

354| :------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- |360| :------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

355| `<agent-name> <prompt>` | Jika kata pertama cocok dengan nama [subagent](/docs/id/sub-agents) kustom, subagent itu berjalan sebagai agen utama sesi dengan konfigurasi dari frontmatter-nya |361| `<agent-name> <prompt>` | Jika kata pertama cocok dengan nama [subagent](/docs/id/sub-agents) kustom, subagent itu berjalan sebagai agen utama sesi dengan konfigurasi dari frontmatter-nya |

356| `@<agent-name>` | Sebutkan subagent kustom di mana saja dalam prompt untuk menjalankannya sebagai agen utama |362| `@<agent-name>` | Sebutkan subagent kustom di mana saja dalam prompt untuk menjalankannya sebagai agen utama |

357| `@<repo>` | Sebutkan repositori untuk menjalankan sesi di sana. Lihat [Kirim ke direktori tertentu](#dispatch-to-a-specific-directory) untuk repositori mana yang terdaftar |363| `@<repo>` | Sebutkan repositori untuk menjalankan sesi di sana. Lihat [Dispatch to a specific directory](#dispatch-to-a-specific-directory) untuk repositori mana yang terdaftar |

358| `/<command>` | Sarankan [skills](/docs/id/skills) dan [commands](/docs/id/commands) untuk dikirim sebagai prompt |364| `/<command>` | Sarankan [skills](/docs/id/skills) dan [commands](/docs/id/commands) untuk dikirim sebagai prompt |

359| `! <command>` | Jalankan perintah shell sebagai pekerjaan latar belakang alih-alih memulai sesi Claude. Pekerjaan muncul sebagai baris yang dapat Anda lampirkan, tonton, dan lepaskan |365| `! <command>` | Jalankan perintah shell sebagai pekerjaan latar belakang alih-alih memulai sesi Claude. Pekerjaan muncul sebagai baris yang dapat Anda lampirkan, tonton, dan lepaskan |

360| `#<number>` atau URL permintaan tarik atau gabung | Jika sesi sudah bekerja pada permintaan tarik atau gabung itu, Claude Code memilih barisnya alih-alih mengirim sesi baru |366| `#<number>` atau URL permintaan tarik atau penggabungan | Jika sesi sudah bekerja pada permintaan tarik atau permintaan penggabungan itu, Claude Code memilih barisnya alih-alih mengirim sesi baru |

361 367 

362Serangkaian kecil perintah berjalan dalam tampilan agen itu sendiri alih-alih mengirim:368Serangkaian kecil perintah berjalan di agent view itu sendiri alih-alih mengirim:

363 369 

364* `/exit` dan `/quit` menutup tampilan agen370* `/exit` dan `/quit` menutup agent view

365* `/logout` menandatangani Anda keluar371* `/logout` menandatangani Anda keluar

366* `/model` menetapkan [model pengiriman](#set-the-model)372* `/model` menetapkan [model pengiriman](#set-the-model)

367* `/login` membuka dialog masuk sehingga Anda dapat masuk lagi tanpa melampirkan ke sesi373* `/login` membuka dialog masuk sehingga Anda dapat masuk lagi tanpa melampirkan ke sesi

368* Bare `/resume`, atau aliasnya `/continue`, membuka pemilih sesi masa lalu repositori untuk [membawa satu kembali](#organize-the-list) sebagai sesi latar belakang. Memerlukan Claude Code v2.1.212 atau lebih baru374* Bare `/resume`, atau alias `/continue` miliknya, membuka pemilih sesi masa lalu repositori untuk [membawa satu kembali](#organize-the-list) sebagai sesi latar belakang. Memerlukan Claude Code v2.1.212 atau lebih baru

369 375 

370Skills, perintah Anda sendiri, dan built-in yang memperluas prompt seperti `/init` dikirim ke sesi latar belakang baru sebagai prompt pertamanya. Perintah built-in lainnya menampilkan petunjuk `attach to a session to run it` sebagai gantinya. Semua yang Anda ketik tetap berada dalam input di sebelah petunjuk sehingga Anda dapat mengeditnya.376Skills, perintah Anda sendiri, dan built-in yang memperluas prompt seperti `/init` dikirim ke sesi latar belakang baru sebagai prompt pertama mereka. Perintah built-in lainnya menunjukkan petunjuk `attach to a session to run it` sebagai gantinya. Semua yang Anda ketik tetap berada di input di sebelah petunjuk sehingga Anda dapat mengeditnya.

371 377 

372Mengemas tugas berulang sebagai [skill](/docs/id/skills) memungkinkan Anda memulai alur kerja yang sama dari tampilan agen berulang kali tanpa mengetik ulang prompt.378Mengemas tugas berulang sebagai [skill](/docs/id/skills) memungkinkan Anda memulai alur kerja yang sama dari agent view berulang kali tanpa mengetik ulang prompt.

373 379 

374Ketika `@name` yang sama cocok dengan subagent dan repositori saudara, subagent memiliki prioritas. Kecocokan kata pertama tanpa `@` juga berlaku, jadi prompt yang dimulai dengan salah satu nama subagent Anda mengirim subagent itu daripada memperlakukan kata sebagai teks biasa. Gunakan bentuk `@` ketika Anda ingin eksplisit, atau mulai prompt dengan kata berbeda untuk menghindari kecocokan.380Ketika `@name` yang sama cocok dengan subagent dan repositori saudara, subagent mengambil prioritas. Kecocokan kata pertama bare juga berlaku, jadi prompt yang kebetulan dimulai dengan salah satu nama subagent Anda mengirim subagent itu daripada memperlakukan kata sebagai teks biasa. Gunakan bentuk `@` ketika Anda ingin eksplisit, atau mulai prompt dengan kata yang berbeda untuk menghindari kecocokan.

375 381 

376<h4 id="dispatch-to-a-specific-directory">382<h4 id="dispatch-to-a-specific-directory">

377 Kirim ke direktori tertentu383 Dispatch to a specific directory

378</h4>384</h4>

379 385 

380Sesi baru berjalan di direktori tempat Anda membuka tampilan agen. Untuk menargetkan direktori berbeda, gunakan salah satu dari ini:386Sesi baru berjalan di direktori tempat Anda membuka agent view. Untuk menargetkan direktori yang berbeda, gunakan salah satu dari ini:

381 387 

382* Buka `claude agents` di direktori itu.388* Buka `claude agents` di direktori itu.

383* Buka `claude agents` di direktori induk dan sebutkan repositori anak dengan `@<repo>` dalam prompt. Mengetik `@` mencantumkan target ini:389* Buka `claude agents` di direktori induk dan sebutkan repositori anak dengan `@<repo>` dalam prompt. Mengetik `@` mencantumkan target ini:

384 390 

385 * Repositori Git satu level di bawah direktori peluncuran391 * Repositori Git satu level di bawah direktori peluncuran

386 * [Git worktrees](/docs/id/worktrees) terdaftar dari repositori yang Anda luncurkan dari yang berada di dalam pohon direktorinya, seperti yang Claude buat di bawah `.claude/worktrees/`, diberi label dengan cabang yang diperiksa. Worktrees yang ditambahkan di luar repositori, seperti dengan `git worktree add ../feature`, tidak terdaftar392 * [git worktrees](/docs/id/worktrees) terdaftar dari repositori yang Anda luncurkan yang berada di dalam pohon direktorinya, seperti yang dibuat Claude di bawah `.claude/worktrees/`, diberi label dengan cabang yang diperiksa. Worktrees yang ditambahkan di luar repositori, seperti dengan `git worktree add ../feature`, tidak terdaftar

387 * Direktori apa pun yang sudah memiliki sesi dalam daftar393 * Direktori apa pun yang sudah memiliki sesi dalam daftar

388 394 

389 Direktori yang namanya berisi spasi tidak terdaftar.395 Direktori yang namanya berisi spasi tidak terdaftar.

390* Dari shell, `cd` ke direktori dan jalankan `claude --bg "<prompt>"`.396* Dari shell, `cd` ke dalam direktori dan jalankan `claude --bg "<prompt>"`.

391 397 

392Ketika tampilan agen dikelompokkan berdasarkan direktori, pengiriman mengirim prompt ke direktori baris yang dipilih, sehingga Anda dapat memilih grup dan mengirim ke dalamnya tanpa mengetik ulang jalur.398Ketika agent view dikelompokkan berdasarkan direktori, pengiriman mengirim prompt ke direktori baris yang dipilih, sehingga Anda dapat memilih grup dan mengirim ke dalamnya tanpa mengetik ulang jalur.

393 399 

394<h3 id="from-inside-a-session">400<h3 id="from-inside-a-session">

395 Dari dalam sesi401 From inside a session

396</h3>402</h3>

397 403 

398Dua perintah memindahkan pekerjaan dari sesi yang Anda masuki ke latar belakang: `/background` mengirim percakapan saat ini ke sana dan membebaskan terminal Anda, dan `/fork` mengirim salinan sementara Anda terus bekerja di mana Anda berada.404Dua perintah memindahkan pekerjaan dari sesi yang Anda masuki ke latar belakang: `/background` mengirim percakapan saat ini ke sana dan membebaskan terminal Anda, dan `/fork` mengirim salinan sementara Anda terus bekerja di mana Anda berada.

399 405 

400<h4 id="send-the-session-to-the-background">406<h4 id="send-the-session-to-the-background">

401 Kirim sesi ke latar belakang407 Send the session to the background

402</h4>408</h4>

403 409 

404Jalankan `/background` atau aliasnya `/bg` untuk memindahkan percakapan saat ini ke sesi latar belakang. Berikan prompt seperti `/bg run the test suite and fix any failures` untuk memberikan satu instruksi lagi terlebih dahulu. Jika Claude sedang merespons ketika Anda menjalankan `/bg`, respons berlanjut dalam sesi latar belakang.410Jalankan `/background` atau alias `/bg` untuk memindahkan percakapan saat ini ke sesi latar belakang. Berikan prompt seperti `/bg run the test suite and fix any failures` untuk memberikan satu instruksi lagi terlebih dahulu. Jika Claude merespons ketika Anda menjalankan `/bg`, respons berlanjut dalam sesi latar belakang.

405 411 

406Keluar dari sesi yang masih memiliki pekerjaan latar belakang yang berjalan, seperti subagent, perintah shell latar belakang, alur kerja, atau [monitor](/docs/id/tools-reference#monitor-tool), menampilkan dialog `Background work is running` alih-alih berhenti segera. Pilih `Move to background and exit` untuk melepaskan sesi dengan cara yang sama seperti `/background` dan kembali ke shell Anda. Opsi tidak ditampilkan ketika tampilan agen [dimatikan](#turn-off-agent-view).412Keluar dari sesi yang masih memiliki pekerjaan latar belakang yang berjalan, seperti subagents, perintah shell latar belakang, alur kerja, atau [monitors](/docs/id/tools-reference#monitor-tool), menunjukkan dialog `Background work is running` alih-alih berhenti segera. Pilih `Move to background and exit` untuk mengirim sesi dengan cara yang sama `/background` lakukan dan kembali ke shell Anda. Opsi tidak ditampilkan ketika agent view [dimatikan](#turn-off-agent-view).

407 413 

408Jika sesi latar belakang dalam daftar sudah memiliki nama percakapan, Claude Code memberi nomor pada nama baris baru, seperti `my-session (2)`, dan membiarkan nama baris yang ada sendirian. Untuk mengganti nama baris baru, pilih dalam tampilan agen dan tekan `Ctrl+R`.414Jika sesi latar belakang dalam daftar sudah memiliki nama percakapan, Claude Code memberi nomor nama baris baru, seperti `my-session (2)`, dan membiarkan nama baris yang ada sendirian. Untuk mengganti nama baris baru, pilih di agent view dan tekan `Ctrl+R`.

409 415 

410<h4 id="copy-the-session-with-/fork">416<h4 id="copy-the-session-with-/fork">

411 Salin sesi dengan /fork417 Copy the session with /fork

412</h4>418</h4>

413 419 

414Jalankan `/fork` untuk menyalin percakapan saat ini ke sesi latar belakang baru sementara yang asli terus berjalan. Salinan dimulai dengan semua yang ada dalam percakapan hingga saat itu; lihat poin di bawah untuk tempat salinan berjalan. Salinan juga membawa model, mode izin, tingkat upaya, dan direktori atau hibah izin "jangan tanya lagi" apa pun yang Anda tambahkan selama sesi. Salinan muncul sebagai barisnya sendiri dalam tampilan agen.420Jalankan `/fork` untuk menyalin percakapan saat ini ke sesi latar belakang baru sementara yang asli terus berjalan. Salinan dimulai dengan semua yang ada dalam percakapan hingga saat itu; lihat poin di bawah untuk tempat salinan berjalan. Ini juga membawa model, mode izin, tingkat upaya, dan direktori atau hibah izin "jangan tanya lagi" apa pun yang Anda tambahkan selama sesi. Salinan muncul sebagai barisnya sendiri di agent view.

415 421 

416Setelah fork, dua percakapan independen: tidak ada yang dilakukan salinan memasuki percakapan asli dengan sendirinya, meskipun dalam sesi di mana [pengiriman lintas sesi](/docs/id/cross-session-messaging) diaktifkan, Claude sesi mana pun dapat secara eksplisit mengirim pesan ke yang lain.422Setelah fork, dua percakapan independen: tidak ada yang dilakukan salinan memasuki percakapan asli dengan sendirinya, meskipun dalam sesi di mana [cross-session messaging](/docs/id/cross-session-messaging) diaktifkan, sesi Claude mana pun dapat secara eksplisit mengirim pesan ke yang lain.

417 423 

418Menyalin sesi memerlukan Claude Code v2.1.212 atau lebih baru; pada v2.1.161 melalui v2.1.211, `/fork` memulai [subagent yang di-fork](/docs/id/sub-agents#fork-the-current-conversation) sebagai gantinya, yang sekarang `/subtask`. Ketika [tampilan agen dimatikan](#turn-off-agent-view), `/fork` mempertahankan perilaku subagent yang di-fork dan `/subtask` tidak tersedia.424Menyalin sesi memerlukan Claude Code v2.1.212 atau lebih baru; pada v2.1.161 melalui v2.1.211, `/fork` memulai [forked subagent](/docs/id/sub-agents#fork-the-current-conversation) sebagai gantinya, yang sekarang `/subtask`. Ketika [agent view dimatikan](#turn-off-agent-view), `/fork` mempertahankan perilaku subagent yang di-fork dan `/subtask` tidak tersedia.

419 425 

420Berikan prompt seperti `/fork open a draft pull request with the work so far` dan salinan mulai bekerja padanya segera. Tanpa prompt salinan menunggu instruksi pertamanya: pilih barisnya dalam `claude agents` dan tekan `Space` untuk mengirim satu, atau jalankan `claude attach <id>`. Baris yang dipilih menampilkan `space to send it a prompt` sementara menunggu.426Berikan prompt seperti `/fork open a draft pull request with the work so far` dan salinan mulai bekerja padanya segera. Tanpa prompt, salinan menunggu instruksi pertamanya: pilih barisnya di `claude agents` dan tekan `Space` untuk mengirim satu, atau jalankan `claude attach <id>`. Baris yang dipilih menunjukkan `space to send it a prompt` sementara menunggu.

421 427 

422Konfirmasi `/fork` adalah satu baris yang menunjukkan status salinan, seperti `session running`, nama baris tampilan agen-nya, dan ID sesinya untuk `claude attach`. Klik nama untuk beralih ke salinan: sesi ini pindah ke latar belakang, sama seperti menekan `←`, dan tampilan agen membuka sesi salinan.428Konfirmasi `/fork` adalah satu baris yang menunjukkan status salinan, seperti `session running`, nama baris agent-view-nya, dan ID sesinya untuk `claude attach`. Klik nama untuk beralih ke salinan: sesi ini pindah ke latar belakang, sama seperti menekan `←`, dan agent view membuka sesi salinan.

423 429 

424Kecuali ketika salinan [mengedit di tempat](#how-file-edits-are-isolated), Claude Code menginstruksikannya untuk membuat worktree miliknya sendiri sebelum membuat perubahan kode. Di luar repositori git, hanya salinan yang dipindahkan keluar dari worktree yang dibuat hook mendapat instruksi; tanpa [`WorktreeCreate` hook](/docs/id/hooks#worktreecreate), salinan mengedit di tempat. Salinan yang dipindahkan keluar dari worktree Anda juga diberitahu untuk tidak pernah mengedit, menjalankan perintah di, atau memasuki worktree itu, apa pun pengaturan isolasi.430Kecuali ketika salinan [mengedit di tempat](#how-file-edits-are-isolated), Claude Code menginstruksikannya untuk membuat worktree miliknya sendiri sebelum membuat perubahan kode. Di luar repositori git, hanya salinan yang dipindahkan keluar dari worktree yang dibuat hook yang mendapat instruksi; tanpa [`WorktreeCreate` hook](/docs/id/hooks#worktreecreate), salinan mengedit di tempat. Salinan yang dipindahkan keluar dari worktree Anda juga diberitahu untuk tidak pernah mengedit, menjalankan perintah di, atau memasuki worktree itu, apa pun pengaturan isolasi.

425 431 

426Tempat salinan dimulai tergantung pada tempat sesi saat ini berjalan:432Tempat salinan dimulai tergantung di mana sesi saat ini berjalan:

427 433 

428* Seperti sesi yang dikirim apa pun, salinan [pindah ke worktree miliknya sendiri sebelum mengedit file](#how-file-edits-are-isolated). Dalam hal ini konfirmasi tidak menyebutkan tempat salinan berjalan.434* Seperti sesi yang dikirim apa pun, salinan [bergerak ke worktree miliknya sendiri sebelum mengedit file](#how-file-edits-are-isolated). Dalam hal ini konfirmasi tidak menyebutkan tempat salinan berjalan.

429* Ketika sesi Anda pindah ke [worktree](/docs/id/worktrees) tertaut setelah dimulai, salinan dimulai kembali di mana sesi berada sebelum pindah dan, kecuali [mengedit di tempat](#how-file-edits-are-isolated), membuat perubahan kodenya dalam worktree miliknya sendiri di sana. Ketika worktree Anda diperiksa pada cabang, instruksi itu juga memberitahu salinan yang tugasnya dibangun di atas pekerjaan Anda untuk mendasarkan cabang barunya pada milik Anda, karena cabang Anda tetap diperiksa dalam worktree Anda. Konfirmasi berakhir dengan `runs in the origin tree`.435* Ketika sesi Anda pindah ke [worktree](/docs/id/worktrees) tertaut setelah dimulai, salinan dimulai kembali di mana sesi berada sebelum pindah dan, kecuali [mengedit di tempat](#how-file-edits-are-isolated), membuat perubahan kodenya di worktree miliknya sendiri di sana. Ketika worktree Anda diperiksa pada cabang, instruksi itu juga memberitahu salinan yang tugasnya dibangun di atas pekerjaan Anda untuk mendasarkan cabang barunya pada milik Anda, karena cabang Anda tetap diperiksa di worktree Anda. Konfirmasi berakhir dengan `runs in the origin tree`.

430* Ketika Anda meluncurkan sesi di dalam worktree tertaut dari repositori yang memiliki pohon kerja utama, salinan dimulai dalam pohon kerja utama itu, dengan aturan worktree-milik-sendiri yang sama tetapi tanpa instruksi cabang. Konfirmasi berakhir dengan `runs in the origin tree` di sini juga.436* Ketika Anda meluncurkan sesi di dalam worktree tertaut dari repositori yang memiliki pohon kerja utama, salinan dimulai di pohon kerja utama itu, dengan aturan worktree-of-its-own yang sama tetapi tidak ada instruksi cabang. Konfirmasi berakhir dengan `runs in the origin tree` di sini juga.

431* Sesi yang diluncurkan di dalam worktree dari tata letak repositori bare tidak memiliki pohon kerja utama untuk kembali, jadi salinan tetap di mana ia berada, dan konfirmasi berakhir dengan `edits this checkout`. Catatan yang sama muncul ketika isolasi worktree [dimatikan](#how-file-edits-are-isolated) dalam sesi yang tidak berada di dalam worktree tertaut, karena salinan kemudian mengedit file yang Anda buka.437* Sesi yang diluncurkan di dalam worktree dari tata letak repositori bare tidak memiliki pohon kerja utama untuk kembali, jadi salinan tetap di mana ia berada, dan konfirmasi berakhir dengan `edits this checkout`. Catatan yang sama muncul ketika isolasi worktree [dimatikan](#how-file-edits-are-isolated) dalam sesi yang tidak berada di dalam worktree tertaut, karena salinan kemudian mengedit file yang Anda buka.

432 438 

433Sesi yang dimulai dengan bendera peluncuran yang tidak akan diwarisi salinan, seperti prompt sistem yang diganti atau allowlist `--tools`, tidak dapat di-fork; Claude Code mengatakan demikian alih-alih membuat salinan sebagian. Sesi yang dikirim dari tampilan agen di-fork secara normal: salinan diluncurkan dengan [definisi agen](/docs/id/sub-agents) dan instruksi yang ditambahkan yang sama seperti sesi yang berasal darinya.439Sesi yang dimulai dengan bendera peluncuran yang tidak akan diwariskan salinan, seperti prompt sistem yang diganti atau allowlist `--tools`, tidak dapat di-fork; Claude Code mengatakan demikian alih-alih membuat salinan sebagian. Sesi yang dikirim dari agent view fork secara normal: salinan diluncurkan dengan [definisi agen](/docs/id/sub-agents) dan instruksi yang ditambahkan yang sama seperti sesi yang berasal darinya.

434 440 

435<h4 id="what-carries-over-when-you-background">441<h4 id="what-carries-over-when-you-background">

436 Apa yang dibawa ketika Anda melepaskan ke latar belakang442 What carries over when you background

437</h4>443</h4>

438 444 

439Melepaskan ke latar belakang memulai proses segar yang dilanjutkan dari percakapan yang disimpan, dan pekerjaan yang sedang berlangsung berpindah ke sana: menjalankan perintah shell latar belakang, subagent yang dilepaskan ke latar belakang, alur kerja dinamis, tugas terjadwal yang Anda buat dengan [`/loop`](/docs/id/scheduled-tasks), dan [balasan otomatis Claude ke komentar artefak](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own) semuanya dibawa dan terus berjalan di sana. Subagent bergerak bersama dengan semua yang dimulainya, jadi hanya dibawa ketika semua pekerjaan itu dapat berpindah juga. Untuk menghentikan pekerjaan yang sedang berlangsung alih-alih membawanya, atur variabel lingkungan [`CLAUDE_DISABLE_ADOPT=1`](/docs/id/env-vars#variables); Claude Code kemudian meminta Anda untuk mengonfirmasi sebelum melepaskan.445Backgrounding memulai proses segar yang dilanjutkan dari percakapan yang disimpan, dan pekerjaan yang sedang berlangsung pindah ke sana: menjalankan perintah shell latar belakang, subagents yang di-background, alur kerja dinamis, tugas terjadwal yang Anda buat dengan [`/loop`](/docs/id/scheduled-tasks), dan [balasan otomatis Claude terhadap komentar artefak](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own) semuanya terbawa dan terus berjalan di sana. Subagent bergerak bersama dengan semua yang dimulainya, jadi ia hanya terbawa ketika semua pekerjaan itu dapat pindah juga. Untuk menghentikan pekerjaan yang sedang berlangsung alih-alih membawanya, atur variabel lingkungan [`CLAUDE_DISABLE_ADOPT=1`](/docs/id/env-vars#variables); Claude Code kemudian meminta Anda untuk mengonfirmasi sebelum backgrounding.

440 446 

441Ketika [alur kerja dinamis](/docs/id/workflows) masih memiliki subagent yang berjalan, Claude Code bertanya sebelum melepaskan dengan dialog `Background this session?`, yang mengatakan berapa banyak subagent yang akan dimulai ulang. Pilih `Stay` untuk membiarkan mereka selesai terlebih dahulu. Jika Anda mengonfirmasi, Claude Code memutar ulang jalankan dalam sesi latar belakang: subagent yang masih berjalan dimulai dari awal, jadi token yang mereka gunakan sejauh ini dihabiskan lagi. Lihat [Lanjutkan setelah jeda](/docs/id/workflows#resume-after-a-pause) untuk subagent mana yang menyelesaikan mengembalikan hasil yang disimpan dan mana yang berjalan lagi.447Ketika [alur kerja dinamis](/docs/id/workflows) masih memiliki subagents yang berjalan, Claude Code meminta sebelum backgrounding dengan dialog `Background this session?`, yang mengatakan berapa banyak subagents yang akan dimulai ulang. Pilih `Stay` untuk membiarkan mereka selesai terlebih dahulu. Jika Anda mengonfirmasi, Claude Code memutar ulang jalankan dalam sesi latar belakang: subagents yang masih berjalan dimulai dari awal, jadi token yang mereka gunakan sejauh ini dihabiskan lagi. Lihat [Resume after a pause](/docs/id/workflows#resume-after-a-pause) untuk subagents mana yang mengembalikan hasil yang disimpan dan mana yang berjalan lagi.

442 448 

443Claude Code menghentikan pekerjaan yang tidak dapat dibawa, seperti [monitor](/docs/id/tools-reference#monitor-tool) yang sedang berjalan, dan menghentikan subagent yang dilepaskan ke latar belakang yang memiliki monitor bersama dengannya. Ketika ada pekerjaan seperti itu yang sedang berjalan, Claude Code menampilkan dialog `Background this session?` sehingga Anda dapat mengonfirmasi sebelum dihentikan.449Claude Code menghentikan pekerjaan yang tidak dapat terbawa, seperti [monitor](/docs/id/tools-reference#monitor-tool) yang berjalan, dan menghentikan subagent yang di-background yang memiliki monitor bersama dengannya. Ketika pekerjaan apa pun seperti itu berjalan, Claude Code menunjukkan dialog `Background this session?` sehingga Anda dapat mengonfirmasi sebelum menghentikan pekerjaan.

444 450 

445Setelah berada di latar belakang, sesi dapat memulai subagent, monitor, dan perintah latar belakang baru, dan yang tersebut terus berjalan di seluruh detach dan reattach berikutnya.451Setelah berada di latar belakang, sesi dapat memulai subagents, monitors, dan perintah latar belakang baru, dan yang tersebut terus berjalan di seluruh detach dan reattach nanti.

446 452 

447Bendera konfigurasi dari peluncuran asli dibawa ke sesi yang dilepaskan ke latar belakang, sehingga server MCP, pengaturan, dan model fallback-nya tetap berlaku:453Bendera konfigurasi dari peluncuran asli terbawa ke sesi yang di-background, jadi server MCP, pengaturan, dan model fallback-nya tetap berlaku:

448 454 

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

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


453* `--fallback-model`459* `--fallback-model`

454* `--allow-dangerously-skip-permissions`460* `--allow-dangerously-skip-permissions`

455 461 

456Direktori yang Anda tambahkan selama sesi dengan [`/add-dir`](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) juga dibawa. Membawa `--allow-dangerously-skip-permissions` membuat `bypassPermissions` dapat dijangkau dalam sesi yang dilepaskan ke latar belakang, tetapi tidak memberikan apa pun yang baru: mode masih memerlukan penerimaan interaktif satu kali yang dijelaskan dalam [Mode izin, model, dan upaya](#permission-mode-model-and-effort).462Direktori yang Anda tambahkan selama sesi dengan [`/add-dir`](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) juga terbawa. Membawa `--allow-dangerously-skip-permissions` membuat `bypassPermissions` dapat dijangkau dalam sesi yang di-background, tetapi tidak memberikan apa pun yang baru: mode masih memerlukan penerimaan interaktif satu kali yang dijelaskan dalam [Permission mode, model, and effort](#permission-mode-model-and-effort).

457 463 

458<h3 id="from-your-shell">464<h3 id="from-your-shell">

459 Dari shell Anda465 From your shell

460</h3>466</h3>

461 467 

462Berikan `--bg` atau bentuk panjangnya `--background` untuk memulai sesi yang langsung masuk ke latar belakang:468Berikan `--bg` atau bentuk panjangnya `--background` untuk memulai sesi yang langsung masuk ke latar belakang:


467 473 

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

469 475 

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

471 477 

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

473claude --agent code-reviewer --bg "address review comments on PR 1234"479claude --agent code-reviewer --bg "address review comments on PR 1234"

474```480```

475 481 

476Jika nama tidak cocok dengan subagent Anda, peluncuran gagal: Claude Code mencetak peringatan `no agent named` dan masih melaporkan sesi sebagai dilepaskan ke latar belakang, tetapi sesi keluar segera dengan kesalahan `--agent '<name>' not found`.482Jika nama tidak cocok dengan salah satu subagents Anda, peluncuran gagal: Claude Code mencetak peringatan `no agent named` dan masih melaporkan sesi sebagai backgrounded, tetapi sesi keluar segera dengan kesalahan `--agent '<name>' not found`.

477 483 

478Ketika sesi yang dilepaskan ke latar belakang nanti dilanjutkan atau dimulai ulang, Claude Code memulihkan prompt sistem agen dan pembatasan alat. Sesi mencari direktorinya sendiri untuk agen terlebih dahulu, asalkan Anda telah [mempercayai ruang kerja itu](/docs/id/permissions#project-allow-rules-and-workspace-trust), jadi agen yang dibatasi proyek masih dimuat ketika sesi dilanjutkan dari direktori lain. Jika agen tidak lagi ada, sesi berlanjut dengan alat default dan prompt sistem dan transkrip-nya terbuka dengan [peringatan yang menyebutkan agen](/docs/id/errors#session-agent-no-longer-available).484Ketika sesi yang di-background nanti dilanjutkan atau dimulai ulang, Claude Code memulihkan agen dan pembatasan alatnya; untuk prompt sistemnya, lihat [System prompt flags in resumed conversations](/docs/id/cli-reference#system-prompt-flags-in-resumed-conversations). Ini mencari direktorinya sendiri untuk agen terlebih dahulu, asalkan Anda telah [mempercayai ruang kerja itu](/docs/id/permissions#project-allow-rules-and-workspace-trust), jadi agen yang bersifat proyek masih dimuat ketika sesi dilanjutkan dari direktori lain. Jika agen tidak lagi ada, sesi berlanjut dengan alat default dan transkrip-nya terbuka dengan [peringatan yang menyebutkan agen](/docs/id/errors#session-agent-no-longer-available).

479 485 

480Berikan `--name` untuk menetapkan nama tampilan sesi dalam tampilan agen alih-alih yang dibuat secara otomatis:486Untuk melanjutkan percakapan yang ada di latar belakang, berikan ID sesi lengkapnya dengan `--resume`:

487 

488```bash theme={null}

489claude --resume 1f0e2c9a-6d0b-4c11-9f39-2a77c1d4e8b5 --bg "pick up where you left off and finish the migration"

490```

491 

492Pada Claude Code v2.1.257 atau lebih baru, Claude Code baik melanjutkan sesi itu di bawah ID yang sama, atau memulai salinan di bawah ID baru dan mencetak baris `note:` yang menjelaskan mengapa ia tidak dapat melanjutkan di tempat. Ketika sesi berlanjut di tempat, `claude agents` menunjukkan satu baris untuknya.

493 

494Ketika Anda menggabungkan `--bg` dengan `--continue`, bare `--resume`, atau `--resume` dengan nama atau jalur file, Claude Code selalu memulai salinan seperti itu. Tambahkan `--fork-session` untuk memulai salinan dengan sengaja, tanpa catatan.

495 

496Berikan `--name` untuk menetapkan nama tampilan sesi dalam agent view alih-alih yang dihasilkan otomatis:

481 497 

482```bash theme={null}498```bash theme={null}

483claude --bg --name "flaky-test-fix" "investigate the flaky SettingsChangeDetector test"499claude --bg --name "flaky-test-fix" "investigate the flaky SettingsChangeDetector test"

484```500```

485 501 

486Setelah melepaskan ke latar belakang, Claude mencetak ID pendek sesi dan perintah untuk mengelolanya. Ketika layanan yang menghosting sesi latar belakang belum berjalan, `--bg` mungkin pertama kali mencetak `Starting background service…` di atas output ini. Ketika Anda memberikan `--name`, nama muncul setelah ID pendek:502Setelah backgrounding, Claude mencetak ID pendek sesi dan perintah untuk mengelolanya. Ketika layanan yang menghosting sesi latar belakang belum berjalan, `--bg` mungkin pertama kali mencetak `Starting background service…` di atas output ini. Ketika Anda memberikan `--name`, nama muncul setelah ID pendek:

487 503 

488```text theme={null}504```text theme={null}

489backgrounded · 7c5dcf5d · flaky-test-fix505backgrounded · 7c5dcf5d · flaky-test-fix


494```510```

495 511 

496<h4 id="run-a-shell-command">512<h4 id="run-a-shell-command">

497 Jalankan perintah shell513 Run a shell command

498</h4>514</h4>

499 515 

500Untuk menjalankan perintah shell sebagai pekerjaan latar belakang alih-alih sesi Claude, berikan `--exec`. Contoh berikut menjalankan `pytest -x` sebagai pekerjaan latar belakang:516Untuk menjalankan perintah shell sebagai pekerjaan latar belakang alih-alih sesi Claude, berikan `--exec`. Contoh berikut menjalankan `pytest -x` sebagai pekerjaan latar belakang:


503claude --bg --exec 'pytest -x'519claude --bg --exec 'pytest -x'

504```520```

505 521 

506Dari tampilan agen, kirim pekerjaan jenis yang sama dengan mengetik `!` sebagai karakter pertama dari input pengiriman: `!` ditampilkan sebagai awalan, semua yang setelahnya adalah perintah, dan `Enter` memulai pekerjaan.522Dari agent view, kirim jenis pekerjaan yang sama dengan mengetik `!` sebagai karakter pertama dari input pengiriman: `!` menunjukkan sebagai awalan, semuanya setelahnya adalah perintah, dan `Enter` memulai pekerjaan.

507 523 

508Perintah berjalan sebagai pekerjaan yang didukung PTY dan muncul sebagai baris dalam tampilan agen, dengan baris output terbaru sebagai statusnya. Pekerjaan shell menjalankan perintah sebagai pengganti Claude, jadi tidak ada model yang dipanggil dan output tidak dikirim ke sesi apa pun.524Perintah berjalan sebagai pekerjaan yang didukung PTY dan muncul sebagai baris di agent view, dengan baris output terbaru sebagai statusnya. Pekerjaan shell menjalankan perintah sebagai pengganti Claude, jadi tidak ada model yang dipanggil dan output tidak dikirim ke sesi apa pun.

509 525 

510Untuk melihat output, lampirkan ke baris, tekan `Space` untuk mengintip tanpa melampirkan, atau jalankan `claude logs <id>` dari shell Anda. Output yang ditangkap tetap berada dalam memori dan tidak ditulis ke disk. Baris dan outputnya dibersihkan secara otomatis sekitar lima menit setelah perintah keluar, jadi bacalah sebelum itu jika Anda memerlukan hasilnya.526Untuk melihat output, lampirkan ke baris, tekan `Space` untuk mengintip tanpa melampirkan, atau jalankan `claude logs <id>` dari shell Anda. Output yang ditangkap tetap dalam memori dan tidak ditulis ke disk. Baris dan outputnya dibersihkan secara otomatis sekitar lima menit setelah perintah keluar, jadi bacalah sebelum itu jika Anda memerlukan hasilnya.

511 527 

512<h3 id="how-file-edits-are-isolated">528<h3 id="how-file-edits-are-isolated">

513 Bagaimana pengeditan file diisolasi529 How file edits are isolated

514</h3>530</h3>

515 531 

516Setiap sesi latar belakang, baik dimulai dari tampilan agen, `/bg`, atau `claude --bg`, dimulai di direktori kerja Anda. Sebelum mengedit file, Claude memindahkan sesi ke [git worktree](/docs/id/worktrees) yang terisolasi di bawah `.claude/worktrees/`, sehingga sesi paralel dapat membaca checkout yang sama tetapi masing-masing menulis ke miliknya sendiri. Setelah sesi berada dalam worktree-nya, Claude Code [memberlakukan isolasi worktree](/docs/id/worktrees#how-claude-code-enforces-isolation) untuk sesi dan untuk subagent apa pun yang dihasilkannya.532Setiap sesi latar belakang, baik dimulai dari agent view, `/bg`, atau `claude --bg`, dimulai di direktori kerja Anda. Sebelum mengedit file, Claude memindahkan sesi ke [git worktree](/docs/id/worktrees) terisolasi di bawah `.claude/worktrees/`, sehingga sesi paralel dapat membaca checkout yang sama tetapi masing-masing menulis ke miliknya sendiri. Setelah sesi berada di worktree-nya, Claude Code [menegakkan isolasi worktree](/docs/id/worktrees#how-claude-code-enforces-isolation) untuk sesi dan untuk subagents apa pun yang dihasilkannya.

517 533 

518Claude melewati worktree ketika:534Claude melewati worktree ketika:

519 535 

520* Sesi sudah berada di dalam linked git worktree, baik Claude membuatnya di bawah `.claude/worktrees/` atau Anda membuatnya dengan `git worktree add` di tempat lain536* Sesi sudah berada di dalam git worktree tertaut, baik Claude membuatnya di bawah `.claude/worktrees/` atau Anda membuatnya dengan `git worktree add` di tempat lain

521* File yang Claude edit berada di dalam linked git worktree, seperti yang dibuat sesi atau subagent-nya dengan `git worktree add`537* File yang Claude edit berada di dalam git worktree tertaut, seperti yang dibuat sesi atau subagent-nya dengan `git worktree add`

522* Direktori kerja bukan repositori git dan tidak ada [`WorktreeCreate` hook](/docs/id/hooks#worktreecreate) yang dikonfigurasi538* Direktori kerja bukan repositori git dan tidak ada [`WorktreeCreate` hook](/docs/id/hooks#worktreecreate) yang dikonfigurasi

523* Penulisan berada di luar direktori kerja539* Penulisan berada di luar direktori kerja

524 540 

525Untuk mematikan isolasi worktree untuk repositori tempat git worktree tidak praktis, atur [`worktree.bgIsolation`](/docs/id/settings-reference#worktree-bgisolation) ke `"none"`. Sesi latar belakang kemudian mengedit salinan kerja Anda secara langsung tanpa pindah ke worktree terlebih dahulu. Tambahkan pengaturan ke `.claude/settings.json` proyek:541Untuk mematikan isolasi worktree untuk repositori di mana git worktrees tidak praktis, atur [`worktree.bgIsolation`](/docs/id/settings-reference#worktree-bgisolation) ke `"none"`. Sesi latar belakang kemudian mengedit salinan kerja Anda secara langsung tanpa pindah ke worktree terlebih dahulu. Tambahkan pengaturan ke `.claude/settings.json` proyek:

526 542 

527```json theme={null}543```json theme={null}

528{544{


532}548}

533```549```

534 550 

535Di luar repositori git, sesi menulis ke direktori kerja secara langsung dan tidak diisolasi satu sama lain, jadi hindari mengirim sesi paralel yang mengedit file yang sama. Jika Anda menggunakan sistem kontrol versi yang berbeda, konfigurasikan [`WorktreeCreate` hook](/docs/id/worktrees#non-git-version-control) dan Claude mengisolasi pengeditan dengan cara yang sama seperti yang dilakukannya untuk git.551Di luar repositori git, sesi menulis ke direktori kerja secara langsung dan tidak terisolasi satu sama lain, jadi hindari pengiriman sesi paralel yang mengedit file yang sama. Jika Anda menggunakan sistem kontrol versi yang berbeda, konfigurasikan [`WorktreeCreate` hook](/docs/id/worktrees#non-git-version-control) dan Claude mengisolasi edit dengan cara yang sama seperti untuk git.

536 552 

537Ketika hook gagal di direktori yang bukan repositori git, Claude melewati isolasi untuk direktori itu dan mengedit direktori kerja di tempat. Di dalam repositori git, Claude Code memblokir penulisan ke checkout bersama sampai Claude memindahkan sesi ke worktree.553Ketika hook gagal di direktori yang bukan repositori git, Claude melewati isolasi untuk direktori itu dan mengedit direktori kerja di tempat. Di dalam repositori git, Claude Code memblokir penulisan ke checkout bersama sampai Claude memindahkan sesi ke worktree.

538 554 

539Untuk menemukan jalur worktree sesi, intip sesi atau lampirkan dan periksa direktori kerjanya.555Untuk menemukan jalur worktree sesi, intip sesi atau lampirkan dan periksa direktori kerjanya.

540 556 

541[Subagent](/docs/id/sub-agents) yang sesi latar belakang hasilkan mewarisi direktori kerja sesi, jadi pengeditan filenya mendarat di worktree sesi daripada salinan kerja Anda. Untuk memberikan subagent worktree terpisah sendiri, atur [`isolation: worktree`](/docs/id/sub-agents#supported-frontmatter-fields) dalam frontmatter-nya atau berikan `isolation: "worktree"` saat menghasilkannya.557[Subagent](/docs/id/sub-agents) yang dihasilkan sesi latar belakang mewarisi direktori kerja sesi, jadi edit file-nya mendarat di worktree sesi daripada salinan kerja Anda. Untuk memberikan subagent worktree terpisah miliknya sendiri, atur [`isolation: worktree`](/docs/id/sub-agents#supported-frontmatter-fields) dalam frontmatter-nya atau berikan `isolation: "worktree"` ketika memunculkannya.

542 558 

543Ketika sesi latar belakang telah membuat perubahan kode dalam worktree Claude masuki, Claude Code menginstruksikan Claude untuk menyimpan pekerjaan sebelum selesai, sehingga bertahan jika Anda menghapus sesi dan worktree-nya:559Ketika sesi latar belakang telah membuat perubahan kode di worktree Claude masuki, Claude Code menginstruksikan Claude untuk menyimpan pekerjaan sebelum selesai, sehingga bertahan jika Anda menghapus sesi dan worktree-nya:

544 560 

545* **Komit dan dorong**: Claude melakukan komit tanpa bertanya, dan mendorong cabang ketika repositori memiliki remote.561* **Commit and push**: Claude melakukan commit tanpa bertanya, dan mendorong cabang ketika repositori memiliki remote.

546* **Draft pull request**: Claude membuka satu ketika tugas memanggilnya, dan label [`#N`](#pull-request-status) muncul di baris.562* **Draft pull request**: Claude membuka satu ketika tugas memanggilnya, dan label [`#N`](#pull-request-status) muncul di baris.

547* **Tidak pernah**: mendorong ke `main` atau `master`, force-push, dan merge.563* **Never**: mendorong ke `main` atau `master`, force-pushing, dan merging.

548* **Instruksi git Anda memiliki prioritas**: jika tugas, `CLAUDE.md`, atau [memori](/docs/id/memory) mengatakan Anda menangani komit atau push sendiri, Claude membiarkan git kepada Anda.564* **Instruksi git Anda mengambil prioritas**: jika tugas, `CLAUDE.md`, atau [memory](/docs/id/memory) mengatakan Anda menangani committing atau pushing sendiri, Claude membiarkan git untuk Anda.

549 565 

550Sesi yang mengedit checkout yang tidak mengisolasi dirinya sendiri masih bertanya sebelum melakukan komit atau beralih cabang. Ini berlaku ketika isolasi diatur ke `"none"`, ketika pergerakan worktree gagal, atau ketika sesi dimulai di dalam worktree yang sudah ada.566Sesi yang mengedit checkout yang tidak mengisolasi dirinya sendiri masih meminta sebelum committing atau switching branches. Ini berlaku ketika isolasi diatur ke `"none"`, ketika pergerakan worktree gagal, atau ketika sesi dimulai di dalam worktree yang sudah ada.

551 567 

552Apa pun tugasnya, Claude mengakhiri pekerjaan dengan laporan yang mengatakan apa yang dilakukannya dan di mana pekerjaan itu: jalur, cabang, pull request, atau jawabannya sendiri.568Apa pun tugasnya, Claude mengakhiri pekerjaan dengan laporan yang mengatakan apa yang dilakukannya dan di mana pekerjaan itu: jalur, cabang, permintaan tarik, atau jawabannya sendiri.

553 569 

554<h4 id="what-deleting-a-session-removes">570<h4 id="what-deleting-a-session-removes">

555 Apa yang dihapus menghapus sesi571 What deleting a session removes

556</h4>572</h4>

557 573 

558Hapus sesi dengan `Ctrl+X` dua kali dalam [tampilan agen](#organize-the-list) atau dengan [`claude rm`](#manage-sessions-from-the-shell). Kecuali dalam kasus yang disimpan di bawah, sesi meninggalkan daftar. Transkrip-nya tetap di mesin Anda melalui `claude --resume`, dan penghapusan bertahan restart supervisor.574Hapus sesi dengan `Ctrl+X` dua kali dalam [agent view](#organize-the-list) atau dengan [`claude rm`](#manage-sessions-from-the-shell). Kecuali dalam kasus yang disimpan di bawah, sesi meninggalkan daftar. Transkrip-nya tetap di mesin Anda melalui `claude --resume`, dan penghapusan bertahan supervisor restart.

559 575 

560Apa yang terjadi pada worktree Claude buat untuk sesi:576Apa yang terjadi pada worktree Claude buat untuk sesi:

561 577 

562* Tampilan agen menghapusnya, termasuk perubahan yang belum dikomit, jadi komit apa yang ingin Anda simpan terlebih dahulu.578* Agent view menghapusnya, termasuk perubahan yang tidak di-commit, jadi commit apa yang ingin Anda simpan terlebih dahulu.

563* `claude rm` menyimpannya, bersama dengan baris sesi, ketika memiliki perubahan yang belum dikomit.579* `claude rm` menyimpannya, bersama dengan baris sesi, ketika memiliki perubahan yang tidak di-commit.

564* Tidak ada tampilan agen atau `claude rm` yang menghapus worktree dengan komit Claude Code tidak dapat mengonfirmasi disimpan di tempat lain, atau yang digunakan atau dikunci sesi yang sedang berjalan lainnya. Claude Code menyimpan worktree dan sesi, dan memberi nama direktori yang disimpan dan alasannya.580* Baik agent view maupun `claude rm` tidak menghapus worktree yang sesi lain yang berjalan gunakan atau kunci, dan menghapus lagi tidak mengubah itu. Claude Code menyimpan worktree dan sesi, dan memberi nama direktori yang disimpan dan alasannya; di agent view, baris sesi menunjukkan `not deleted`. Tutup sesi lain, kemudian hapus lagi.

581* Ketika Anda menghapus sesi yang worktree-nya memiliki commits yang Claude Code tidak dapat konfirmasi disimpan di tempat lain, Claude Code menyimpan worktree dan sesi, dan pesan menyebutkan cabang worktree dan berapa banyak commits yang tidak didorong. Pesan juga menawarkan dua cara maju: dorong commits, atau hapus lagi untuk membuangnya.

582 

583 Commits pada remote tidak memblokir penghapusan. Begitu juga commits pada salinan lokal cabang default remote `origin` Anda, asalkan cabang itu diperiksa di checkout utama Anda, direktori repositori itu sendiri daripada worktree.

584 

585 Setelah penolakan itu, Anda memilih:

586 

587 * Untuk menyimpan commits, dorong mereka, atau gabungkan mereka ke dalam cabang default itu, kemudian hapus sesi lagi.

588 * Untuk membuangnya, hapus sesi lagi tanpa mendorong: tekan `Ctrl+X` dua kali pada barisnya di agent view, atau jalankan perintah `claude rm <id> --discard-unpushed` yang ditolak cetak. Ini menghapus sesi dan worktree bersama dengan cabangnya, membuang commits yang tidak didorong dan perubahan apa pun yang tidak di-commit.

589 

590 Ketika Anda menghapus lagi, Claude Code membuang hanya apa yang ditolak tunjukkan: jika worktree telah mendapatkan commit sejak itu, Claude Code menyimpannya lagi dan menunjukkan status yang diperbarui.

565 591 

566 Komit pada remote tidak memblokir penghapusan. Juga tidak komit pada salinan lokal cabang default remote `origin` Anda, asalkan cabang itu diperiksa dalam checkout utama Anda, direktori repositori itu sendiri daripada worktree.592 Ketika catatan sesi selesai lainnya juga menyebutkan worktree, itu tetap ketika Anda menghapus lagi; dorong commits, kemudian hapus lagi.

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

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

567 595 

568 Dalam tampilan agen, penghapusan yang ditolak menampilkan `not deleted` dengan alasan di baris sesi. Dorong komit, gabungkan ke dalam cabang default itu, atau tutup sesi lain, kemudian hapus lagi.596 * Hapus sesi lagi untuk menghapus direktori bagaimanapun, dengan menekan `Ctrl+X` dua kali pada barisnya di agent view atau menjalankan perintah `claude rm <id> --force-remove-worktree <worktree-id>` yang ditolak cetak. Claude Code menawarkan ini hanya ketika dapat mengonfirmasi direktori adalah salah satu worktrees tertaut repositori di bawah `.claude/worktrees/` tanpa perubahan yang tidak di-commit ke file yang dilacak, tidak ada repositori bersarang di dalamnya, dan tidak ada catatan sesi lain yang menyebutkannya. Cabang worktree tetap dalam repositori.

569* Worktree yang git tidak lagi mengenali, misalnya setelah `git worktree prune`, tidak memblokir penghapusan. Claude Code menghapus sesi dan meninggalkan direktori di disk.597 * Perbaiki apa yang menghalangi, seperti committing atau stashing perubahan yang tidak di-commit, menutup apa pun yang menggunakan direktori, atau memperbaiki hook, kemudian hapus sesi lagi.

598 * Hapus direktori sendiri, kemudian hapus sesi lagi.

570 599 

571Worktree yang Anda buat sendiri dan mulai sesi di dalamnya dibiarkan di tempat baik cara apa pun.600Worktree yang Anda buat sendiri dan mulai sesi di dalamnya ditinggalkan di tempat bagaimanapun.

572 601 

573Sesi yang direktori worktree-nya tidak termasuk dalam repositori git apa pun, karena repositori dihapus atau [`WorktreeCreate` hook](/docs/id/hooks#worktreecreate) membuat direktori di tempat lain, masih dapat dihapus. Sementara file tetap berada dalam direktori:602Sesi yang direktori worktree-nya tidak termasuk dalam repositori git apa pun, karena repositori dihapus atau [`WorktreeCreate` hook](/docs/id/hooks#worktreecreate) membuat direktori di tempat lain, masih dapat dihapus. Sementara file tetap dalam direktori:

574 603 

575* Tampilan agen meminta `Ctrl+X` double-press yang sama sebelum membuang mereka. Untuk direktori yang dibuat hook, jalankan [`WorktreeRemove` hook](/docs/id/hooks#worktreeremove) Anda sebagai gantinya, dan tanpa satu menolak penghapusan dan menyimpan sesi.604* Agent view meminta `Ctrl+X` double-press yang sama sebelum membuangnya. Untuk direktori yang dibuat hook, ia menjalankan [`WorktreeRemove` hook](/docs/id/hooks#worktreeremove) Anda sebagai gantinya, dan tanpa satu itu menolak penghapusan dan menyimpan sesi.

576* `claude rm` menyimpan sesi dan worktree, dan memberi nama alasannya.605* `claude rm` menyimpan sesi dan worktree, dan menyebutkan alasannya.

577 606 

578Jalur mana pun menyimpan direktori yang catatan sesi yang selesai lainnya beri nama.607Jalur mana pun menyimpan direktori yang catatan sesi selesai lainnya sebutkan.

579 608 

580<h3 id="set-the-model">609<h3 id="set-the-model">

581 Atur model610 Set the model

582</h3>611</h3>

583 612 

584Nama model yang ditampilkan di header tampilan agen adalah default pengiriman. Sesi baru yang Anda mulai dari input menggunakan model ini, yang berasal dari pengaturan [`model`](/docs/id/settings-reference#model) dalam pengaturan pengguna Anda. Atur dengan memilih model dalam pemilih [`/model`](/docs/id/model-config), atau edit pengaturan secara langsung.613Nama model yang ditampilkan di header agent view adalah default pengiriman. Sesi baru yang Anda mulai dari input menggunakan model ini, yang berasal dari pengaturan [`model`](/docs/id/settings-reference#model) dalam pengaturan pengguna Anda. Atur dengan memilih model dalam pemilih [`/model`](/docs/id/model-config), atau edit pengaturan secara langsung.

585 614 

586Untuk menimpanya untuk seluruh sesi tampilan agen, berikan `--model` saat membuka tampilan agen. Lihat [Mode izin, model, dan upaya](#permission-mode-model-and-effort).615Untuk mengganti default pengiriman untuk seluruh sesi agent view, berikan `--model` ketika membuka agent view. Lihat [Permission mode, model, and effort](#permission-mode-model-and-effort).

587 616 

588Untuk mengubah default pengiriman dari dalam tampilan agen, ketik `/model` diikuti dengan nama model dalam input pengiriman dan tekan `Enter`. Header diperbarui untuk menampilkan model itu dengan penanda `(session)`, dan sesi yang Anda kirim setelahnya menggunakannya. Ketik `/model default` untuk menghapus penimpaan dan kembali ke default pengiriman. Penimpaan ini berlangsung untuk sisa dari `claude agents` saat ini dan tidak menulis ke file pengaturan Anda. Contoh berikut mengirim satu sesi pada Opus dan yang berikutnya pada Sonnet:617Untuk mengubah default pengiriman dari dalam agent view, ketik `/model` diikuti dengan nama model dalam input pengiriman dan tekan `Enter`. Header diperbarui untuk menunjukkan model itu dengan penanda `(session)`, dan sesi yang Anda kirim setelahnya menggunakannya. Ketik `/model default` untuk menghapus penggantian dan kembali ke default pengiriman. Penggantian ini berlangsung untuk sisa jalankan `claude agents` saat ini dan tidak menulis ke file pengaturan Anda. Contoh berikut mengirim satu sesi pada Opus dan yang berikutnya pada Sonnet:

589 618 

590```text theme={null}619```text theme={null}

591/model opus620/model opus


594run the test suite623run the test suite

595```624```

596 625 

597Setiap sesi latar belakang dapat berjalan pada model berbeda. Untuk menimpanya untuk satu sesi:626Setiap sesi latar belakang dapat berjalan pada model yang berbeda. Untuk mengganti untuk satu sesi:

598 627 

599* Dari shell, berikan `--model` dengan `claude --bg`.628* Dari shell, berikan `--model` dengan `claude --bg`.

600* Lampirkan ke sesi yang berjalan dan jalankan `/model` untuk beralih: pilihan dari pemilih, atau `/model <name>` yang diketik, disimpan sebagai default Anda untuk sesi baru kecuali Anda menekan `s` dalam pemilih untuk beralih hanya sesi. Beralih hanya sesi bertahan jika sesi direspawn.629* Lampirkan ke sesi yang berjalan dan jalankan `/model` untuk beralih: pilihan dari pemilih, atau `/model <name>` yang diketik, disimpan sebagai default Anda untuk sesi baru kecuali Anda menekan `s` dalam pemilih untuk switch hanya-sesi. Switch hanya-sesi bertahan jika sesi dimulai ulang.

601* Kirim [subagent](/docs/id/sub-agents) yang frontmatter-nya menetapkan bidang `model`.630* Kirim [subagent](/docs/id/sub-agents) yang frontmatter-nya menetapkan bidang `model`.

602 631 

603<h3 id="permission-mode-model-and-effort">632<h3 id="permission-mode-model-and-effort">

604 Mode izin, model, dan upaya633 Permission mode, model, and effort

605</h3>634</h3>

606 635 

607Sesi latar belakang mengambil pengaturan, penyedia, mode izin, model, dan upaya dari tempat dan cara Anda mengirimnya. Subbagian di bawah mencakup setiap sumber, dan apa yang bertahan ketika supervisor memulai ulang sesi.636Sesi latar belakang mengambil pengaturan, penyedia, mode izin, model, dan upaya dari tempat dan cara Anda mengirimnya. Subbagian di bawah mencakup setiap sumber, dan apa yang bertahan ketika supervisor memulai ulang sesi.

608 637 

609<h4 id="settings-and-provider">638<h4 id="settings-and-provider">

610 Pengaturan dan penyedia639 Settings and provider

611</h4>640</h4>

612 641 

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

614 643 

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

616 645 

617<h4 id="llm-gateway">646<h4 id="llm-gateway">

618 Gateway LLM647 LLM gateway

619</h4>648</h4>

620 649 

621Jika Anda merutekan Claude Code melalui [gateway LLM](/docs/id/llm-gateway), letakkan variabel gateway dalam blok `env` file pengaturan daripada mengekspornya dalam shell Anda, dan sesi latar belakang membacanya dengan sisa pengaturan mereka. [Atur dalam file pengaturan](/docs/id/llm-gateway-connect#set-in-a-settings-file) menunjukkan blok dan file pengaturan mana yang digunakan untuk kredensial.650Jika Anda merutekan Claude Code melalui [LLM gateway](/docs/id/llm-gateway), letakkan variabel gateway dalam blok `env` file pengaturan daripada mengekspornya di shell Anda, dan sesi latar belakang membacanya dengan sisa pengaturan mereka. [Set in a settings file](/docs/id/llm-gateway-connect#set-in-a-settings-file) menunjukkan blok dan file pengaturan mana yang digunakan untuk kredensial.

622 651 

623Jika Anda mengekspor gateway `ANTHROPIC_BASE_URL` hanya dalam shell Anda sebagai gantinya, itu mencapai sesi latar belakang, bersama dengan `ANTHROPIC_CUSTOM_HEADERS` dan kredensial yang Anda ekspor dengannya, hanya ketika [supervisor](#the-supervisor-process) itu sendiri dimulai dari shell yang mengekspor gateway yang sama, dan hanya dalam kasus ini:652Jika Anda mengekspor gateway `ANTHROPIC_BASE_URL` hanya di shell Anda sebagai gantinya, itu mencapai sesi latar belakang, bersama dengan `ANTHROPIC_CUSTOM_HEADERS` dan kredensial yang Anda ekspor dengannya, hanya ketika [supervisor](#the-supervisor-process) itu sendiri dimulai dari shell yang mengekspor gateway yang sama, dan hanya dalam kasus ini:

624 653 

625* Anda melepaskan sesi Anda sendiri dengan `←` atau `/background`654* Anda backgrounding sesi Anda sendiri dengan `←` atau `/background`

626* Anda mengirim sesi ke direktori yang Anda masuki655* Anda mengirim sesi ke direktori yang Anda masuki

627* Anda membangunkan sesi yang dihentikan dalam direktori yang Anda masuki dengan melampirkan atau membalasnya656* Anda membangunkan sesi yang dihentikan di direktori yang Anda masuki dengan melampirkan atau membalasnya

628 657 

629Claude Code meneruskan gateway di depan penyedia cloud. Jika shell yang Anda kirim dari memilih penyedia dan mengekspor titik akhir gateway-nya dengan bendera bypass auth-nya, Claude Code meneruskan pasangan titik akhir-dan-bendera ke sesi di bawah kondisi yang berlaku untuk `ANTHROPIC_BASE_URL`, bersama dengan `ANTHROPIC_CUSTOM_HEADERS`. Misalnya, ekspor `CLAUDE_CODE_USE_VERTEX=1` dengan `ANTHROPIC_VERTEX_BASE_URL` dan `CLAUDE_CODE_SKIP_VERTEX_AUTH=1`, dan Claude Code meneruskan titik akhir dan bendera itu.658Claude Code meneruskan gateway di depan penyedia cloud. Jika shell tempat Anda mengirim memilih penyedia dan mengekspor titik akhir gateway-nya dengan bendera bypass auth-nya, Claude Code meneruskan pasangan endpoint-dan-bendera ke sesi di bawah kondisi yang berlaku untuk `ANTHROPIC_BASE_URL`, bersama dengan `ANTHROPIC_CUSTOM_HEADERS`. Misalnya, ekspor `CLAUDE_CODE_USE_VERTEX=1` dengan `ANTHROPIC_VERTEX_BASE_URL` dan `CLAUDE_CODE_SKIP_VERTEX_AUTH=1`, dan Claude Code meneruskan titik akhir dan bendera itu.

630 659 

631Claude Code menerapkan gateway yang diteruskan ke proses sesi yang berjalan hanya dan tidak pernah menulisnya ke disk.660Claude Code menerapkan gateway yang diteruskan ke proses sesi yang berjalan saja dan tidak pernah menulisnya ke disk.

632 661 

633<h4 id="permission-mode">662<h4 id="permission-mode">

634 Mode izin663 Permission mode

635</h4>664</h4>

636 665 

637[Mode izin](/docs/id/permissions) tergantung pada cara Anda memulai sesi:666[Mode izin](/docs/id/permissions) tergantung pada cara Anda memulai sesi:

638 667 

639* **Dilepaskan dengan `/bg` atau `←`**: Claude Code mempertahankan mode izin sesi yang ada, jadi sesi yang Anda alihkan ke `acceptEdits` atau `auto` tetap di sana setelah detach668* **Backgrounded dengan `/bg` atau `←`**: Claude Code menyimpan mode izin sesi yang ada, jadi yang Anda alihkan ke `acceptEdits` atau `auto` tetap di sana setelah melepas

640* **Dikirim dari tampilan agen yang Anda buka dengan `←`**: sesi baru dimulai dalam mode izin sesi yang Anda datang dari669* **Dikirim dari agent view yang Anda buka dengan `←`**: konfigurasi target sendiri datang terlebih dahulu, dan mode izin sesi yang Anda datang dari berlaku ketika tidak ada yang menetapkan satu

641* **Dikirim dari `claude agents` yang dimulai dalam shell, atau dengan `claude --bg`**: sesi baru dimulai dengan cara sesi `claude` baru di direktori itu akan, kecuali Anda mengirimnya dari tampilan agen yang Anda buka dengan [default pengiriman](#dispatch-defaults). [Mode izin mana sesi dimulai](/docs/id/permission-modes#which-mode-a-session-starts-in) mencantumkan urutan670* **Dikirim dari `claude agents` dimulai dalam shell, atau dengan `claude --bg`**: sesi baru dimulai dengan cara sesi `claude` baru di direktori itu akan, kecuali Anda mengirimnya dari agent view yang Anda buka dengan [dispatch defaults](#dispatch-defaults). [Which permission mode a session starts in](/docs/id/permission-modes#which-mode-a-session-starts-in) mencantumkan urutan

671 

672Untuk sesi yang Anda kirim dari agent view yang dibuka dengan `←`, Claude Code mengambil mode izin dari yang pertama dari ini yang berlaku:

673 

6741. [`permissions.defaultMode`](/docs/id/settings-reference#permissions-defaultmode) direktori target. Dua aturan sumber berlaku:

675 * `auto` dan `bypassPermissions` [hanya berlaku dari pengaturan yang dikelola, file `--settings`, atau `~/.claude/settings.json`](/docs/id/settings-reference#permissions-defaultmode).

676 * Claude Code menolak `defaultMode` dari `.claude/settings.json` atau `.claude/settings.local.json` proyek yang memilih mode lebih permisif daripada sesi yang Anda datang dari.

6772. Mode izin sesi yang Anda datang dari

678 

679Ketika Claude Code menolak mode sumber sebagai terlalu permisif, sumber berikutnya dalam daftar memutuskan. Misalnya, jika Anda mengirim dari sesi mode rencana ke direktori yang pengaturan yang diperiksa minta `acceptEdits`, sesi baru dimulai dalam mode rencana. Jika Anda memindahkan `defaultMode` itu ke `~/.claude/settings.json`, itu berlaku terlepas dari mode izin sesi yang Anda datang dari.

680 

681Permissiveness berjalan rencana, kemudian Manual dan `dontAsk`, kemudian `acceptEdits` dan auto, yang masing-masing menghitung sebagai lebih permisif daripada yang lain, kemudian `bypassPermissions`.

642 682 

643<h4 id="dispatch-defaults">683<h4 id="dispatch-defaults">

644 Default pengiriman684 Dispatch defaults

645</h4>685</h4>

646 686 

647Untuk menetapkan default untuk setiap sesi yang Anda kirim dari tampilan agen, berikan salah satu dari `--permission-mode`, `--model`, `--effort`, atau `--agent` saat membukanya:687Untuk menetapkan default untuk setiap sesi yang Anda kirim dari agent view, berikan salah satu dari `--permission-mode`, `--model`, `--effort`, atau `--agent` ketika membukanya:

648 688 

649```bash theme={null}689```bash theme={null}

650claude agents --permission-mode plan --model opus --effort high690claude agents --permission-mode plan --model opus --effort high


652 692 

653`--effort` di sini menerima nilai yang sama seperti [bendera `--effort` tingkat atas](/docs/id/cli-reference#cli-flags), termasuk `ultracode`.693`--effort` di sini menerima nilai yang sama seperti [bendera `--effort` tingkat atas](/docs/id/cli-reference#cli-flags), termasuk `ultracode`.

654 694 

655`--agent` menetapkan [subagent](/docs/id/sub-agents) yang digunakan ketika prompt pengiriman tidak menyebutkan satu, baik dengan `@name` atau sebagai kata pertama. Ini default ke pengaturan [`agent`](/docs/id/settings-reference#agent) jika satu diatur, jika tidak agen catch-all bawaan `claude`. Menyebutkan subagent dalam input pengiriman menimpa keduanya.695`--agent` menetapkan [subagent](/docs/id/sub-agents) yang digunakan ketika prompt pengiriman tidak menyebutkan satu, baik dengan `@name` atau sebagai kata pertama. Ini default ke pengaturan [`agent`](/docs/id/settings-reference#agent) jika satu diatur, jika tidak agen `claude` catch-all bawaan. Menyebutkan subagent dalam input pengiriman mengganti keduanya.

656 696 

657`claude agents` juga menerima `--dangerously-skip-permissions` sebagai singkatan untuk `--permission-mode bypassPermissions`, dan `--allow-dangerously-skip-permissions` untuk membuat `bypassPermissions` tersedia dalam siklus `Shift+Tab` setiap sesi yang dikirim tanpa memulai dalam mode itu. Keduanya cocok dengan [bendera CLI tingkat atas](/docs/id/cli-reference).697`claude agents` juga menerima `--dangerously-skip-permissions` sebagai singkatan untuk `--permission-mode bypassPermissions`, dan `--allow-dangerously-skip-permissions` untuk membuat `bypassPermissions` tersedia dalam siklus `Shift+Tab` setiap sesi yang dikirim tanpa memulai dalam mode itu. Keduanya cocok dengan [bendera CLI tingkat atas](/docs/id/cli-reference).

658 698 


660 700 

661Default aktif muncul di footer di bawah input pengiriman.701Default aktif muncul di footer di bawah input pengiriman.

662 702 

663Claude Code menolak `claude --bg --permission-mode bypassPermissions` sampai Anda telah menerima pengecualian bypass dengan menjalankan `claude --dangerously-skip-permissions` sekali secara interaktif, karena mode itu memungkinkan sesi yang tidak Anda tonton bertindak tanpa persetujuan. Melewatkan `--dangerously-skip-permissions` atau `--permission-mode bypassPermissions` ke `claude agents` menampilkan pengecualian yang sama ketika Anda belum menerimanya sebelumnya, dan menerima menerapkan `bypassPermissions` ke sesi yang Anda luncurkan dari tampilan. Melewatkan `--allow-dangerously-skip-permissions` menampilkan pengecualian yang sama juga, dan menerima membuat `bypassPermissions` tersedia dalam siklus `Shift+Tab` sesi tersebut tanpa memulai di dalamnya.703Claude Code menolak `claude --bg --permission-mode bypassPermissions` sampai Anda telah menerima penafian bypass dengan menjalankan `claude --dangerously-skip-permissions` sekali secara interaktif, karena mode itu memungkinkan sesi yang tidak Anda tonton bertindak tanpa persetujuan. Melewatkan `--dangerously-skip-permissions` atau `--permission-mode bypassPermissions` ke `claude agents` menunjukkan penafian yang sama ketika Anda belum menerimanya sebelumnya, dan menerima menerapkan `bypassPermissions` ke sesi yang Anda luncurkan dari tampilan. Melewatkan `--allow-dangerously-skip-permissions` menunjukkan penafian yang sama juga, dan menerima membuat `bypassPermissions` tersedia dalam siklus `Shift+Tab` sesi itu tanpa memulai mereka di dalamnya.

664 704 

665<h4 id="what-persists-across-restarts">705<h4 id="what-persists-across-restarts">

666 Apa yang bertahan di seluruh restart706 What persists across restarts

667</h4>707</h4>

668 708 

669Mode izin, model, dan upaya yang Anda pilih untuk sesi latar belakang, bersama dengan [bendera konfigurasi yang dibawanya](#what-carries-over-when-you-background), semuanya bertahan ketika supervisor kemudian [menghentikan dan memulai ulang](#the-supervisor-process) prosesnya. Sesi yang Anda luncurkan dengan `claude --bg --dangerously-skip-permissions` atau `claude --bg --permission-mode bypassPermissions` tetap dalam `bypassPermissions` setelah restart itu. Model atau upaya yang Anda ubah di tengah sesi dengan `/model` atau `/effort` juga disimpan.709Mode izin, model, dan upaya yang Anda pilih untuk sesi latar belakang, bersama dengan [bendera konfigurasi yang dibawanya](#what-carries-over-when-you-background), semuanya bertahan ketika supervisor nanti [berhenti dan memulai ulang](#the-supervisor-process) prosesnya. Sesi yang Anda luncurkan dengan `claude --bg --dangerously-skip-permissions` atau `claude --bg --permission-mode bypassPermissions` tetap dalam `bypassPermissions` setelah restart itu. Model atau upaya yang Anda ubah pertengahan sesi dengan `/model` atau `/effort` juga disimpan.

670 710 

671Jika sesi mengambil upaya dari pengaturan Anda daripada dari `--effort` atau `/effort`, Claude Code membaca pengaturan Anda lagi setiap kali memulai proses untuk sesi. Jadi ketika Anda mengedit upaya yang disimpan dalam `settings.json`, perubahan mencapai sesi yang Anda lepaskan ke latar belakang dengan `←` atau `/bg`, dan restart mereka yang lebih baru. Upaya yang disimpan adalah kunci [`effortLevel`](/docs/id/settings-reference#effortlevel) atau entri [`modelSettings`](/docs/id/settings-reference#modelsettings).711Jika sesi mengambil upayanya dari pengaturan Anda daripada dari `--effort` atau `/effort`, Claude Code membaca pengaturan Anda lagi setiap kali memulai proses untuk sesi. Setelah Anda mengedit upaya yang disimpan dalam `settings.json`, perubahan mencapai sesi yang Anda background dengan `←` atau `/bg`, dan restart mereka nanti. Upaya yang disimpan adalah kunci [`effortLevel`](/docs/id/settings-reference#effortlevel) atau entri [`modelSettings`](/docs/id/settings-reference#modelsettings).

672 712 

673Claude Code juga menyimpan nama yang Anda atur dengan [`/rename`](/docs/id/commands) atau `Ctrl+R` di seluruh restart itu, jadi Anda masih dapat menjalankan [`claude --resume <name>`](/docs/id/sessions#name-your-sessions) untuk mencapai sesi.713Claude Code juga menyimpan nama yang Anda atur dengan [`/rename`](/docs/id/commands) atau `Ctrl+R` di seluruh restart itu, jadi Anda masih dapat menjalankan [`claude --resume <name>`](/docs/id/sessions#name-your-sessions) untuk mencapai sesi.

674 714 

715Prompt yang Anda simpan dengan [`Ctrl+S`](/docs/id/interactive-mode#general-controls) saat dilampirkan disimpan dengan sesi juga. Buka kembali sesi setelah prosesnya dihentikan atau dimulai ulang, dan `Ctrl+S` memulihkan teks yang disimpan. Konten yang ditempel dalam simpanan tidak bertahan restart.

716 

675<h3 id="settings-plugins-and-mcp-servers">717<h3 id="settings-plugins-and-mcp-servers">

676 Pengaturan, plugins, dan server MCP718 Settings, plugins, and MCP servers

677</h3>719</h3>

678 720 

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

680 722 

681| Bendera | Efek |723| Bendera | Efek |

682| :----------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |724| :----------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

685| [`--plugin-dir <path>`](/docs/id/plugins) | Memuat plugin dari direktori lokal |727| [`--plugin-dir <path>`](/docs/id/plugins) | Muat plugin dari direktori lokal |

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

687| `--strict-mcp-config` | Gunakan hanya server MCP dari `--mcp-config`, abaikan konfigurasi MCP lainnya. Lihat [Kontrol eksklusif dengan managed-mcp.json](/docs/id/managed-mcp#exclusive-control-with-managed-mcp-json) untuk apa yang dilakukan bendera di bawah file MCP yang dikelola |729| `--strict-mcp-config` | Gunakan hanya server MCP dari `--mcp-config`, abaikan konfigurasi MCP lainnya. Lihat [Exclusive control with managed-mcp.json](/docs/id/managed-mcp#exclusive-control-with-managed-mcp-json) untuk apa yang dilakukan bendera di bawah file MCP yang dikelola |

688 730 

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

690 732 

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

692 734 

693Contoh berikut membuka tampilan agen dengan penimpaan pengaturan dan satu direktori tambahan:735Contoh berikut membuka agent view dengan penggantian pengaturan dan satu direktori tambahan:

694 736 

695```bash theme={null}737```bash theme={null}

696claude agents --settings ./ci-settings.json --add-dir ../shared-lib738claude agents --settings ./ci-settings.json --add-dir ../shared-lib


705Setiap sesi latar belakang memiliki ID pendek yang dapat Anda gunakan dari shell. ID dicetak ketika Anda memulai sesi dengan `claude --bg`, dan ID setiap sesi adalah nama direktorinya di bawah `~/.claude/jobs/`. Perintah-perintah ini berguna untuk scripting atau ketika Anda tidak ingin membuka tampilan agen.747Setiap sesi latar belakang memiliki ID pendek yang dapat Anda gunakan dari shell. ID dicetak ketika Anda memulai sesi dengan `claude --bg`, dan ID setiap sesi adalah nama direktorinya di bawah `~/.claude/jobs/`. Perintah-perintah ini berguna untuk scripting atau ketika Anda tidak ingin membuka tampilan agen.

706 748 

707| Perintah | Tujuan |749| Perintah | Tujuan |

708| :--------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |750| :--------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

709| `claude agents` | Buka tampilan agen |751| `claude agents` | Buka tampilan agen |

710| `claude agents --cwd <path>` | Buka tampilan agen yang dibatasi pada sesi yang dimulai di bawah `<path>` |752| `claude agents --cwd <path>` | Buka tampilan agen yang dibatasi pada sesi yang dimulai di bawah `<path>` |

711| `claude agents --json` | Cetak sesi sebagai array JSON dan keluar. Lihat [Daftar sesi sebagai JSON](#list-sessions-as-json) |753| `claude agents --json` | Cetak sesi sebagai array JSON dan keluar. Lihat [Daftar sesi sebagai JSON](#list-sessions-as-json) |


715| `claude respawn <id>` | Mulai ulang sesi, baik yang sedang berjalan maupun yang dihentikan, misalnya untuk mengambil biner Claude Code yang telah diperbarui. Sesi yang dimulai ulang melanjutkan percakapan yang disimpannya; ketika tidak ada di disk, sesi tersebut menjalankan prompt aslinya lagi sebagai percakapan baru |757| `claude respawn <id>` | Mulai ulang sesi, baik yang sedang berjalan maupun yang dihentikan, misalnya untuk mengambil biner Claude Code yang telah diperbarui. Sesi yang dimulai ulang melanjutkan percakapan yang disimpannya; ketika tidak ada di disk, sesi tersebut menjalankan prompt aslinya lagi sebagai percakapan baru |

716| `claude respawn --all` | Mulai ulang setiap sesi yang sedang berjalan, misalnya untuk memindahkan semua sesi ke biner Claude Code yang telah diperbarui sekaligus |758| `claude respawn --all` | Mulai ulang setiap sesi yang sedang berjalan, misalnya untuk memindahkan semua sesi ke biner Claude Code yang telah diperbarui sekaligus |

717| `claude rm <id>` | Hapus sesi dari daftar, bersama dengan worktree yang dibuat Claude untuk sesi tersebut ketika aman untuk dihapus; lihat [Apa yang menghapus sesi menghapus](#what-deleting-a-session-removes). Transkrip percakapan tetap berada di mesin lokal Anda dan tetap tersedia melalui `claude --resume` |759| `claude rm <id>` | Hapus sesi dari daftar, bersama dengan worktree yang dibuat Claude untuk sesi tersebut ketika aman untuk dihapus; lihat [Apa yang menghapus sesi menghapus](#what-deleting-a-session-removes). Transkrip percakapan tetap berada di mesin lokal Anda dan tetap tersedia melalui `claude --resume` |

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

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

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

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

720 764 


730| :------------------------- | :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |774| :------------------------- | :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

731| `cwd`, `kind`, `startedAt` | Selalu | Direktori kerja, `interactive` atau `background`, dan waktu mulai dalam milidetik Unix |775| `cwd`, `kind`, `startedAt` | Selalu | Direktori kerja, `interactive` atau `background`, dan waktu mulai dalam milidetik Unix |

732| `id` | Sesi latar belakang | ID pendek, dapat digunakan dengan `claude attach`, `claude logs`, dan `claude stop` |776| `id` | Sesi latar belakang | ID pendek, dapat digunakan dengan `claude attach`, `claude logs`, dan `claude stop` |

733| `state` | Sesi latar belakang | Salah satu dari `working`, `blocked`, `done`, `failed`, atau `stopped` |777| `state` | Sesi latar belakang | Salah satu dari `working`, `blocked`, `done`, `failed`, atau `stopped`. Lihat [Baca status sesi dari skrip](#read-session-state-from-a-script) untuk mengetahui apa arti setiap nilai |

734| `pid`, `status` | Saat proses masih hidup | ID proses dan status saat ini |778| `pid`, `status` | Saat proses masih hidup | ID proses dan salah satu dari `busy`, `waiting`, atau `idle` |

735| `waitingFor` | Ketika `status` adalah `waiting` | Apa sesi diblokir: `permission prompt` untuk persetujuan, `input needed` untuk pertanyaan dari Claude atau permintaan input server MCP, `sandbox request`, `worker request`, atau `dialog open` |779| `waitingFor` | Ketika `status` adalah `waiting` | Apa sesi diblokir: `permission prompt` untuk persetujuan, `input needed` untuk pertanyaan dari Claude atau permintaan input server MCP, `sandbox request`, `worker request`, atau `dialog open` |

736| `sessionId`, `name` | Ketika diatur | `sessionId` adalah UUID sesi lengkap, dapat digunakan dengan [`claude --resume`](/docs/id/sessions). Nama sesi interaktif adalah [nama tampilan defaultnya](/docs/id/sessions#name-your-sessions) sampai Anda memberi nama sesi atau menerima rencana di dalamnya |780| `sessionId`, `name` | Ketika diatur | `sessionId` adalah UUID sesi lengkap, dapat digunakan dengan [`claude --resume`](/docs/id/sessions). Nama sesi interaktif adalah [nama tampilan defaultnya](/docs/id/sessions#name-your-sessions) sampai Anda memberi nama sesi atau menerima rencana di dalamnya |

737 781 

782<h3 id="read-session-state-from-a-script">

783 Baca status sesi dari skrip

784</h3>

785 

786`claude agents --json` adalah cara yang didukung untuk membaca status sesi dari luar Claude Code, misalnya dari bilah status, penjadwal, atau sesi Claude lain yang mengawasi pekerjaan latar belakang. Poll `claude agents --json --all`, yang terus mencantumkan sesi yang prosesnya telah keluar, dan baca `state`, `status`, dan `waitingFor` setiap entri.

787 

788| `state` | Apa artinya |

789| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

790| `working` | Giliran sedang berjalan, atau sesi berada di antara langkah-langkah pekerjaan yang dijalankannya sendiri, seperti iterasi [`/loop`](/docs/id/scheduled-tasks) atau menunggu CI. `status` memberi tahu Anda apakah prosesnya `busy` sekarang |

791| `blocked` | Sesi menunggu Anda: pertanyaan yang diajukannya, keputusan izin atau sandbox, kesalahan yang hanya dapat Anda hapus seperti login yang kedaluwarsa, atau prompt pertamanya jika Anda memulainya tanpa prompt. Ketika penundaan adalah prompt terbuka dalam proses langsung, `waitingFor` menamakannya |

792| `done` | Giliran terakhir menyelesaikan apa yang Anda minta dan sesi siap untuk prompt berikutnya Anda, terlepas dari apakah prosesnya masih hidup atau tidak |

793| `failed`, `stopped` | Tugas berakhir dengan kesalahan, atau sesi dihentikan |

794 

795Sesi yang menyelesaikan gilirannya dan menunggu instruksi berikutnya Anda membaca `done`, bukan `blocked`. `blocked` selalu berarti sesi membutuhkan sesuatu dari Anda sebelum dapat melanjutkan.

796 

797File di bawah `~/.claude/jobs/<id>/` bukan antarmuka yang stabil. Nilai yang ditulis sesi atau program lain ke `state`, `detail`, `tempo`, atau `needs` diganti pada pembaruan berikutnya.

798 

799Jika Anda ingin sesi melaporkan kemajuan dengan kata-katanya sendiri, buat sesi menulis file miliknya sendiri, misalnya di bawah `$CLAUDE_JOB_DIR/tmp`, alih-alih mengedit `state.json`.

800 

738<h2 id="how-background-sessions-are-hosted">801<h2 id="how-background-sessions-are-hosted">

739 Bagaimana sesi latar belakang dihosting802 Bagaimana sesi latar belakang dihosting

740</h2>803</h2>


751 814 

752Setiap sesi adalah proses Claude Code-nya sendiri di bawah supervisor, dan apa yang terjadi pada proses itu tergantung pada status sesi:815Setiap sesi adalah proses Claude Code-nya sendiri di bawah supervisor, dan apa yang terjadi pada proses itu tergantung pada status sesi:

753 816 

754* **Bekerja, menunggu Anda, atau terhubung**: proses terus berjalan. Subagen yang berjalan, alur kerja, atau monitor dihitung sebagai bekerja.817* **Bekerja, dijeda pada permintaan izin atau dialog lainnya, atau terhubung**: proses terus berjalan. Subagen yang berjalan, alur kerja, atau monitor dihitung sebagai bekerja.

755* **Selesai dan tidak terhubung selama sekitar satu jam**: supervisor menghentikan proses untuk membebaskan sumber daya. Percakapan tetap di disk, dan lain kali Anda melampirkan atau membalas, sesi dilanjutkan dari tempat ia berhenti. Pin sesi dengan `Ctrl+T` untuk membuat prosesnya tetap berjalan saat idle.818* **Selesai atau menunggu pesan Anda berikutnya, dan tidak terhubung selama sekitar satu jam**: supervisor menghentikan proses untuk membebaskan sumber daya. Sesi yang mengakhiri giliran dengan mengajukan pertanyaan kepada Anda dihitung sebagai menunggu pesan Anda berikutnya. Percakapan tetap di disk, dan lain kali Anda melampirkan atau membalas, sesi dilanjutkan dari tempat ia berhenti. Pin sesi dengan `Ctrl+T` untuk membuat prosesnya tetap berjalan.

756* **Keluar secara tidak terduga sementara supervisor berjalan**: supervisor memulai ulang proses. Mengakhiri sesi yang Anda kirim ke latar belakang sendiri dengan `←` atau `/background`, misalnya dengan `kill`, menandainya sebagai berhenti alih-alih memulai ulangnya. Untuk sesi yang berakhir dengan shutdown, lihat [Sesi menampilkan sebagai gagal atau berhenti setelah shutdown](#sessions-show-as-failed-after-shutdown).819* **Keluar secara tidak terduga sementara supervisor berjalan**: supervisor memulai ulang proses. Mengakhiri sesi yang Anda kirim ke latar belakang sendiri dengan `←` atau `/background`, misalnya dengan `kill`, menandainya sebagai berhenti alih-alih memulai ulangnya. Untuk sesi yang berakhir dengan shutdown, lihat [Sesi menampilkan sebagai gagal atau berhenti setelah shutdown](#sessions-show-as-failed-after-shutdown).

757* **Setelah auto-update**: supervisor memulai ulang dirinya sendiri ke versi baru dan memindahkan sesi idle ke latar belakang. Sesi yang bekerja, menunggu Anda, atau terhubung tidak terganggu.820* **Setelah auto-update**: supervisor memulai ulang dirinya sendiri ke versi baru dan memindahkan sesi idle ke latar belakang. Sesi yang bekerja, menunggu Anda, atau terhubung tidak terganggu.

758 821 


767Status sesi disimpan di bawah direktori konfigurasi Claude Code Anda. Jika Anda menetapkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars), supervisor menggunakan direktori itu alih-alih `~/.claude` dan berjalan sebagai instans terpisah dengan sesinya sendiri.830Status sesi disimpan di bawah direktori konfigurasi Claude Code Anda. Jika Anda menetapkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars), supervisor menggunakan direktori itu alih-alih `~/.claude` dan berjalan sebagai instans terpisah dengan sesinya sendiri.

768 831 

769| Jalur | Isi |832| Jalur | Isi |

770| :------------------------------- | :------------------------------------------------------------------------------------------ |833| :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ |

771| `~/.claude/daemon.log` | Log supervisor |834| `~/.claude/daemon.log` | Log supervisor |

772| `~/.claude/daemon/roster.json` | Daftar sesi latar belakang yang berjalan, digunakan untuk terhubung kembali setelah restart |835| `~/.claude/daemon/roster.json` | Daftar sesi latar belakang yang berjalan, digunakan untuk terhubung kembali setelah restart |

773| `~/.claude/jobs/<id>/state.json` | Status per-sesi ditampilkan di tampilan agen |836| `~/.claude/jobs/<id>/state.json` | Status per-sesi ditampilkan di tampilan agen. Bacanya melalui [`claude agents --json`](#read-session-state-from-a-script) alih-alih mengurai file |

774| `~/.claude/jobs/<id>/tmp/` | Direktori awal per-sesi. Penulisan di sini tidak meminta izin. Dihapus ketika sesi dihapus |837| `~/.claude/jobs/<id>/tmp/` | Direktori awal per-sesi. Panggilan `Write` dan `Edit` Claude di sini tidak meminta izin. Dihapus ketika sesi dihapus |

775 838 

776Setiap sesi latar belakang memiliki variabel lingkungan `CLAUDE_JOB_DIR` yang diatur ke direktori `~/.claude/jobs/<id>` nya, jadi perintah shell yang dijalankan sesi dapat menulis file sementara ke `$CLAUDE_JOB_DIR/tmp` tanpa bertabrakan dengan sesi paralel.839Setiap sesi latar belakang memiliki variabel lingkungan `CLAUDE_JOB_DIR` yang diatur ke direktori `~/.claude/jobs/<id>` nya, jadi perintah shell yang dijalankan sesi dapat menulis file sementara ke `$CLAUDE_JOB_DIR/tmp` tanpa bertabrakan dengan sesi paralel.

777 840 


974* [Jalankan agen secara paralel](/docs/id/agents): bandingkan tampilan agen dengan subagents, tim agen, dan worktrees1037* [Jalankan agen secara paralel](/docs/id/agents): bandingkan tampilan agen dengan subagents, tim agen, dan worktrees

975* [Pesan lintas sesi](/docs/id/cross-session-messaging): biarkan sesi Anda meneruskan temuan satu sama lain1038* [Pesan lintas sesi](/docs/id/cross-session-messaging): biarkan sesi Anda meneruskan temuan satu sama lain

976* [Tim agen](/docs/id/agent-teams): koordinasikan beberapa sesi yang saling berpesan1039* [Tim agen](/docs/id/agent-teams): koordinasikan beberapa sesi yang saling berpesan

977* [Claude Code di web](/docs/id/claude-code-on-the-web): jalankan sesi di lingkungan cloud yang dikelola alih-alih secara lokal1040* [Gunakan Claude Code di cloud](/docs/id/claude-code-on-the-web): jalankan sesi di lingkungan cloud yang dikelola alih-alih secara lokal

1041* [Projects](/docs/id/claude-projects): biarkan Claude mengoordinasikan sesi cloud paralel dari satu percakapan dan beritahu Anda mana yang Anda butuhkan

978 1042 

979<h2 id="version-history">1043<h2 id="version-history">

980 Riwayat versi1044 Riwayat versi


984 1048 

985| Versi | Perubahan |1049| Versi | Perubahan |

986| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1050| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1051| v2.1.268 | Ketika [penghapusan ditolak](#what-deleting-a-session-removes) karena git atau hook `WorktreeRemove` Anda tidak dapat menghapus worktree, pesan menyebutkan penyebabnya, termasuk bagaimana hook berakhir dan awal stderr-nya. Untuk worktree yang ditautkan di bawah `.claude/worktrees/` repositori dengan tidak ada perubahan yang tidak dilakukan commit pada file yang dilacak, tidak ada repositori bersarang di dalamnya, dan tidak ada catatan sesi lain yang menyebutnya, menghapus sesi lagi menghapus direktori bagaimanapun, dari tampilan agen atau dengan `claude rm <id> --force-remove-worktree <worktree-id>`. Sebelum rilis ini, baris hanya menampilkan `worktree could not be removed (WorktreeRemove hook failed)` atau kesalahan git, stderr hook hanya pergi ke log debug, dan menghapus lagi ditolak dengan cara yang sama. |

1052| v2.1.268 | Setelah `←` pertama menampilkan `Press ← again to open agents`, atau `Press ← again to go back to agents` dalam sesi yang dilampirkan, [tekan pertama yang datang setidaknya satu detik kemudian beralih](#switch-sessions-without-leaving-the-terminal), bahkan ketika tekan yang lebih cepat di antaranya diabaikan. Sebelum rilis ini, setiap tekan yang diabaikan memulai ulang penantian, jadi menekan `←` lagi dengan kecepatan yang stabil tidak beralih sampai Anda berhenti selama lebih dari satu detik. |

1053| v2.1.260 | Ketika Anda [melepaskan sesi](#from-inside-a-session), [daftar agen](/docs/id/cross-session-messaging#see-which-sessions-claude-can-reach) sesi lain Anda menampilkan percakapan sekali, sebagai sesi latar belakangnya, dan pesan mereka kepadanya tidak lagi mencapai terminal tempat Anda memindahkannya. Sebelum rilis ini, terminal itu bisa tetap terdaftar sebagai sesi interaktif kedua di bawah nama percakapan, dan sesi yang telah mengirim pesan ke percakapan sebelum perpindahan terus mengirimkan ke terminal itu. |

1054| v2.1.260 | Ketika [penghapusan ditolak atas commit yang tidak didorong](#what-deleting-a-session-removes), pesan menyebutkan cabang worktree dan berapa banyak commit yang tidak didorong, dan menghapus sesi lagi membuang worktree dan commitnya. Sebelum rilis ini, penolakan hanya mengatakan `worktree has commits that are not pushed anywhere`, menghapus lagi ditolak dengan cara yang sama, dan menghapus sesi memerlukan mendorong commit atau menghapus worktree dengan tangan. |

1055| v2.1.257 | `←` [melepaskan dari sesi yang dilampirkan sementara overlay `/btw` terbuka](#attach-to-a-session), bahkan di tengah jawaban, dan overlay membuka kembali ketika Anda melampirkan lagi. Sebelum rilis ini, `←` tidak melepaskan sementara overlay terbuka. |

1056| v2.1.257 | Ketika Anda menjalankan [`claude --resume <session-id> --bg`](#from-your-shell), Claude Code melanjutkan sesi itu di bawah ID-nya sendiri, atau memulai salinan di bawah ID baru dan mencetak baris `note:` yang menjelaskan alasannya. `--continue`, `--resume` telanjang, dan `--resume` dengan nama atau jalur memulai salinan dengan catatan yang sama. Sebelum rilis ini, `--resume` dengan `--bg` selalu memulai salinan di bawah ID baru dan tidak mengatakan apa-apa. |

1057| v2.1.257 | Ketika Anda mengirim sesi dari tampilan agen yang Anda buka dengan `←`, Claude Code memulainya dalam [mode izin yang dikonfigurasi direktori target](#permission-mode) melalui `permissions.defaultMode`. Ketika direktori tidak menetapkan satu, mode izin sesi yang Anda datang darinya berlaku. Sebelum rilis ini, sesi yang dikirim selalu dimulai dalam mode izin sesi yang Anda datang darinya, menimpanya. |

1058| v2.1.257 | `Ctrl+S`, `Ctrl+T`, dan `Ctrl+G` dalam tampilan agen [mengikuti `keybindings.json` Anda](#keyboard-shortcuts): `Ctrl+S` dan `Ctrl+T` melalui tindakan `agents:switchView` dan `agents:togglePin` konteks `Agents`, dan `Ctrl+G` melalui pengikatan `chat:externalEditor` konteks `Chat`. Sebelum rilis ini, tampilan agen mengabaikan `keybindings.json` dan kunci ini diperbaiki. |

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

1060| v2.1.257 | Ketika Anda membuka atau mengirim sesi latar belakang sementara proses Claude Code lain mengunduh pembaruan npm, Claude Code [terus menunggu hingga dua menit](/docs/id/errors#eacces-when-starting-a-background-session) sementara instalasi berjalan, kemudian gagal mengatakan `Claude Code is being updated by npm on this machine`. Sebelum rilis ini, penantian berhenti pada sepuluh detik, jadi pembukaan gagal dengan `Couldn't start the background service` sementara unduhan masih berjalan. |

1061| v2.1.257 | Sesi latar belakang yang memegang [pesan lintas sesi](/docs/id/cross-session-messaging#control-inbound-messages) untuk persetujuan Anda menampilkan `approve message from` pada barisnya `Needs input`, dengan alamat pengirim dan nama yang diklaim pengirim. Sebelum rilis ini, baris pindah ke `Needs input` tetapi menyimpan teks sebelumnya, jadi tidak ada dalam `claude agents` yang menyebutkan pesan yang menunggu atau pengirimnya. |

1062| v2.1.257 | Prompt yang disimpan dengan `Ctrl+S` di dalam sesi latar belakang yang dibuka [disimpan dengan sesi](#what-persists-across-restarts), jadi `Ctrl+S` memulihkannya setelah proses sesi dihentikan dan dimulai lagi. Sebelum rilis ini, simpanan hanya hidup dalam proses yang berjalan dan hilang ketika sesi menjadi idle cukup lama untuk prosesnya berhenti, atau ketika dihentikan dan kemudian dibuka kembali. |

987| v2.1.251 | Dalam sesi latar belakang yang belum [pindah ke worktree](#how-file-edits-are-isolated), Claude dan subagen yang dipawnnya dapat mengedit file di dalam worktree git yang ditautkan. |1063| v2.1.251 | Dalam sesi latar belakang yang belum [pindah ke worktree](#how-file-edits-are-isolated), Claude dan subagen yang dipawnnya dapat mengedit file di dalam worktree git yang ditautkan. |

988| v2.1.251 | Claude Code meneruskan gateway penyedia cloud yang diekspor dalam shell tempat Anda mengirim, seperti `ANTHROPIC_VERTEX_BASE_URL` atau `ANTHROPIC_BEDROCK_BASE_URL` dengan bendera bypass autnya, ke [worker sesi](#llm-gateway) di bawah kondisi yang sama dengan `ANTHROPIC_BASE_URL`. Sebelum rilis ini, jika Anda melepaskan atau mengirim dari shell yang hanya diautentikasi melalui gateway seperti itu, setiap permintaan yang dibuat sesi gagal, karena titik akhir dan bendera dijatuhkan dari lingkungannya. |1064| v2.1.251 | Claude Code meneruskan gateway penyedia cloud yang diekspor dalam shell tempat Anda mengirim, seperti `ANTHROPIC_VERTEX_BASE_URL` atau `ANTHROPIC_BEDROCK_BASE_URL` dengan bendera bypass autnya, ke [worker sesi](#llm-gateway) di bawah kondisi yang sama dengan `ANTHROPIC_BASE_URL`. Sebelum rilis ini, jika Anda melepaskan atau mengirim dari shell yang hanya diautentikasi melalui gateway seperti itu, setiap permintaan yang dibuat sesi gagal, karena titik akhir dan bendera dijatuhkan dari lingkungannya. |

989| v2.1.251 | Ketika sesi latar belakang dimulai sementara proses Claude Code lain sedang menyegarkan [marketplace plugin](/docs/id/plugin-marketplaces), seperti sesi saudara yang menjalankan [pembaruan otomatis marketplace](/docs/id/discover-plugins#configure-auto-updates), Claude Code menjaga plugin marketplace tersebut tetap tersedia. Sebelum rilis ini, sesi seperti itu bisa dimulai tanpa skill, agen, hook, dan server MCP marketplace apa pun dan tetap seperti itu selama seluruh jalannya. |1065| v2.1.251 | Ketika sesi latar belakang dimulai sementara proses Claude Code lain sedang menyegarkan [marketplace plugin](/docs/id/plugin-marketplaces), seperti sesi saudara yang menjalankan [pembaruan otomatis marketplace](/docs/id/discover-plugins#configure-auto-updates), Claude Code menjaga plugin marketplace tersebut tetap tersedia. Sebelum rilis ini, sesi seperti itu bisa dimulai tanpa skill, agen, hook, dan server MCP marketplace apa pun dan tetap seperti itu selama seluruh jalannya. |

agents.md +5 −4

Details

4 4 

5# Jalankan agen secara paralel5# Jalankan agen secara paralel

6 6 

7> Bandingkan cara Claude Code dapat menangani beberapa tugas sekaligus: subagents, agent view, agent teams, dan dynamic workflows.7> Bandingkan cara Claude Code dapat menangani beberapa tugas sekaligus: subagents, agent view, agent teams, dynamic workflows, dan projects.

8 8 

9[Subagents](/docs/id/sub-agents), [agent view](/docs/id/agent-view), [agent teams](/docs/id/agent-teams), dan [dynamic workflows](/docs/id/workflows) masing-masing melakukan paralelisasi pekerjaan dengan cara yang berbeda. Yang tepat tergantung pada apakah Anda ingin tetap berada di setiap percakapan sendiri, menyerahkan tugas dan memeriksa kembali nanti, atau membiarkan Claude mengoordinasikan sekelompok pekerja untuk Anda.9Claude Code memiliki lima cara untuk bekerja pada beberapa tugas sekaligus: [subagents](/docs/id/sub-agents), [agent view](/docs/id/agent-view), [agent teams](/docs/id/agent-teams), [dynamic workflows](/docs/id/workflows), dan [projects](/docs/id/claude-projects). Mereka berbeda dalam seberapa banyak Anda tetap terlibat, dari mengarahkan setiap percakapan sendiri hingga membiarkan Claude mengoordinasikan sekelompok pekerja, dan dalam apakah pekerjaan berjalan di mesin Anda atau di cloud.

10 10 

11| Pendekatan | Apa yang diberikannya | Gunakan ketika |11| Pendekatan | Apa yang diberikannya | Gunakan ketika |

12| :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |12| :--------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

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

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

17 18 

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


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

21 22 

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

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

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

25 26 

26Beberapa fitur lain menjalankan Claude tanpa Anda menjalankan setiap langkah, tetapi mereka menyelesaikan masalah yang berbeda daripada membagi pekerjaan di seluruh agen:27Beberapa fitur lain menjalankan Claude tanpa Anda menjalankan setiap langkah, tetapi mereka menyelesaikan masalah yang berbeda daripada membagi pekerjaan di seluruh agen:

Details

237}237}

238```238```

239 239 

240Mulai dari Claude Code v2.1.181, output datar dari `aws configure export-credentials --format process` juga diterima, dengan kunci yang sama di tingkat atas alih-alih bersarang di bawah `Credentials`.240Output datar dari `aws configure export-credentials --format process` juga diterima, dengan kunci yang sama di tingkat atas alih-alih bersarang di bawah `Credentials`.

241 241 

242`Expiration` bersifat opsional. Ketika perintah mengembalikan `Expiration` ISO 8601 yang valid, Claude Code menyimpan kredensial dalam cache hingga lima menit sebelum waktu itu. Tanpanya, kredensial disimpan dalam cache selama satu jam.242`Expiration` bersifat opsional. Ketika perintah mengembalikan `Expiration` ISO 8601 yang valid, Claude Code menyimpan kredensial dalam cache hingga lima menit sebelum waktu itu. Tanpanya, kredensial disimpan dalam cache selama satu jam.

243 243 


518 Gunakan endpoint Mantle518 Gunakan endpoint Mantle

519</h2>519</h2>

520 520 

521Mantle adalah endpoint Amazon Bedrock yang melayani model Claude melalui bentuk API Anthropic asli daripada Amazon Bedrock Invoke API. Ini menggunakan kredensial AWS yang sama, izin IAM, dan konfigurasi `awsAuthRefresh` yang dijelaskan sebelumnya di halaman ini.521Mantle adalah endpoint Amazon Bedrock yang melayani model Claude melalui bentuk API Anthropic asli daripada Amazon Bedrock Invoke API. Ini menggunakan kredensial AWS yang sama [](#2-configure-aws-credentials), [izin IAM](#iam-configuration), dan [konfigurasi `awsAuthRefresh`](#advanced-credential-configuration).

522 522 

523<h3 id="enable-mantle">523<h3 id="enable-mantle">

524 Aktifkan Mantle524 Aktifkan Mantle

artifacts.md +4 −4

Details

10 Artifacts tersedia di paket Pro, Max, Team, dan Enterprise dan memerlukan sesi yang masuk dengan [`/login`](/docs/id/setup#authenticate). Lihat [Availability](#availability) untuk rangkaian lengkap persyaratan.10 Artifacts tersedia di paket Pro, Max, Team, dan Enterprise dan memerlukan sesi yang masuk dengan [`/login`](/docs/id/setup#authenticate). Lihat [Availability](#availability) untuk rangkaian lengkap persyaratan.

11</Note>11</Note>

12 12 

13Artifact adalah halaman web interaktif langsung yang Claude Code publikasikan dari sesi Anda ke URL pribadi di claude.ai. Anda membukanya di browser, dan halaman tersebut diperbarui di tempat saat sesi berlanjut. Bagikan dari header halaman ketika Anda ingin orang lain melihatnya juga.13Sebuah [artifact](https://claude.com/features/artifacts) adalah halaman web interaktif langsung yang Claude Code publikasikan dari sesi Anda ke URL pribadi di claude.ai. Anda membukanya di browser, dan halaman tersebut diperbarui di tempat saat sesi berlanjut. Bagikan dari header halaman ketika Anda ingin orang lain melihatnya juga.

14 14 

15<Frame>15<Frame>

16 <img src="https://mintcdn.com/claude-code/kaHIYYMIYMYPxQg9/images/artifacts-viewer.png?fit=max&auto=format&n=kaHIYYMIYMYPxQg9&q=85&s=dbfd671cdb0d15f49f808b9e89778fe1" alt="Artifact terbuka di browser di claude.ai/code/artifact. Header viewer menampilkan judul artifact acme-funnel-fix, tombol Share, dan avatar penulis. Menu Share terbuka dengan toggle Always share latest version, pemilih versi yang menunjukkan Sharing version 2, pemilih audiens Everyone at Acme, dan tombol Copy link. Di bawah header, halaman artifact menampilkan dua mockup mobile berdampingan, bagan corong, dan baris kartu metrik." width="2511" height="1890" data-path="images/artifacts-viewer.png" />16 <img src="https://mintcdn.com/claude-code/kaHIYYMIYMYPxQg9/images/artifacts-viewer.png?fit=max&auto=format&n=kaHIYYMIYMYPxQg9&q=85&s=dbfd671cdb0d15f49f808b9e89778fe1" alt="Artifact terbuka di browser di claude.ai/code/artifact. Header viewer menampilkan judul artifact acme-funnel-fix, tombol Share, dan avatar penulis. Menu Share terbuka dengan toggle Always share latest version, pemilih versi yang menunjukkan Sharing version 2, pemilih audiens Everyone at Acme, dan tombol Copy link. Di bawah header, halaman artifact menampilkan dua mockup mobile berdampingan, bagan corong, dan baris kartu metrik." width="2511" height="1890" data-path="images/artifacts-viewer.png" />


142Read the comments on https://claude.ai/code/artifact/5fbea6f3-... and make the changes the commenters ask for.142Read the comments on https://claude.ai/code/artifact/5fbea6f3-... and make the changes the commenters ask for.

143```143```

144 144 

145Jika Claude memberi tahu Anda bahwa ia tidak dapat membaca komentar, periksa tiga hal:145Jika Claude memberi tahu Anda bahwa ia tidak dapat membaca komentar, periksa versi Anda, sesi Anda, dan pengaturan feature-flag Anda:

146 146 

147* Anda menjalankan Claude Code v2.1.221 atau lebih baru.147* Anda menjalankan Claude Code v2.1.221 atau lebih baru.

148* Anda tidak dalam sesi pertama Anda sejak Anda menginstal Claude Code atau meningkatkan dari versi sebelum v2.1.221. Dalam [sesi pertama setelah instalasi atau peningkatan](/docs/id/env-vars#first-session-after-an-install-or-upgrade), Claude mungkin belum dapat membaca komentar; mulai sesi baru dan tanyakan lagi.148* Anda tidak dalam sesi pertama Anda sejak Anda menginstal Claude Code atau meningkatkan dari versi sebelum v2.1.221. Dalam [sesi pertama setelah instalasi atau peningkatan](/docs/id/env-vars#first-session-after-an-install-or-upgrade), Claude mungkin belum dapat membaca komentar; mulai sesi baru dan tanyakan lagi.


291 Tingkatkan desain visual291 Tingkatkan desain visual

292</h2>292</h2>

293 293 

294Claude menerapkan keterampilan desain bawaan ketika membangun artefak, sehingga halaman mendapatkan palet, tipografi, dan tata letak yang disengaja tanpa permintaan tambahan. Memerlukan Claude Code v2.1.182 atau lebih baru. Keterampilan tersebut juga mencari sistem desain yang ada di proyek Anda sebelum memilih miliknya sendiri. Design tokens adalah nilai warna, tipografi, dan spasi bernama yang sistem desain Anda gunakan kembali. Untuk menjaga artefak tetap konsisten dengan branding produk Anda, catat di mana Claude dapat menemukannya, seperti [CLAUDE.md](/docs/id/memory) proyek atau file tema di repositori Anda:294Claude menerapkan keterampilan desain bawaan ketika membangun artefak, sehingga halaman mendapatkan palet, tipografi, dan tata letak yang disengaja tanpa permintaan tambahan. Keterampilan tersebut juga mencari sistem desain yang ada di proyek Anda sebelum memilih miliknya sendiri. Design tokens adalah nilai warna, tipografi, dan spasi bernama yang sistem desain Anda gunakan kembali. Untuk menjaga artefak tetap konsisten dengan branding produk Anda, catat di mana Claude dapat menemukannya, seperti [CLAUDE.md](/docs/id/memory) proyek atau file tema di repositori Anda:

295 295 

296```markdown theme={null}296```markdown theme={null}

297## Design system297## Design system


331| Tidak ada backend | Artefak adalah halaman statis. Tidak dapat mengautentikasi penampil itu sendiri. |331| Tidak ada backend | Artefak adalah halaman statis. Tidak dapat mengautentikasi penampil itu sendiri. |

332| Unduhan | Halaman tidak dapat memulai unduhan itu sendiri. Untuk membiarkan penampil menyimpan file yang dihasilkan halaman, Claude mendeklarasikan kemampuan unduhan. Lihat [Tawarkan unduhan file](#offer-a-file-download). |332| Unduhan | Halaman tidak dapat memulai unduhan itu sendiri. Untuk membiarkan penampil menyimpan file yang dihasilkan halaman, Claude mendeklarasikan kemampuan unduhan. Lihat [Tawarkan unduhan file](#offer-a-file-download). |

333| Halaman tunggal | Tautan relatif tidak diselesaikan, karena tidak ada yang digunakan bersama halaman. Untuk konten multi-bagian, Claude menggunakan jangkar dalam halaman daripada file terpisah. |333| Halaman tunggal | Tautan relatif tidak diselesaikan, karena tidak ada yang digunakan bersama halaman. Untuk konten multi-bagian, Claude menggunakan jangkar dalam halaman daripada file terpisah. |

334| Jenis file sumber | File yang diterbitkan harus `.html`, `.htm`, atau `.md`, dan harus didekode sebagai UTF-8, atau sebagai UTF-16 little-endian berdasarkan byte-order mark-nya. File Markdown dirender sebagai HTML bergaya. File yang tidak didekode, atau yang berisi karakter pengganti `U+FFFD`, [ditolak dengan baris dan kolom untuk diperbaiki](/docs/id/errors#the-source-file-is-not-valid-utf-8-text). |334| Jenis file sumber | File yang diterbitkan harus `.html`, `.htm`, atau `.md`, dan harus didekode sebagai UTF-8, atau sebagai UTF-16 little-endian berdasarkan byte-order mark-nya. File Markdown dirender sebagai halaman dokumen bergaya dengan kode yang disintaks-sorot. File yang tidak didekode, atau yang berisi karakter pengganti `U+FFFD`, adalah [ditolak dengan baris dan kolom untuk diperbaiki](/docs/id/errors#the-source-file-is-not-valid-utf-8-text). |

335| Ukuran yang dirender | Halaman yang dirender harus 16 MiB atau lebih kecil. Gambar tertanam besar adalah penyebab umum ketika penerbitan gagal karena ukuran. |335| Ukuran yang dirender | Halaman yang dirender harus 16 MiB atau lebih kecil. Gambar tertanam besar adalah penyebab umum ketika penerbitan gagal karena ukuran. |

336 336 

337Menghasilkan artefak menggunakan token output seperti respons lainnya, dan halaman bergaya lebih intensif token daripada konten yang sama sebagai teks terminal. CSS inline, JavaScript untuk kontrol interaktif, dan terutama gambar yang disematkan sebagai data URI adalah kontributor utama. Untuk mengurangi biaya token artefak:337Menghasilkan artefak menggunakan token output seperti respons lainnya, dan halaman bergaya lebih intensif token daripada konten yang sama sebagai teks terminal. CSS inline, JavaScript untuk kontrol interaktif, dan terutama gambar yang disematkan sebagai data URI adalah kontributor utama. Untuk mengurangi biaya token artefak:

Details

6 6 

7> Masuk ke Claude Code dan konfigurasikan autentikasi untuk individu, tim, dan organisasi.7> Masuk ke Claude Code dan konfigurasikan autentikasi untuk individu, tim, dan organisasi.

8 8 

9Claude Code mendukung berbagai metode autentikasi tergantung pada pengaturan Anda. Pengguna individual dapat masuk dengan akun Claude.ai, sementara tim dapat menggunakan Claude for Teams atau Enterprise, Claude Console, atau penyedia cloud seperti Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry.9Claude Code mendukung berbagai metode autentikasi tergantung pada pengaturan Anda. Pengguna individual dapat masuk dengan akun claude.ai, sementara tim dapat menggunakan Claude for Teams atau Enterprise, Claude Console, atau penyedia cloud seperti Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry.

10 10 

11<h2 id="log-in-to-claude-code">11<h2 id="log-in-to-claude-code">

12 Masuk ke Claude Code12 Masuk ke Claude Code


22 22 

23Anda dapat melakukan autentikasi dengan salah satu jenis akun berikut:23Anda dapat melakukan autentikasi dengan salah satu jenis akun berikut:

24 24 

25* **Langganan Claude Pro atau Max**: masuk dengan akun Claude.ai Anda. Berlangganan di [claude.com/pricing](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_pro_max).25* **Langganan Claude Pro atau Max**: masuk dengan akun claude.ai Anda. Berlangganan di [claude.com/pricing](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_pro_max).

26* **Claude for Teams atau Enterprise**: masuk dengan akun Claude.ai yang diundang oleh admin tim Anda.26* **Claude for Teams atau Enterprise**: masuk dengan akun claude.ai yang diundang oleh admin tim Anda.

27* **Claude Console**: masuk dengan kredensial Console Anda. Admin Anda harus telah [mengundang Anda](#claude-console-authentication) terlebih dahulu. Anda dapat masuk dengan atau tanpa [membuat kunci API](#sign-in-without-an-api-key).27* **Claude Console**: masuk dengan kredensial Console Anda. Admin Anda harus telah [mengundang Anda](#claude-console-authentication) terlebih dahulu. Anda dapat masuk dengan atau tanpa [membuat kunci API](#sign-in-without-an-api-key).

28* **Penyedia cloud**: jika organisasi Anda menggunakan [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), atau [Microsoft Foundry](/docs/id/microsoft-foundry), atur variabel lingkungan yang diperlukan sebelum menjalankan `claude`, atau pilih **3rd-party platform** di prompt login, yang meluncurkan wizard pengaturan interaktif untuk Bedrock dan Vertex AI. Tidak diperlukan login browser.28* **Penyedia cloud**: jika organisasi Anda menggunakan [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), atau [Microsoft Foundry](/docs/id/microsoft-foundry), atur variabel lingkungan yang diperlukan sebelum menjalankan `claude`, atau pilih **3rd-party platform** di prompt login, yang meluncurkan wizard pengaturan interaktif untuk Bedrock dan Vertex AI. Tidak diperlukan login browser.

29* **Gateway cloud**: jika organisasi Anda menjalankan [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang di-host sendiri, masuk dengan SSO perusahaan melalui `/login`. Token yang dikeluarkan gateway adalah satu-satunya kredensial sesi.29* **Gateway cloud**: jika organisasi Anda menjalankan [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang di-host sendiri, masuk dengan SSO perusahaan melalui `/login`. Token yang dikeluarkan gateway adalah satu-satunya kredensial sesi.


66 </Step>66 </Step>

67 67 

68 <Step title="Pasang dan masuk">68 <Step title="Pasang dan masuk">

69 Anggota tim memasang Claude Code dan masuk dengan akun Claude.ai mereka.69 Anggota tim memasang Claude Code dan masuk dengan akun claude.ai mereka.

70 </Step>70 </Step>

71</Steps>71</Steps>

72 72 


190 * Di Windows, kredensial disimpan di `%USERPROFILE%\.claude\.credentials.json` dan mewarisi kontrol akses dari direktori profil pengguna Anda, yang membatasi file ke akun pengguna Anda secara default.190 * Di Windows, kredensial disimpan di `%USERPROFILE%\.claude\.credentials.json` dan mewarisi kontrol akses dari direktori profil pengguna Anda, yang membatasi file ke akun pengguna Anda secara default.

191 * Jika Anda telah menetapkan variabel lingkungan `CLAUDE_CONFIG_DIR`, Claude Code menyimpan file `.credentials.json` di bawah direktori tersebut sebagai gantinya, termasuk file yang ditulis fallback macOS, dan memberi kunci entri Keychain macOS ke direktori tersebut juga, sehingga sesi dengan `CLAUDE_CONFIG_DIR` yang berbeda membaca entri yang berbeda.191 * Jika Anda telah menetapkan variabel lingkungan `CLAUDE_CONFIG_DIR`, Claude Code menyimpan file `.credentials.json` di bawah direktori tersebut sebagai gantinya, termasuk file yang ditulis fallback macOS, dan memberi kunci entri Keychain macOS ke direktori tersebut juga, sehingga sesi dengan `CLAUDE_CONFIG_DIR` yang berbeda membaca entri yang berbeda.

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

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

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

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

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


236 236 

237Jalankan `unset ANTHROPIC_API_KEY` untuk kembali ke langganan Anda, dan periksa `/status` untuk mengonfirmasi metode mana yang aktif. Ketika login dan kunci API keduanya dikonfigurasi, `/status` menandai kredensial yang tidak sedang digunakan.237Jalankan `unset ANTHROPIC_API_KEY` untuk kembali ke langganan Anda, dan periksa `/status` untuk mengonfirmasi metode mana yang aktif. Ketika login dan kunci API keduanya dikonfigurasi, `/status` menandai kredensial yang tidak sedang digunakan.

238 238 

239[Claude Code di Web](/docs/id/claude-code-on-the-web) selalu menggunakan kredensial langganan Anda. Jika Anda menetapkan `ANTHROPIC_API_KEY` atau `ANTHROPIC_AUTH_TOKEN` di lingkungan sandbox, itu tidak menimpa kredensial langganan Anda.239[Sesi cloud](/docs/id/claude-code-on-the-web) selalu menggunakan kredensial langganan Anda. Jika Anda menetapkan `ANTHROPIC_API_KEY` atau `ANTHROPIC_AUTH_TOKEN` di lingkungan cloud, itu tidak menimpa kredensial langganan Anda.

240 240 

241<h4 id="anthropic-profiles-and-federation-credentials">241<h4 id="anthropic-profiles-and-federation-credentials">

242 Profil Anthropic dan kredensial federasi242 Profil Anthropic dan kredensial federasi

Details

99 * **Organization**99 * **Organization**

100 * **Primary use of Claude Code**: default ke software development100 * **Primary use of Claude Code**: default ke software development

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

102 * **Repository visibility**: sebuah repositori diasumsikan private kecuali host remote dan namanya menunjukkan sebaliknya, atau pemeriksaan visibilitas lebih awal dalam percakapan yang dibaca pengklasifikasi menunjukkan bahwa itu public. Pengklasifikasi membaca pesan Anda dan perintah yang dijalankan Claude, bukan output mereka, jadi bukti harus berupa sesuatu yang dapat dibacanya, seperti pesan Anda sendiri yang menyebutkan repositori sebagai public; output dari `gh repo view` saja tidak mencapainya. Pemeriksaan bukti transkrip memerlukan Claude Code v2.1.200 atau lebih baru102 * **Repository visibility**: sebuah repositori diasumsikan private kecuali host remote dan namanya menunjukkan sebaliknya, atau pengklasifikasi membaca pemeriksaan visibilitas lebih awal dalam percakapan yang menunjukkan bahwa itu public.

103 

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

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

104 * **Org-specific CLIs**106 * **Org-specific CLIs**

105 * **Secrets management**107 * **Secrets management**


305 Arahkan semua perintah shell melalui pengklasifikasi307 Arahkan semua perintah shell melalui pengklasifikasi

306</h2>308</h2>

307 309 

308Secara default, aturan Bash dan PowerShell yang sempit seperti `Bash(npm test)` tetap berlaku dalam mode otomatis, dan Claude Code menyelesaikannya sebelum pengklasifikasi berjalan. Claude Code menangguhkan hanya aturan luas yang memberikan eksekusi kode arbitrer, seperti `Bash(*)` atau interpreter dengan wildcard, bersama dengan setiap aturan yang menyebutkan [`Monitor`](/docs/id/tools-reference#monitor-tool), karena perintah Monitor berjalan melalui shell. Ini berarti aturan yang sempit masih dapat membiarkan argumen yang merusak melewati tanpa pengklasifikasi melihatnya, misalnya jalur skrip atau flag yang tidak diantisipasi oleh awalan aturan.310Secara default, aturan Bash dan PowerShell yang sempit seperti `Bash(npm test)` tetap berlaku dalam mode otomatis. Claude Code menyelesaikannya sebelum pengklasifikasi berjalan, kecuali perintah membawa [domain yang diizinkan per-perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode). Claude Code menangguhkan hanya aturan luas yang memberikan eksekusi kode arbitrer, seperti `Bash(*)` atau interpreter dengan wildcard, bersama dengan setiap aturan yang menyebutkan [`Monitor`](/docs/id/tools-reference#monitor-tool), karena perintah Monitor berjalan melalui shell. Ini berarti aturan yang sempit masih dapat membiarkan argumen yang merusak melewati tanpa pengklasifikasi melihatnya, misalnya jalur skrip atau flag yang tidak diantisipasi oleh awalan aturan.

309 311 

310Atur `autoMode.classifyAllShell` ke `true` untuk menangguhkan setiap aturan izin Bash dan PowerShell saat mode otomatis aktif, sehingga pengklasifikasi mengevaluasi setiap perintah shell terlepas dari daftar izin Anda.312Atur `autoMode.classifyAllShell` ke `true` untuk menangguhkan setiap aturan izin Bash dan PowerShell saat mode otomatis aktif, sehingga pengklasifikasi mengevaluasi setiap perintah shell terlepas dari daftar izin Anda.

311 313 

Details

12 12 

13Namun otonomi ini masih datang dengan kurva pembelajaran. Claude bekerja dalam batasan tertentu yang perlu Anda pahami.13Namun otonomi ini masih datang dengan kurva pembelajaran. Claude bekerja dalam batasan tertentu yang perlu Anda pahami.

14 14 

15Panduan ini mencakup pola yang telah terbukti efektif di seluruh tim internal Anthropic dan untuk insinyur yang menggunakan Claude Code di berbagai basis kode, bahasa, dan lingkungan. Untuk cara loop agentic bekerja di balik layar, lihat [Cara Claude Code Bekerja](/docs/id/how-claude-code-works).15Panduan ini mencakup pola yang telah terbukti efektif di seluruh tim internal Anthropic dan untuk insinyur yang menggunakan Claude Code di berbagai basis kode, bahasa, dan lingkungan. Untuk cara loop agentic bekerja, lihat [Cara Claude Code Bekerja](/docs/id/how-claude-code-works).

16 16 

17***17***

18 18 

channels.md +3 −3

Details

368Beberapa fitur Claude Code terhubung ke sistem di luar terminal, masing-masing cocok untuk jenis pekerjaan yang berbeda:368Beberapa fitur Claude Code terhubung ke sistem di luar terminal, masing-masing cocok untuk jenis pekerjaan yang berbeda:

369 369 

370| Fitur | Apa yang dilakukannya | Bagus untuk |370| Fitur | Apa yang dilakukannya | Bagus untuk |

371| ---------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------- |371| -------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------- |

372| [Claude Code on the web](/docs/id/claude-code-on-the-web) | Menjalankan tugas dalam sandbox cloud baru, diklon dari GitHub | Mendelegasikan pekerjaan async yang mandiri yang Anda periksa nanti |372| [Cloud sessions](/docs/id/claude-code-on-the-web) | Menjalankan tugas dalam sandbox cloud baru, diklon dari GitHub | Mendelegasikan pekerjaan async yang mandiri yang Anda periksa nanti |

373| [Claude in Slack](/docs/id/slack) | Menjalankan sesi web dari penyebutan `@Claude` di channel atau thread | Memulai tugas langsung dari konteks percakapan tim |373| [Claude in Slack](/docs/id/slack) | Menjalankan sesi cloud dari penyebutan `@Claude` di channel atau thread | Memulai tugas langsung dari konteks percakapan tim |

374| Standard [MCP server](/docs/id/mcp) | Claude menanyainya selama tugas; tidak ada yang didorong ke sesi | Memberi Claude akses on-demand untuk membaca atau menanyakan sistem |374| Standard [MCP server](/docs/id/mcp) | Claude menanyainya selama tugas; tidak ada yang didorong ke sesi | Memberi Claude akses on-demand untuk membaca atau menanyakan sistem |

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

376 376 

Details

66 66 

67<Steps>67<Steps>

68 <Step title="Buat proyek">68 <Step title="Buat proyek">

69 Contoh relay izin nanti di halaman ini mengimpor `zod` secara langsung, jadi itu dipasang bersama MCP SDK. Buat direktori baru dan pasang keduanya:69 Contoh [relay izin](#relay-permission-prompts) mengimpor `zod` secara langsung, jadi itu dipasang bersama MCP SDK. Buat direktori baru dan pasang keduanya:

70 70 

71 ```bash theme={null}71 ```bash theme={null}

72 mkdir webhook-channel && cd webhook-channel72 mkdir webhook-channel && cd webhook-channel


509 509 

510Penyembunyian tidak mengubah siapa yang menerima field. Apa pun yang tetap tanpa mask hanya masuk ke server yang Anda opt in dengan `--channels` atau development flag. Perlakukan kedua field sebagai untrusted kecuali Anda mengontrol client fleet.510Penyembunyian tidak mengubah siapa yang menerima field. Apa pun yang tetap tanpa mask hanya masuk ke server yang Anda opt in dengan `--channels` atau development flag. Perlakukan kedua field sebagai untrusted kecuali Anda mengontrol client fleet.

511 511 

512Verdict yang dikirim server Anda kembali adalah `notifications/claude/channel/permission` dengan dua field: `request_id` mengulangi ID di atas, dan `behavior` diatur ke `'allow'` atau `'deny'`. Allow membiarkan panggilan tool melanjutkan; deny menolaknya, sama seperti menjawab No dalam dialog lokal. Tidak ada verdict yang mempengaruhi panggilan masa depan.512Verdict yang dikirim server Anda kembali adalah `notifications/claude/channel/permission` dengan dua field: `request_id` mengulangi ID di atas, dan `behavior` diatur ke `'allow'` atau `'deny'`. Allow membiarkan panggilan tool melanjutkan; deny menolaknya. Tidak ada verdict yang mempengaruhi panggilan masa depan.

513 513 

514<h3 id="add-relay-to-a-chat-bridge">514<h3 id="add-relay-to-a-chat-bridge">

515 Tambahkan relay ke chat bridge515 Tambahkan relay ke chat bridge

Details

85 Perubahan perintah Bash tidak dilacak85 Perubahan perintah Bash tidak dilacak

86</h3>86</h3>

87 87 

88Checkpointing tidak melacak file yang dimodifikasi oleh perintah bash. Misalnya, jika Claude Code menjalankan:88Checkpointing tidak melacak file yang dimodifikasi oleh perintah Bash. Misalnya, jika Claude Code menjalankan:

89 89 

90```bash theme={null}90```bash theme={null}

91rm file.txt91rm file.txt

Details

10 Claude apps gateway dirancang untuk organisasi yang harus — atau lebih suka — merutekan inferensi melalui penyedia cloud mereka sendiri, misalnya untuk memenuhi persyaratan [residensi data](/docs/id/claude-apps-gateway-deploy#compliance-posture). Jika Anda tidak memiliki persyaratan ini, dan menginginkan akses ke fitur lain seperti penyediaan SCIM atau Claude Code di web dan mobile, Claude Enterprise mungkin lebih cocok. Lihat halaman [ketersediaan fitur](/docs/id/feature-availability) untuk perbandingan lengkap semua metode penyebaran.10 Claude apps gateway dirancang untuk organisasi yang harus — atau lebih suka — merutekan inferensi melalui penyedia cloud mereka sendiri, misalnya untuk memenuhi persyaratan [residensi data](/docs/id/claude-apps-gateway-deploy#compliance-posture). Jika Anda tidak memiliki persyaratan ini, dan menginginkan akses ke fitur lain seperti penyediaan SCIM atau Claude Code di web dan mobile, Claude Enterprise mungkin lebih cocok. Lihat halaman [ketersediaan fitur](/docs/id/feature-availability) untuk perbandingan lengkap semua metode penyebaran.

11</Note>11</Note>

12 12 

13Claude apps gateway adalah layanan yang di-host sendiri yang berada di antara klien Claude Code pengembang Anda dan penyedia model Anda. Pengembang masuk dengan penyedia identitas perusahaan Anda (IdP) alih-alih menyimpan kunci API atau kredensial cloud. Gateway menyimpan kredensial upstream, memberlakukan akses model dan [pengaturan terkelola](/docs/id/permissions#managed-settings) berdasarkan grup IdP, dan meneruskan telemetri penggunaan ke tumpukan observabilitas Anda sendiri.13Claude apps gateway adalah layanan yang di-host sendiri yang berada di antara klien Claude Code pengembang Anda dan penyedia model Anda. Pengembang masuk dengan penyedia identitas perusahaan Anda (IdP) alih-alih menyimpan kunci API atau kredensial cloud. Gateway menyimpan kredensial upstream, memberlakukan akses model dan [pengaturan terkelola](/docs/id/managed-settings) berdasarkan grup IdP, dan meneruskan telemetri penggunaan ke tumpukan observabilitas Anda sendiri.

14 14 

15Ini disertakan dalam biner `claude`, jadi executable yang sama yang menjalankan Claude Code di laptop menjalankan server gateway dengan `claude gateway --config gateway.yaml`.15Ini disertakan dalam biner `claude`, jadi executable yang sama yang menjalankan Claude Code di laptop menjalankan server gateway dengan `claude gateway --config gateway.yaml`.

16 16 


30[Gambaran umum gateway](/docs/id/gateways) mencakup apa yang dilakukan gateway dan mengapa Anda akan menjalankannya. Claude apps gateway adalah gateway Anthropic sendiri, dibangun ke dalam biner `claude` dan diuji bersama setiap rilis Claude Code, jadi ia meneruskan header dan bidang permintaan yang dikirim Claude Code tanpa operator mempertahankan daftar izin terpisah. Setelah digunakan, ia memberi Anda:30[Gambaran umum gateway](/docs/id/gateways) mencakup apa yang dilakukan gateway dan mengapa Anda akan menjalankannya. Claude apps gateway adalah gateway Anthropic sendiri, dibangun ke dalam biner `claude` dan diuji bersama setiap rilis Claude Code, jadi ia meneruskan header dan bidang permintaan yang dikirim Claude Code tanpa operator mempertahankan daftar izin terpisah. Setelah digunakan, ia memberi Anda:

31 31 

32* **Kredensial**: kunci API upstream atau kredensial cloud hanya ada di infrastruktur Anda. Pengembang melakukan autentikasi dengan SSO perusahaan dan menerima token bearer berumur pendek, jadi offboarding terjadi di IdP Anda. Hapus penyediaan pengguna dan akses gateway mereka kedaluwarsa dalam masa pakai sesi, satu jam secara default.32* **Kredensial**: kunci API upstream atau kredensial cloud hanya ada di infrastruktur Anda. Pengembang melakukan autentikasi dengan SSO perusahaan dan menerima token bearer berumur pendek, jadi offboarding terjadi di IdP Anda. Hapus penyediaan pengguna dan akses gateway mereka kedaluwarsa dalam masa pakai sesi, satu jam secara default.

33* **Kontrol akses**: grup IdP Anda memetakan ke daftar izin model dan kebijakan [pengaturan terkelola](/docs/id/permissions#managed-settings). Gateway memberlakukan akses model di sisi server, menolak permintaan untuk model yang tidak diberikan, dan memilih kebijakan pengaturan terkelola setiap grup, yang diterapkan CLI di [tingkat pengaturan terkelola](/docs/id/settings#settings-precedence). Tim yang berbeda mendapatkan model, alat, dan izin yang berbeda, dan pengembang tidak dapat mengganti apa yang dikunci kebijakan mereka.33* **Kontrol akses**: grup IdP Anda memetakan ke daftar izin model dan kebijakan [pengaturan terkelola](/docs/id/managed-settings). Gateway memberlakukan akses model di sisi server, menolak permintaan untuk model yang tidak diberikan, dan memilih kebijakan pengaturan terkelola setiap grup, yang diterapkan CLI di [tingkat pengaturan terkelola](/docs/id/settings#settings-precedence). Tim yang berbeda mendapatkan model, alat, dan izin yang berbeda, dan pengembang tidak dapat mengganti apa yang dikunci kebijakan mereka.

34* **Pengiriman pengaturan**: gateway mengirimkan pengaturan terkelola ke klien yang masuk sendiri, menggantikan [pengaturan yang dikelola server](/docs/id/server-managed-settings) dari konsol admin claude.ai.34* **Pengiriman pengaturan**: gateway mengirimkan pengaturan terkelola ke klien yang masuk sendiri, menggantikan [pengaturan yang dikelola server](/docs/id/server-managed-settings) dari konsol admin claude.ai.

35* **Telemetri**: setiap tujuan yang dikonfigurasi, seperti Datadog, Splunk, atau ClickHouse, menerima [metrik OpenTelemetry Protocol (OTLP)](/docs/id/monitoring-usage) dengan hitungan token, model, identitas pengguna, dan latensi secara default, dengan log dan jejak sebagai opt-in per-tujuan.35* **Telemetri**: setiap tujuan yang dikonfigurasi menerima [metrik OpenTelemetry Protocol (OTLP)](/docs/id/monitoring-usage) dengan hitungan token, model, identitas pengguna, dan latensi secara default, dengan log dan jejak sebagai opt-in per-tujuan.

36* **Perutean upstream**: klien berbicara API Pesan Anthropic ke gateway, dan gateway menerjemahkan untuk setiap upstream, baik Bedrock, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), Agent Platform Google Cloud, Foundry, atau API Anthropic, dengan failover di antara mereka. Anda dapat mengubah wilayah, penyedia, atau urutan failover tanpa pengembang menyadari atau mengonfigurasi ulang.36* **Perutean upstream**: klien berbicara API Pesan Anthropic ke gateway, dan gateway menerjemahkan untuk setiap upstream, baik Amazon Bedrock, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), Agent Platform Google Cloud, Microsoft Foundry, atau API Anthropic, dengan failover di antara mereka. Anda dapat mengubah wilayah, penyedia, atau urutan failover tanpa pengembang menyadari atau mengonfigurasi ulang.

37 37 

38<Frame>38<Frame>

39 <img src="https://mintcdn.com/claude-code/VbyXug8hBU9UK6oT/images/claude-gateway-architecture.svg?fit=max&auto=format&n=VbyXug8hBU9UK6oT&q=85&s=9e4f1190fc56718144190a3db61c63af" alt="Diagram menunjukkan klien Claude Code terhubung melalui HTTPS dengan token bearer ke gateway Claude apps yang di-host sendiri di dalam infrastruktur Anda, yang menandatangani pengguna terhadap IdP Anda, menyimpan status auth di PostgreSQL, meneruskan telemetri ke kolektor OTLP Anda, dan meneruskan inferensi ke Amazon Bedrock, Claude Platform on AWS, Google Cloud, Microsoft Foundry, atau API Anthropic" width="760" height="320" data-path="images/claude-gateway-architecture.svg" />39 <img src="https://mintcdn.com/claude-code/VbyXug8hBU9UK6oT/images/claude-gateway-architecture.svg?fit=max&auto=format&n=VbyXug8hBU9UK6oT&q=85&s=9e4f1190fc56718144190a3db61c63af" alt="Diagram menunjukkan klien Claude Code dan tab Chat, Cowork, dan Code Claude Desktop terhubung melalui HTTPS dengan token bearer ke gateway Claude apps yang di-host sendiri di dalam infrastruktur Anda, yang menandatangani pengguna terhadap IdP Anda, menyimpan status auth di PostgreSQL, meneruskan telemetri ke kolektor OTLP Anda, dan meneruskan inferensi ke Amazon Bedrock, Claude Platform on AWS, Google Cloud, Microsoft Foundry, atau API Anthropic" width="760" height="320" data-path="images/claude-gateway-architecture.svg" />

40</Frame>40</Frame>

41 41 

42<Note>42<Note>


51 51 

52Jika Anda sudah menjalankan gateway LLM atau gateway API yang memenuhi kebutuhan Anda, terus gunakan; [Gateway LLM lainnya](/docs/id/llm-gateway) mencakup konfigurasi Claude Code terhadapnya.52Jika Anda sudah menjalankan gateway LLM atau gateway API yang memenuhi kebutuhan Anda, terus gunakan; [Gateway LLM lainnya](/docs/id/llm-gateway) mencakup konfigurasi Claude Code terhadapnya.

53 53 

54[Referensi protokol gateway](/docs/id/llm-gateway-protocol) mendokumentasikan kontrak yang diharapkan Claude Code dari gateway apa pun: endpoint yang dipanggilnya, header dan bidang body untuk diteruskan, dan apa yang berhenti bekerja ketika mereka dihapus. Gateway Claude apps yang berjalan melayani superset kontrak itu di `GET /protocol`, menambahkan endpoint khusus gateway Claude apps untuk SSO sign-in, pengiriman pengaturan terkelola, dan telemetri. Ambilnya dengan `curl https://claude-gateway.internal.example.com/protocol` dari gateway yang digunakan apa pun, seperti yang dihasilkan [quickstart](#quickstart) di bawah. Perubahan breaking pada protokol diumumkan sebelumnya, tetapi kompatibilitas backward yang tidak terbatas tidak dijamin.54[Panduan kompatibilitas gateway](/docs/id/llm-gateway-protocol) mendokumentasikan apa yang diharapkan Claude Code dari gateway apa pun: endpoint yang dipanggilnya, header dan bidang body untuk diteruskan, dan apa yang berhenti bekerja ketika mereka dihapus. Gateway Claude apps yang berjalan juga melayani referensi protokolnya sendiri di `GET /protocol`, yang menjelaskan endpoint yang dieksposnya ke klien Claude Code: SSO sign-in, inferensi, pengiriman pengaturan terkelola, penemuan model, dan telemetri. Ambilnya dengan `curl https://claude-gateway.internal.example.com/protocol` dari gateway yang digunakan apa pun, seperti yang dihasilkan [quickstart](#quickstart) di bawah. Perubahan breaking pada protokol diumumkan sebelumnya, tetapi kompatibilitas backward yang tidak terbatas tidak dijamin.

55 55 

56<h2 id="quickstart">56<h2 id="quickstart">

57 Quickstart57 Quickstart


60Quickstart ini berjalan di jalur minimal: daftarkan klien OAuth di IdP Anda, tulis `gateway.yaml`, jalankan gateway bersama Postgres dengan Docker Compose, dan verifikasi sign-in end to end. Ini menggunakan upstream Amazon Bedrock; Claude Platform on AWS, Agent Platform Google Cloud, Microsoft Foundry, dan API Anthropic sama-sama didukung dengan menukar blok `upstreams` seperti yang ditunjukkan dalam [referensi konfigurasi](/docs/id/claude-apps-gateway-config#upstreams). Di akhir Anda memiliki gateway yang dapat `/login` pengembang.60Quickstart ini berjalan di jalur minimal: daftarkan klien OAuth di IdP Anda, tulis `gateway.yaml`, jalankan gateway bersama Postgres dengan Docker Compose, dan verifikasi sign-in end to end. Ini menggunakan upstream Amazon Bedrock; Claude Platform on AWS, Agent Platform Google Cloud, Microsoft Foundry, dan API Anthropic sama-sama didukung dengan menukar blok `upstreams` seperti yang ditunjukkan dalam [referensi konfigurasi](/docs/id/claude-apps-gateway-config#upstreams). Di akhir Anda memiliki gateway yang dapat `/login` pengembang.

61 61 

62<Note>62<Note>

63 **Terapkan di jaringan pribadi Anda.** Claude Code hanya terhubung ke gateway yang alamatnya pribadi. Ini adalah penjaga keamanan, karena gateway yang dipercaya dapat mendorong pengaturan yang menjalankan perintah pada mesin pengembang. Letakkan gateway di balik load balancer internal atau VPN dan berikan nama host yang hanya diselesaikan ke IP pribadi.63 **Terapkan di jaringan pribadi Anda.** Claude Code hanya terhubung ke gateway yang alamatnya pribadi. Ini adalah penjaga keamanan, karena gateway yang dipercaya dapat mendorong pengaturan yang menjalankan perintah pada mesin pengembang. Letakkan gateway di balik load balancer internal atau VPN dan berikan nama host yang hanya diselesaikan ke IP pribadi. Jika jaringan internal Anda bernomor dari ruang IPv4 publik yang dimiliki organisasi Anda, lihat [Izinkan gateway pada ruang alamat publik yang Anda miliki](#allow-a-gateway-on-public-address-space-you-own).

64 

65 Titik akhir gateway publik yang dioperasikan Anthropic adalah pengecualian: `/login` menerimanya melalui `https://`. Ini adalah kumpulan tetap kecil dari gateway yang dioperasikan Anthropic sendiri; mereka bukan opsi penyebaran yang dapat Anda pilih atau konfigurasi. Daftar dikompilasi ke dalam Claude Code, jadi tidak ada konfigurasi yang dapat menambahkan nama host ke dalamnya dan tidak ada gateway yang Anda hosting yang memenuhi syarat untuk pengecualian. Sebelum v2.1.206, `/login` menolak titik akhir tersebut seperti alamat publik lainnya.

66</Note>64</Note>

67 65 

68<h3 id="prerequisites">66<h3 id="prerequisites">


72Miliki ini sebelum Anda mulai:70Miliki ini sebelum Anda mulai:

73 71 

74| Anda membutuhkan | Detail |72| Anda membutuhkan | Detail |

75| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |73| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

78| PostgreSQL 14 atau lebih baru | Mendukung alur sign-in perangkat, di mana callback browser menulis dan CLI polling membaca, ditambah penghitung batas laju. Postgres yang dikelola apa pun berfungsi, termasuk tingkat terkecil. Tanpa batas pengeluaran yang dikonfigurasi, gateway menyimpan beberapa KB status auth berumur pendek; dengan [batas pengeluaran](/docs/id/claude-apps-gateway-spend-limits), ia juga menyimpan tabel pengeluaran, audit, dan identitas yang tahan lama yang harus dicadangkan. TLS melalui `?sslmode=require` direkomendasikan. |76| PostgreSQL 14 atau lebih baru | Mendukung alur sign-in perangkat, di mana callback browser menulis dan CLI polling membaca, ditambah penghitung batas laju. Postgres yang dikelola apa pun berfungsi, termasuk tingkat terkecil. Tanpa batas pengeluaran yang dikonfigurasi, gateway menyimpan beberapa KB status auth berumur pendek; dengan [batas pengeluaran](/docs/id/claude-apps-gateway-spend-limits), ia juga menyimpan tabel pengeluaran, audit, dan identitas yang tahan lama yang harus dicadangkan. TLS melalui `?sslmode=require` direkomendasikan. |

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

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

81| Alamat jaringan pribadi | Di `/login`, Claude Code memerlukan nama host atau alamat IP gateway untuk diselesaikan hanya ke alamat pribadi: RFC 1918, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7`, atau loopback untuk pengembangan lokal. Pemeriksaan berjalan pada setiap IP yang diselesaikan, jadi jika alamat apa pun yang diselesaikan nama adalah publik, `/login` menolak URL. Jika mesin pengembang merutekan HTTPS melalui proxy perusahaan, sign-in juga memerlukan host proxy untuk diselesaikan ke alamat pribadi; jika tidak, tambahkan host gateway ke `NO_PROXY` sehingga CLI terhubung langsung. Titik akhir gateway publik yang dioperasikan Anthropic dikecualikan dari pemeriksaan alamat pribadi dan proxy: `/login` menerimanya melalui `https://` dengan pencocokan nama host yang tepat, jadi persyaratan jaringan pribadi hanya berlaku untuk gateway yang Anda hosting sendiri. Sebelum v2.1.206, `/login` menolak titik akhir yang dioperasikan Anthropic seperti alamat publik lainnya. |79| Alamat jaringan pribadi | Di `/login`, Claude Code memerlukan nama host atau alamat IP gateway untuk diselesaikan hanya ke alamat pribadi: RFC 1918, link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7`, atau loopback. Untuk gateway yang Anda hosting, alamat publik apa pun di luar blok yang Anda deklarasikan ditolak; lihat [model ancaman](/docs/id/claude-apps-gateway-deploy#threat-model-summary) dalam panduan penyebaran. Jika mesin pengembang merutekan HTTPS melalui proxy perusahaan, sign-in juga memerlukan host proxy untuk diselesaikan ke alamat pribadi; jika tidak, tambahkan host gateway ke `NO_PROXY` sehingga CLI terhubung langsung. Jika jaringan internal Anda bernomor dari ruang IPv4 publik yang dimiliki organisasi Anda, [deklarasikan blok-blok tersebut](#allow-a-gateway-on-public-address-space-you-own) sehingga `/login` menerima gateway di sana. |

82| Runtime Linux | Server gateway hanya berjalan pada biner Linux asli. macOS berfungsi untuk pengembangan lokal. Windows tidak didukung sebagai platform server. |80| Runtime Linux | Server gateway hanya berjalan pada biner Linux asli. macOS berfungsi untuk pengembangan lokal. Windows tidak didukung sebagai platform server. |

83 81 

84Server gateway memerlukan biner `claude` asli; unduh rilis yang disematkan seperti yang dijelaskan dalam [Install Claude Code](/docs/id/setup). Server menggunakan fitur runtime yang tidak tersedia ketika Claude Code berjalan di bawah Node. Jika Anda melihat `requires the native binary` saat boot, beralih ke salah satu metode instalasi standalone.

85 

86<h3 id="steps">82<h3 id="steps">

87 Langkah-langkah83 Langkah-langkah

88</h3>84</h3>


93 </Step>89 </Step>

94 90 

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

96 Postgres 14 atau lebih baru apa pun berfungsi, termasuk tingkat terkelola terkecil. Gateway menjalankan migrasi skema sendiri saat boot, jadi pengguna database memerlukan izin `CREATE TABLE`. Jika kebijakan keamanan Anda melarang DDL dari peran aplikasi, buat skema sebelumnya; lihat [`store`](/docs/id/claude-apps-gateway-config#store).92 Postgres 14 atau lebih baru apa pun berfungsi, termasuk tingkat terkelola terkecil. Gateway menjalankan migrasi skema sendiri saat boot, jadi peran database memerlukan hak untuk membuat dan mengubah tabel; lihat [`store`](/docs/id/claude-apps-gateway-config#store).

97 </Step>93 </Step>

98 94 

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


103 listen:99 listen:

104 host: 0.0.0.0100 host: 0.0.0.0

105 port: 8080101 port: 8080

106 # Diperlukan di balik proxy apa pun yang menghentikan TLS. Digunakan untuk IdP102 # Diperlukan kecuali host adalah alamat loopback. Digunakan untuk IdP

107 # redirect_uri dan dokumen penemuan.103 # redirect_uri dan dokumen penemuan.

108 public_url: https://claude-gateway.internal.example.com104 public_url: https://claude-gateway.internal.example.com

109 105 


137 Konfigurasi ini cukup untuk loop sign-in yang berfungsi dengan katalog model Bedrock default. Setelah berjalan, tambahkan RBAC per-grup dan pengaturan terkelola melalui [`managed.policies`](/docs/id/claude-apps-gateway-config#managed), fan-out telemetri melalui [`telemetry`](/docs/id/claude-apps-gateway-config#telemetry), dan failover multi-upstream, ARN throughput yang disediakan, atau wilayah non-AS melalui [`models`](/docs/id/claude-apps-gateway-config#models).133 Konfigurasi ini cukup untuk loop sign-in yang berfungsi dengan katalog model Bedrock default. Setelah berjalan, tambahkan RBAC per-grup dan pengaturan terkelola melalui [`managed.policies`](/docs/id/claude-apps-gateway-config#managed), fan-out telemetri melalui [`telemetry`](/docs/id/claude-apps-gateway-config#telemetry), dan failover multi-upstream, ARN throughput yang disediakan, atau wilayah non-AS melalui [`models`](/docs/id/claude-apps-gateway-config#models).

138 134 

139 <Note>135 <Note>

140 Upstream Bedrock memerlukan principal AWS dengan `bedrock:InvokeModel` dan `bedrock:InvokeModelWithResponseStream` pada ARN `inference-profile/us.anthropic.*` dan ARN `foundation-model/anthropic.*` yang mendasar, dan akses model diaktifkan di konsol Bedrock untuk model Claude yang Anda inginkan. Sediakan kredensial dengan IRSA di EKS, peran tugas ECS, atau profil instans EC2 daripada kunci statis. [Referensi `upstreams`](/docs/id/claude-apps-gateway-config#upstreams) memiliki detail IAM lengkap, matriks kredensial lintas cloud, dan blok `auth` untuk penyedia lain.136 Upstream Amazon Bedrock memerlukan principal AWS dengan `bedrock:InvokeModel` dan `bedrock:InvokeModelWithResponseStream` pada ARN `inference-profile/us.anthropic.*` dan ARN `foundation-model/anthropic.*` yang mendasar. Ini juga memerlukan formulir kasus penggunaan satu kali Anthropic yang dikirimkan untuk akun dari katalog Model konsol Bedrock.

137 

138 Sediakan kredensial dengan IRSA di EKS, peran tugas ECS, atau profil instans EC2 daripada kunci statis. [Referensi `upstreams`](/docs/id/claude-apps-gateway-config#upstreams) memiliki detail IAM lengkap, matriks kredensial lintas cloud, dan blok `auth` untuk penyedia lain.

141 </Note>139 </Note>

142 </Step>140 </Step>

143 141 

144 <Step title="Jalankan">142 <Step title="Jalankan">

145 Bangun gambar kontainer di sekitar biner `claude` yang memenuhi [persyaratan gambar](/docs/id/claude-apps-gateway-deploy#container-image), kemudian jalankan bersama Postgres:143 Bangun gambar kontainer di sekitar biner `claude` yang memenuhi [persyaratan gambar](/docs/id/claude-apps-gateway-deploy#container-image), kemudian jalankan bersama Postgres. File Compose mereferensikan gambar sebagai `registry.example.com/claude-gateway:2.1.198`; ganti dengan registry dan tag gambar Anda sendiri:

146 144 

147 ```yaml docker-compose.yaml theme={null}145 ```yaml docker-compose.yaml theme={null}

148 services:146 services:

149 gateway:147 gateway:

150 image: <your-registry>/claude-gateway:<version>148 image: registry.example.com/claude-gateway:2.1.198

151 ports: ["8080:8080"]149 ports: ["8080:8080"]

152 volumes: ["./gateway.yaml:/etc/claude/gateway.yaml:ro"]150 volumes: ["./gateway.yaml:/etc/claude/gateway.yaml:ro"]

153 environment:151 environment:

154 OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}152 OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}

155 GATEWAY_JWT_SECRET: ${GATEWAY_JWT_SECRET}153 GATEWAY_JWT_SECRET: ${GATEWAY_JWT_SECRET}

156 GATEWAY_POSTGRES_URL: postgres://gw:pw@postgres/gateway154 GATEWAY_POSTGRES_URL: postgres://gw:pw@postgres/gateway

157 # Kredensial AWS: dalam produksi, hilangkan ini dan gunakan peran instans155 # Kredensial AWS: dalam produksi, hilangkan ini dan gunakan peran instans.

158 # Untuk pengujian Compose lokal, teruskan milik Anda sendiri:156 # Untuk pengujian Compose lokal, teruskan milik Anda sendiri:

159 AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}157 AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}

160 AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}158 AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}


172 volumes: { pgdata: }170 volumes: { pgdata: }

173 ```171 ```

174 172 

175 Gateway adalah biner Linux tunggal yang membaca konfigurasi, menjalankan penemuan OIDC terhadap IdP Anda, menerapkan migrasi skema Postgres-nya, membangun klien upstream, dan mulai mendengarkan. Boot gagal-tertutup untuk konfigurasi, koneksi Postgres dengan timeout 5 detik, penemuan OIDC, dan konstruksi klien upstream. Jika salah satu dari mereka tidak dapat dijangkau atau salah konfigurasi, gateway keluar dengan kesalahan daripada melayani lalu lintas dalam keadaan terdegradasi.173 Gateway adalah biner Linux tunggal yang membaca konfigurasi, terhubung ke Postgres dan menerapkan migrasi skemanya, menjalankan penemuan OIDC terhadap IdP Anda, membangun klien upstream, dan mulai mendengarkan. Boot gagal-tertutup untuk konfigurasi, koneksi Postgres dengan timeout 5 detik, penemuan OIDC, dan konstruksi klien upstream. Jika salah satu dari mereka tidak dapat dijangkau atau salah konfigurasi, gateway keluar dengan kesalahan daripada melayani lalu lintas dalam keadaan terdegradasi.

176 174 

177 Boot yang berhasil tidak memvalidasi jalur inferensi, karena kredensial instans Bedrock dan Agent Platform diselesaikan pada permintaan pertama, bukan saat boot.175 Boot yang berhasil tidak memvalidasi jalur inferensi, karena kredensial instans Bedrock dan Agent Platform diselesaikan pada permintaan pertama, bukan saat boot.

178 176 

179 Tonton stderr untuk urutan boot. Baris log menggunakan format `[gateway] <timestamp> <level> <message>`, acara audit adalah JSON satu baris dengan bidang `evt`, dan spanduk startup, dihilangkan di bawah, dicetak di antara baris migrasi dan mendengarkan. Anda harus melihat, dalam urutan:177 Tonton stderr untuk urutan boot. Baris log menggunakan format `[gateway] <timestamp> <level> <message>`, acara audit adalah JSON satu baris dengan bidang `evt`, dan spanduk startup, dihilangkan di bawah, dicetak di antara baris migrasi dan mendengarkan. Database segar mencetak satu baris `migration N applied` per migrasi skema; database yang sudah dimigrasikan tidak mencetak apa pun. Anda harus melihat, dalam urutan:

180 178 

181 ```text theme={null}179 ```text theme={null}

182 {"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}180 {"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}

181 [gateway] 2026-06-10T17:03:21.395Z info waiting for migration lock (another replica may be migrating; check pg_locks for key 6775156 if this persists)

183 [gateway] 2026-06-10T17:03:21.408Z info migration 1 applied182 [gateway] 2026-06-10T17:03:21.408Z info migration 1 applied

183 …

184 [gateway] 2026-06-10T17:03:21.431Z info migration 6 applied

184 [gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080185 [gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080

185 ```186 ```

186 187 

188 Gateway juga mencatat peringatan bahwa `access_control.allow_cidrs` kosong. Itu diharapkan di sini, karena tidak ada yang membatasi alamat klien mana yang dilayani gateway sampai Anda menetapkan daftar izin. [Referensi `access_control`](/docs/id/claude-apps-gateway-config#http-tuning) memiliki rentang yang direkomendasikan.

189 

187 Jika boot keluar sebelum baris `claude gateway listening on`, baris terakhir stderr menamai masalahnya:190 Jika boot keluar sebelum baris `claude gateway listening on`, baris terakhir stderr menamai masalahnya:

188 191 

189 * Postgres yang tidak dapat dijangkau192 * Postgres yang tidak dapat dijangkau


248 </Step>251 </Step>

249 252 

250 <Step title="Masukkan pengembang">253 <Step title="Masukkan pengembang">

251 Langkah terakhir ini terjadi pada mesin pengembang, bukan server. Atur `forceLoginMethod` ke `"gateway"` dan `forceLoginGatewayUrl` ke `public_url` gateway Anda dalam [file pengaturan terkelola](/docs/id/settings#settings-files) mesin itu, kemudian jalankan `/login`, tekan Enter pada layar **Cloud gateway**, dan selesaikan sign-in browser. [Atur URL gateway](#set-the-gateway-url) di bawah mencakup distribusi kedua kunci dalam skala besar.254 Langkah terakhir ini terjadi pada mesin pengembang, bukan server. Atur `forceLoginMethod` ke `"gateway"` dan `forceLoginGatewayUrl` ke `public_url` gateway Anda dalam [file pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms) mesin itu, kemudian jalankan `/login`, tekan Enter pada layar **Cloud gateway**, dan selesaikan sign-in browser. [Atur URL gateway](#set-the-gateway-url) di bawah mencakup distribusi kedua kunci ke setiap mesin pengembang.

252 </Step>255 </Step>

253</Steps>256</Steps>

254 257 


256 Hubungkan pengembang259 Hubungkan pengembang

257</h2>260</h2>

258 261 

259Pengembang terhubung dari laptop mereka sendiri dengan satu sign-in browser, menggunakan akun kerja perusahaan mereka. Mereka tidak memerlukan akun claude.ai, kunci API, atau langganan, karena permintaan ke model melewati gateway menggunakan kredensial upstream organisasi. Koneksi didorong oleh [pengaturan terkelola sisi klien](/docs/id/claude-apps-gateway-config#client-side-managed-settings) yang Anda dorong melalui MDM, jadi tidak ada penyiapan manual di sisi pengembang; bagian ini mencakup apa yang dikonfigurasi admin.262Pengembang terhubung dari laptop mereka sendiri dengan satu kali masuk browser, menggunakan akun kerja perusahaan mereka. Mereka tidak memerlukan akun claude.ai, kunci API, atau langganan, karena permintaan ke model melewati gateway menggunakan kredensial upstream organisasi. Koneksi didorong oleh [pengaturan yang dikelola sisi klien](/docs/id/claude-apps-gateway-config#client-side-managed-settings) yang Anda dorong melalui MDM, jadi tidak ada pengaturan manual di sisi pengembang; bagian ini mencakup apa yang dikonfigurasi admin.

263 

264CLI memvalidasi sertifikat TLS leaf gateway pada koneksi pertama dan menyematkannya per nama host. Ini memeriksa pin tersebut lagi selama masuk, pada penyegaran sesi senyap, dan pada pengambilan pengaturan yang dikelola, sementara permintaan inferensi menggunakan validasi TLS standar tanpa pin. Permintaan yang dirutekan melalui proxy HTTPS melewati pemeriksaan pin, jadi tambahkan host gateway ke `NO_PROXY` untuk menjaganya tetap langsung.

260 265 

261CLI memfingerprintkan sertifikat daun TLS gateway pada koneksi pertama dan menyematkannya per nama host. Publikasikan sidik jari SHA-256 yang diharapkan bersama URL gateway sehingga pengembang memiliki sesuatu untuk dibandingkan. Dapatkan sidik jari dari file sertifikat dengan `openssl x509 -noout -fingerprint -sha256 -in cert.pem`; prompt `/login` menunjukkan 16 karakter pertama dari digest sebagai heksadesimal huruf kecil tanpa pemisah.266Publikasikan sidik jari SHA-256 yang diharapkan bersama URL gateway sehingga pengembang memiliki sesuatu untuk dibandingkan. Prompt `/login` menampilkan 16 karakter pertama dari sidik jari sebagai heksadesimal huruf kecil tanpa titik dua. Untuk mencetak sidik jari lengkap dalam bentuk itu dari file sertifikat, jalankan:

262 267 

263Ketika sertifikat berputar, setiap pengembang melihat prompt kepercayaan lagi, jadi perlakukan rotasi sebagai acara yang direncanakan dan publikasikan ulang sidik jari.268```bash theme={null}

269openssl x509 -noout -fingerprint -sha256 -in cert.pem | cut -d= -f2 | tr -d : | tr 'A-F' 'a-f'

270```

271 

272Ketika sertifikat berputar, setiap pengembang melihat prompt kepercayaan lagi, jadi perlakukan rotasi sebagai acara yang direncanakan dan publikasikan ulang sidik jari. Jika kebijakan gateway Anda mencakup [pengaturan yang memerlukan persetujuan](/docs/id/server-managed-settings#security-approval-dialogs), pengembang juga melihat dialog persetujuan itu lagi setelah menerima sertifikat baru, karena Claude Code [memori persetujuan](/docs/id/server-managed-settings#approval-memory) kunci ke sertifikat yang disematkan.

273 

274Setelah pengembang masuk, [pemilih model](/docs/id/model-config) menampilkan model dalam daftar izin `availableModels` mereka. Pengaturan yang dikelola diterapkan saat startup dan menyegarkan setiap jam, dan telemetri dirutekan ke kolektor Anda.

264 275 

265Setelah masuk, [pemilih model](/docs/id/model-config) menunjukkan model dalam daftar izin `availableModels` pengembang, pengaturan terkelola diterapkan saat startup dan refresh setiap jam, dan telemetri merutekan ke kolektor Anda. Sesi menyegarkan secara diam-diam sebelum kedaluwarsa `ttl_hours`, dan refresh yang gagal setelah deprovisi IdP meminta re-login.276Sesi menyegarkan secara senyap sebelum kedaluwarsa `ttl_hours`. Ketika penyegaran gagal setelah pemberhentian IdP, Claude Code meminta pengembang untuk masuk lagi.

266 277 

267<h3 id="set-the-gateway-url">278<h3 id="set-the-gateway-url">

268 Atur URL gateway279 Atur URL gateway

269</h3>280</h3>

270 281 

271Atur kedua kunci dalam file [pengaturan terkelola](/docs/id/settings#settings-files) per-OS yang Anda terapkan melalui MDM atau langsung di disk, dan `/login` terbuka langsung pada layar **Cloud gateway** dengan URL diisi:282Tiga kunci masuk ke file [pengaturan yang dikelola](/docs/id/managed-settings#delivery-mechanisms) per-OS yang Anda terapkan melalui MDM atau langsung di disk. `forceLoginMethod` dan `forceLoginGatewayUrl` membuka `/login` langsung di layar **Cloud gateway** dengan URL terisi, dan `parentSettingsBehavior: "merge"` memungkinkan Claude Desktop mengirimkan daftar izin egress gateway ke sesi Claude Code yang diluncurkannya, dijelaskan dalam [Kirimkan kebijakan ke sesi Claude Desktop](#deliver-policy-to-claude-desktop-sessions):

283 

284```json theme={null}

285{

286 "forceLoginMethod": "gateway",

287 "forceLoginGatewayUrl": "https://claude-gateway.internal.example.com",

288 "parentSettingsBehavior": "merge"

289}

290```

291 

292Pengembang menekan Enter untuk terhubung. Prompt [sidik jari TLS koneksi pertama](#connect-developers) masih muncul. Setelah file berada di mesin, pengembang yang belum menyelesaikan masuk gateway melihat salah satu pesan yang dijelaskan di bawah [Kebijakan administrator memerlukan masuk Cloud gateway](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in). Pengembang yang memilih penyedia cloud melalui variabel lingkungan seperti `CLAUDE_CODE_USE_BEDROCK` tidak memerlukan masuk gateway.

293 

294Pengembang tidak dapat mengatur ini secara manual. Pemilih masuk tidak memiliki opsi gateway, dan `forceLoginGatewayUrl` diabaikan dalam file pengaturan pengembang sendiri. `forceLoginMethod` saja, tanpa URL, meninggalkan pengembang di pesan "Hubungi administrator IT Anda". Kunci masuk milik file yang Anda dorong ke mesin, bukan di blok `managed.policies[].cli` gateway, yang hanya menjangkau klien yang sudah terhubung.

295 

296<h3 id="allow-a-gateway-on-public-address-space-you-own">

297 Izinkan gateway pada ruang alamat publik yang Anda miliki

298</h3>

299 

300Beberapa organisasi menomori jaringan internal mereka dari blok IPv4 publik yang mereka miliki, seperti ruang alamat operator sendiri atau `/8` warisan, jadi gateway mereka tidak dapat memiliki alamat pribadi. Daftarkan blok tersebut dalam pengaturan yang dikelola `gatewayInternalNetworks`. `/login` kemudian menerima gateway di dalam blok yang terdaftar ketika mesin pengembang terhubung ke dalamnya dari alamat di dalam blok yang sama. Ini memerlukan Claude Code v2.1.268 atau lebih baru di mesin pengembang; versi sebelumnya mengabaikan kunci dan menerapkan aturan alamat pribadi.

301 

302<Warning>

303 `gatewayInternalNetworks` adalah untuk jaringan internal yang kebetulan dinomori dari ruang alamat publik. Itu tidak membuat aman untuk mengekspos gateway ke internet: gateway yang dipercaya dapat mendorong pengaturan yang menjalankan perintah di mesin pengembang.

304 

305 Jaga gateway tidak dapat dijangkau dari luar jaringan Anda dengan aturan firewall atau load balancer Anda. Atur [`access_control.allow_cidrs`](/docs/id/claude-apps-gateway-config#http-tuning) gateway ke blok yang sama yang Anda deklarasikan di sini, jadi gateway itu sendiri menolak klien dari tempat lain. Di belakang load balancer atau ingress, atur `listen.trusted_proxies` ke front end itu juga, karena gateway sebaliknya mencocokkan `allow_cidrs` terhadap alamat front end itu sendiri daripada pengembang.

306</Warning>

307 

308Tambahkan kunci ke sumber pengaturan yang dikelola yang sama dengan kunci masuk: file pengaturan yang dikelola, profil MDM, atau kebijakan registri. Claude Code mengabaikannya dalam pengaturan pengguna, proyek, dan yang dikelola server.

309 

310Contoh ini mendeklarasikan satu blok. Ganti `203.0.113.0/24` dengan blok Anda sendiri. Ini adalah rentang dokumentasi, dan Claude Code menolak yang tersebut.

311 

312```json theme={null}

313{

314 "gatewayInternalNetworks": ["203.0.113.0/24"]

315}

316```

317 

318Claude Code memvalidasi daftar di `/login` sebelum menghubungi gateway apa pun:

319 

320* Setiap entri adalah blok IPv4 yang ditulis sebagai alamat pertamanya dan awalan dari `/8` hingga `/32`.

321* Daftar menampung paling banyak empat blok, dan tidak ada dua yang tumpang tindih.

322* Tidak ada blok yang tumpang tindih dengan ruang alamat pribadi: `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, `127.0.0.0/8`, `169.254.0.0/16`, dan `100.64.0.0/10`. `/login` sudah menerima gateway di sana tanpa kunci ini.

323* Tidak ada blok yang tumpang tindih dengan ruang yang tidak pernah menjadi jaringan organisasi: `198.18.0.0/15` dan `192.0.0.0/24`, yang dipegang klien VPN dan NAT64 sebagai alamat lokal; rentang dokumentasi `192.0.2.0/24`, `198.51.100.0/24`, dan `203.0.113.0/24`; dan rentang yang dicadangkan `0.0.0.0/8`, `192.88.99.0/24`, dan multicast `224.0.0.0/4`. Anda dapat mendeklarasikan blok di dalam `240.0.0.0/4`, yang digunakan beberapa jaringan besar sebagai ruang unicast internal.

324 

325Blok dari `managed-settings.json` dan file drop-in `managed-settings.d/` menggabungkan menjadi satu daftar, dan batas ini berlaku untuk daftar gabungan. Untuk mempersempit blok, ganti entrinya daripada menambahkan yang kedua, tumpang tindih dalam drop-in; `/login` menolak tumpang tindih.

326 

327Jika entri melanggar aturan, atau nilainya bukan daftar string, Claude Code menolak setiap masuk gateway baru di mesin itu dan menamai masalahnya dalam pesan. Masuk ke gateway pada alamat pribadi gagal juga, dan masuk yang ada tetap berfungsi. Coba nilai pada satu mesin sebelum Anda menerapkannya. Claude Code juga mencantumkan nilai yang salah ketik di antara [pengaturan yang dikelola tidak valid yang dilaporkannya](/docs/id/managed-settings#keys-that-fail-closed).

328 

329Dengan daftar yang valid, `/login` menerapkan tiga pemeriksaan ke gateway yang alamatnya berada di dalam blok yang terdaftar:

330 

331* Setiap alamat yang diselesaikan nama host gateway berada di dalam blok itu saja. Claude Code menolak nama yang juga memiliki catatan di luarnya, alamat pribadi dan IPv6 disertakan.

332* Mesin pengembang terhubung dari dalam blok yang sama. Claude Code menolak mesin di belakang NAT, di dalam kontainer atau WSL2, atau di VPN yang kumpulan alamatnya berada di luar blok, dan menamai alamat yang terhubung mesin dari.

333* Koneksi bersifat langsung. Jika `HTTPS_PROXY` berlaku untuk host gateway, `/login` menolak dan menamai entri `NO_PROXY` untuk ditambahkan.

334 

335Ketika ketiga hal tersebut lulus, [prompt kepercayaan](#connect-developers) menambahkan baris yang menamai alamat mesin, alamat gateway, dan blok yang dideklarasikan yang berisi keduanya.

336 

337Kunci tidak mengubah apa pun untuk gateway lainnya: masuk ke yang ada di alamat pribadi berfungsi seperti sebelumnya, dan masuk ke yang ada di alamat publik di luar setiap blok yang terdaftar ditolak seperti sebelumnya.

338 

339Blok yang dideklarasikan mempersempit siapa yang dapat masuk tetapi tidak membuktikan di mana mesin berada, jadi deklarasikan hanya ruang alamat yang dikendalikan organisasi Anda. Blok yang dibagikan dengan penyewa lain, seperti rentang publik penyedia cloud, membiarkan siapa pun di dalamnya lulus pemeriksaan yang sama.

340 

341<h3 id="deliver-policy-to-claude-desktop-sessions">

342 Kirimkan kebijakan ke sesi Claude Desktop

343</h3>

344 

345Claude Desktop menjalankan tab Cowork dan Code-nya, ditambah tab Chat ketika Anda mengaktifkannya, pada sesi Claude Code tertanam dan mengirimkan permintaan model mereka melalui gateway. Ini melewatkan kebijakan ke setiap sesi tersebut, dibangun dari konfigurasi yang dilayani gateway di `/user/bootstrap`: daftar izin model, alat yang dinonaktifkan, dan daftar izin egress yang berasal dari blok `cli` kebijakan yang cocok, ditambah [overlay `desktop`](/docs/id/claude-apps-gateway-config#claude-desktop-overlay).

346 

347Kunci `cli` lainnya, seperti hooks, `env`, dan aturan izin berskop seperti `Bash(npm *)`, hanya menjangkau klien yang masuk melalui `/login`. Claude Desktop membaca URL gateway dari konfigurasi yang dikelolanya sendiri dan masuk dengan alurnya sendiri, terpisah dari kunci `forceLoginMethod` dan `forceLoginGatewayUrl` dalam [Atur URL gateway](#set-the-gateway-url).

348 

349Pengaturan yang dilewatkan oleh proses peluncur adalah pengaturan induk. Claude Code mengabaikan pengaturan induk di mesin apa pun yang memiliki sumber yang dikelola yang diterapkan admin, kecuali [sumber yang mengirimkan kebijakan](/docs/id/managed-settings#which-managed-source-claude-code-uses) menetapkan `parentSettingsBehavior: "merge"`.

350 

351<h4 id="which-machines-need-the-opt-in">

352 Mesin mana yang memerlukan opt-in

353</h4>

354 

355Mesin yang hanya menjalankan Claude Desktop membutuhkannya. Claude Desktop menerapkan daftar model dan daftar alat yang dinonaktifkan ke sesi tertanam itu sendiri, tetapi daftar izin egress menjangkaunya hanya sebagai pengaturan induk, dalam bentuk aturan domain `WebFetch` dan aturan jaringan sandbox. Tanpa opt-in, sesi tersebut berjalan tanpa pembatasan egress, dan tidak ada yang memperingatkan Anda. Gateway masih menolak permintaan inferensi untuk model yang tidak diizinkan kebijakan.

356 

357Mesin tempat pengembang masuk melalui `/login` tidak membutuhkannya; setiap sesi Claude Code mengambil kebijakannya dari gateway.

358 

359Armada yang [`policyHelper`](/docs/id/settings-reference#policyhelper) mereka suplai pengaturan yang dikelola tidak dapat menggunakannya: Claude Code tidak pernah menggabungkan pengaturan induk pada armada tersebut, karena membaca pengaturan yang dikelola dari output helper saja.

360 

361<h4 id="set-the-opt-in">

362 Atur opt-in

363</h4>

364 

365Terapkan cuplikan pengaturan yang dikelola dari [Atur URL gateway](#set-the-gateway-url), cerminkan ke sumber sisi klien apa pun yang melampaui file, kemudian verifikasi.

366 

367<Steps>

368 <Step title="Terapkan opt-in dalam file pengaturan yang dikelola">

369 [Cuplikan di atas](#set-the-gateway-url) sudah mencakup `parentSettingsBehavior: "merge"`, jadi file yang Anda dorong ke mesin membawanya.

370 </Step>

371 

372 <Step title="Cerminkan cuplikan ke sumber apa pun yang melampaui file">

373 Claude Code membaca `parentSettingsBehavior` hanya dari [sumber yang dipilih](/docs/id/managed-settings#which-managed-source-claude-code-uses). Menambahkan kunci kebijakan apa pun ke sumber dapat membuat sumber itu menjadi sumber yang dipilih, jadi dalam sumber sisi klien, cerminkan seluruh cuplikan daripada `parentSettingsBehavior` saja. [Pengaturan yang dikelola sisi klien](/docs/id/claude-apps-gateway-config#client-side-managed-settings) mencakup armada yang mengirimkan kebijakan melalui Group Policy atau profil konfigurasi. Plist preferensi yang dikelola di macOS atau kebijakan HKLM di Windows melampaui file `managed-settings.json`, dan pengaturan yang dikelola jarak jauh gateway melampaui keduanya, jadi pada mesin yang masuk ke gateway, juga atur `parentSettingsBehavior` dalam [blok `cli`](/docs/id/claude-apps-gateway-config#managed) kebijakan gateway.

374 </Step>

375 

376 <Step title="Periksa sumber mana yang dipilih">

377 Pada mesin yang hanya menjalankan Claude Desktop, panggil [`resolveSettings()`](/docs/id/agent-sdk/typescript#resolvesettings) SDK Agent dan baca `policyOrigin` pada entri `managed` dalam daftar `sources`-nya. Nilai tersebut menamai sumber sisi klien yang dipilih, `plist`, `hklm`, atau `file`, yang merupakan sumber yang harus membawa cuplikan. Sesi tertanam Claude Desktop tidak mengambil kebijakan gateway, jadi blok `cli` gateway tidak pernah dihitung sebagai sumber yang dipilih untuk mereka.

378 </Step>

379</Steps>

380 

381<h3 id="restrict-parent-settings">

382 Batasi pengaturan induk

383</h3>

384 

385Setelah Anda menerapkan `parentSettingsBehavior: "merge"`, proses host apa pun yang meluncurkan Claude Code dapat menyuplai pengaturan induk, bukan hanya Claude Desktop tetapi juga aplikasi Agent SDK atau ekstensi IDE.

386 

387Claude Code memfilter pengaturan induk terhadap daftar izin kunci yang membatasi, tetapi beberapa kunci yang diizinkan dapat memberikan akses daripada membatasinya. Kecuali Anda menetapkan kunci `allowManaged*Only`, aturan izin izin dan daftar izin sandbox yang disuplai host masih berlaku. Aturan penolakan dan tanya kebijakan Anda tetap berlaku bagaimanapun; [mereka dievaluasi sebelum aturan izin apa pun](/docs/id/permissions#manage-permissions).

388 

389Claude Code meneruskan entri [`sandbox.credentials`](/docs/id/settings-reference#sandbox-credentials) yang disuplai induk dalam bentuk yang dilucuti:

390 

391* **Entri `deny`**: diteruskan hanya dengan `path` atau `name` dan mode mereka.

392* **Entri File dengan [`mode: mask`](/docs/id/sandboxing#mask-credential-files)**: diteruskan hanya sentinel, sebagai topeng seluruh file yang `injectHosts`-nya adalah daftar kosong, jadi proxy tidak pernah mengganti nilai nyata untuk entri yang disuplai induk di platform apa pun. Semua bidang masking terstruktur dijatuhkan juga, jadi pola ekstrak yang disuplai induk tidak dapat menggantikan topeng yang lebih ketat yang sumber lain tetapkan untuk jalur yang sama.

393* **Entri `envVars` dengan `mode: mask`**: tidak diteruskan. `deny` adalah satu-satunya pembatasan yang dapat diekspresikan saluran induk melalui entri `envVars`.

394* **[`awsPairs` dan `sigv4`](/docs/id/sandboxing#re-sign-aws-requests)**: diteruskan pembatasan saja. Dari `sigv4`, hanya nilai `deny` yang disimpan, dan induk yang mendefinisikan blok `sigv4` sama sekali menyematkan ketiga bentuk permintaan, `streaming`, `presigned`, dan `sigv4a`, ke `deny`. Pasangan `awsPairs` tidak pernah diteruskan dalam bentuk yang dapat menandatangani ulang; pasangan yang menamai salah satu variabel AWS konvensional diganti dengan entri inert yang menjaga pemasangan otomatis `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, dan `AWS_SESSION_TOKEN` ditekan.

395 

396<h4 id="deploy-the-locks">

397 Terapkan kunci

398</h4>

399 

400Untuk menjaga pengaturan induk sedekat mungkin dengan pembatasan saja seperti yang didukung filter, tambahkan semua lima kunci `allowManaged*Only`, dan daftar izin yang mereka perintah, ke sumber yang sama dengan opt-in penggabungan:

272 401 

273```json theme={null}402```json theme={null}

274{403{

275 "forceLoginMethod": "gateway",404 "forceLoginMethod": "gateway",

276 "forceLoginGatewayUrl": "https://claude-gateway.internal.example.com"405 "forceLoginGatewayUrl": "https://claude-gateway.internal.example.com",

406 "parentSettingsBehavior": "merge",

407 "allowManagedPermissionRulesOnly": true,

408 "allowManagedMcpServersOnly": true,

409 "allowManagedHooksOnly": true,

410 "allowedMcpServers": [{ "serverUrl": "https://mcp.internal.example.com/*" }],

411 "sandbox": {

412 "network": {

413 "allowManagedDomainsOnly": true,

414 "allowedDomains": ["github.com", "*.npmjs.org"]

415 },

416 "filesystem": {

417 "allowManagedReadPathsOnly": true,

418 "denyRead": ["~/"],

419 "allowRead": ["~/projects"]

420 }

421 }

277}422}

278```423```

279 424 

280Pengembang menekan Enter untuk terhubung. Prompt sidik jari TLS koneksi pertama masih muncul.425Kebijakan OS, seperti kebijakan registri HKLM atau plist preferensi yang dikelola, melampaui file ini, jadi kirimkan seluruh cuplikan melaluinya daripada file. Pengaturan yang dikelola jarak jauh gateway melampaui sumber kebijakan OS dan file tetapi hanya menjangkau klien yang terhubung. Cerminkan kunci, daftar izin, dan opt-in penggabungan ke dalam [blok `cli`](/docs/id/claude-apps-gateway-config#managed) kebijakan dan jaga file ini tetap diterapkan, karena mesin yang tidak pernah terhubung, termasuk yang hanya menjalankan Claude Desktop, mendapatkan kebijakan mereka dari file saja.

426 

427<h4 id="lock-behavior-across-sources">

428 Perilaku kunci di seluruh sumber

429</h4>

430 

431Menetapkan satu kunci tidak membatasi yang lain; setiap kunci didokumentasikan dalam [referensi pengaturan](/docs/id/settings-reference#all-settings).

432 

433Dari sumber admin di bawah pemenang, dua kunci sandbox masih berlaku, dan `allowManagedPermissionRulesOnly` masih memblokir aturan izin yang disuplai induk dan `additionalDirectories`. Pada Claude Code v2.1.273 atau lebih baru, kunci server MCP juga berlaku dari sumber di bawah pemenang, dan sementara itu aktif, daftar `allowedMcpServers` yang dikelola berasal dari sumber admin prioritas tertinggi yang menetapkan satu.

434 

435Kunci hooks dan efek `allowManagedPermissionRulesOnly` pada aturan pengembang sendiri memerlukan sumber pemenang secara default; di bawah opt-in penggabungan `managedSourcesBehavior` dalam [bagaimana Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources), Claude Code menerapkan nilai paling ketat yang ditetapkan sumber apa pun untuk setiap kunci. Pada armada [`policyHelper`](/docs/id/settings-reference#policyhelper), Claude Code membaca kunci dari output helper saja.

281 436 

282Tidak ada opsi gateway di pemilih login untuk pengembang memilih secara manual, dan `forceLoginGatewayUrl` diabaikan dalam file pengaturan pengembang mereka sendiri. `forceLoginMethod` saja, tanpa URL, meninggalkan pengembang pada pesan "Hubungi administrator IT Anda". Kedua kunci milik file yang Anda dorong ke mesin, bukan di blok `managed.policies[].cli` gateway, yang hanya menjangkau klien yang sudah terhubung.437Setiap kunci membuat Claude Code mengabaikan entri pengembang sendiri untuk pengaturan itu, jadi sertakan daftar izin organisasi Anda di sebelah kunci:

438 

439* **Domain jaringan**: mengunci dengan daftar domain yang dikelola kosong memblokir semua lalu lintas keluar sandbox.

440* **Server MCP**: mengunci tanpa `allowedMcpServers` yang dikelola dalam sumber admin apa pun atau dalam pengaturan yang disuplai induk memuat setiap server yang tidak diblokir `deniedMcpServers`.

441* **Jalur baca**: entri `allowRead` hanya mengizinkan ulang jalur di dalam wilayah `denyRead`, jadi pasangkan dengan `denyRead` yang dikelola.

442 

443<h4 id="settings-the-locks-don’t-cover">

444 Pengaturan yang tidak dicakup kunci

445</h4>

446 

447Empat pengaturan yang disuplai induk melewati filter bahkan dengan semua lima kunci yang ditetapkan. Di bawah pengaturan pertama-menang default, nilai admin yang memblokir induk adalah yang ada di sumber admin prioritas tertinggi, kecuali untuk `allowedMcpServers` sementara [kunci server MCP](#lock-behavior-across-sources) aktif. Di bawah opt-in penggabungan `managedSourcesBehavior`, [bagaimana Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan nilai sumber mana yang berlaku sebagai gantinya.

448 

449* **`forceLoginOrgUUID`**: Claude Code menghormati nilai yang disuplai induk ketika sumber admin prioritas tertinggi tidak menetapkan UUID organisasi. Masuk gateway tidak memeriksa kunci ini, jadi itu penting hanya untuk armada yang juga menggunakan masuk Anthropic pihak pertama. UUID organisasi dalam sumber admin prioritas tertinggi memblokir nilai induk dan adalah yang ditegakkan Claude Code, jadi atur `forceLoginOrgUUID` di sana.

450* **`allowedMcpServers`**: Claude Code menghormati daftar izin yang disuplai induk ketika sumber admin prioritas tertinggi tidak menetapkan satu. `allowManagedMcpServersOnly` tidak memblokirnya, karena kunci menegakkan daftar mana pun yang menang sebagai nilai yang dikelola, termasuk daftar yang disuplai induk ketika sumber admin prioritas tertinggi tidak menetapkan satu. Daftar dalam sumber admin prioritas tertinggi memblokir induk dan adalah daftar yang ditegakkan Claude Code, jadi atur `allowedMcpServers` di sana, di sebelah kunci. Sebelum v2.1.223, nilai untuk salah satu kunci dalam sumber admin apa pun memblokir induk.

451* **`availableModels`**: Claude Code menghormati daftar model yang disuplai induk ketika sumber yang dikelola pemenang tidak menetapkan satu. Jika armada Anda membatasi model, atur `availableModels` dalam sumber pemenang.

452* **`strictPluginOnlyCustomization`**: kunci ini melewati filter terlepas dari kunci apa pun, dan itu membuat Claude Code mengabaikan kustomisasi pengembang sendiri, termasuk hooks pelindung. Tidak ada kunci yang memblokirnya.

453 

454<h3 id="connect-claude-desktop">

455 Hubungkan Claude Desktop

456</h3>

457 

458[Claude Desktop](/docs/id/desktop) terhubung ke gateway yang sama melalui kunci MDM yang berbeda: atur `bootstrapUrl` dalam [konfigurasi yang dikelola](https://claude.com/docs/third-party/claude-desktop/configuration) Claude Desktop ke `<listen.public_url>/user/bootstrap`, dan opt-in kebijakan pengguna dengan kunci `desktop`. [Overlay Claude Desktop](/docs/id/claude-apps-gateway-config#claude-desktop-overlay) mencakup kedua bagian. Memerlukan Claude Code v2.1.203 atau lebih baru di server gateway.

459 

460Claude Desktop menandatangani pengembang melalui penyedia identitas gateway dengan langkah SSO browser yang sama, kemudian mengambil konfigurasinya dari gateway daripada dari Anthropic. Akses model dan kebijakan mengikuti aturan per-grup yang sama dengan CLI. Pengembang yang menggunakan CLI dan Claude Desktop keduanya masuk ke masing-masing secara terpisah; sesi gateway tidak dibagikan di antara mereka.

461 

462Setelah terhubung, Claude Desktop mengirimkan permintaan model dari setiap tab yang diaktifkan melalui gateway. Ini menampilkan tab Cowork dan Code secara default. Untuk mengaktifkan tab Chat juga, atur `chatTabEnabled` ke `true` dalam [konfigurasi yang dikelola](https://claude.com/docs/third-party/claude-desktop/configuration) Claude Desktop, atau dalam [blok `desktop`](/docs/id/claude-apps-gateway-config#claude-desktop-overlay) kebijakan pada gateway yang menjalankan Claude Code v2.1.227 atau lebih baru.

283 463 

284<h3 id="ci-pipelines-and-remote-machines">464<h3 id="ci-pipelines-and-remote-machines">

285 Pipeline CI dan mesin jarak jauh465 Pipa CI dan mesin jarak jauh

286</h3>466</h3>

287 467 

288Tidak ada alur token layanan untuk pipeline yang tidak diawasi. Sign-in gateway selalu menjalankan alur perangkat browser, jadi pekerjaan CI tanpa pengembang untuk menyetujui sign-in tidak dapat mengautentikasi; konfigurasikan mereka terhadap penyedia Anda secara langsung.468Tidak ada alur token layanan untuk pipa yang tidak diawasi. Masuk gateway selalu menjalankan alur perangkat browser, jadi pekerjaan CI tanpa pengembang untuk menyetujui masuk tidak dapat mengautentikasi; konfigurasikan yang terhadap penyedia Anda secara langsung.

289 469 

290Setelah pengembang masuk, setiap invokasi Claude Code pada mesin itu menggunakan sesi gateway, termasuk run `claude -p` non-interaktif dan sesi yang dimulai oleh Agent SDK, dan [kebijakan gateway berlaku untuk semuanya](/docs/id/claude-apps-gateway-config#managed).470Setelah pengembang masuk, setiap sesi Claude Code di mesin itu menggunakan sesi gateway, termasuk `claude -p` berjalan non-interaktif dan sesi yang dimulai oleh Agent SDK. Claude Code menerapkan [kebijakan gateway](/docs/id/claude-apps-gateway-config#managed) ke masing-masing.

291 471 

292Alur perangkat memisahkan CLI polling dari browser yang menyetujui, jadi kotak pengembangan jarak jauh tanpa tampilan masih berfungsi: pengembang menjalankan `/login` melalui SSH pada mesin jarak jauh dan membuka tautan verifikasi di browser di laptop mereka.472Alur perangkat memisahkan CLI polling dari browser yang menyetujui, jadi kotak pengembangan jarak jauh tanpa tampilan masih berfungsi: pengembang menjalankan `/login` melalui SSH di mesin jarak jauh dan membuka tautan verifikasi di browser di laptop mereka.

293 473 

294<h3 id="what’s-enforced-on-developers">474<h3 id="whats-enforced-on-developers">

295 Apa yang diberlakukan pada pengembang475 Apa yang ditegakkan pada pengembang

296</h3>476</h3>

297 477 

298Jaminan ini berlaku untuk setiap sesi gateway yang masuk.478Jaminan ini berlaku untuk setiap sesi yang masuk melalui `/login`. Sesi tertanam yang diluncurkan Claude Desktop mendapatkan kebijakan mereka seperti yang dijelaskan dalam [Kirimkan kebijakan ke sesi Claude Desktop](#deliver-policy-to-claude-desktop-sessions), dan poin telemetri mengatakan ke mana ekspor mereka pergi.

299 479 

300* **Akses model**: permintaan untuk model yang tidak diberikan kebijakan mengembalikan 400, dan pemilih `/model` disaring ke daftar izin `availableModels` kebijakan. Atur [`enforceAvailableModels: true`](/docs/id/model-config#default-model-behavior) dalam kebijakan sehingga opsi Default diselesaikan ke model di dalam `availableModels` alih-alih ke default bawaan Claude Code; tanpanya, Default tetap dapat dipilih dan ditolak saat permintaan jika model itu tidak diberikan.480* **Akses model**: permintaan untuk model yang tidak diizinkan kebijakan mengembalikan 400, dan pemilih `/model` disaring ke daftar izin `availableModels` kebijakan. Atur [`enforceAvailableModels: true`](/docs/id/model-config#default-model-behavior) dalam kebijakan sehingga opsi Default diselesaikan ke model dalam `availableModels` daripada ke default bawaan Claude Code; tanpanya, Default tetap dapat dipilih dan ditolak pada waktu permintaan jika model itu tidak diizinkan.

301* **Tujuan telemetri**: ketika [penerusan telemetri](/docs/id/claude-apps-gateway-config#telemetry) dikonfigurasi, endpoint ekspor OTLP disematkan ke gateway, dan konfigurasi yang didorong gateway mengganti variabel `OTEL_*` yang ditetapkan secara lokal.481* **Tujuan telemetri**: dalam sesi yang masuk melalui `/login`, CLI mengirimkan ekspor OTLP/HTTP-nya ke gateway daripada ke `OTEL_EXPORTER_OTLP_ENDPOINT` yang ditetapkan secara lokal, kecuali kebijakan [menamai kolektor Anda sebagai titik akhir](/docs/id/claude-apps-gateway-config#export-directly-to-your-collector). Gateway meneruskan ekspor yang diterimanya ke tujuan dalam [`telemetry.forward_to`](/docs/id/claude-apps-gateway-config#telemetry).

302* **Kredensial**: token gateway adalah satu-satunya kredensial sesi. `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_API_KEY`, `apiKeyHelper`, dan login claude.ai sebelumnya diabaikan saat masuk, jadi pengembang tidak perlu keluar dari claude.ai terlebih dahulu.482 * Dalam sesi tertanam yang [diluncurkan Claude Desktop](#connect-claude-desktop), CLI mengirimkan ekspor ke `OTEL_EXPORTER_OTLP_ENDPOINT` yang dikonfigurasi. CLI melampirkan token sesi gateway ke ekspor tersebut hanya ketika titik akhir itu menunjuk ke gateway itu sendiri.

303* **Pengaturan terkelola**: kunci terkunci tidak dapat ditimpa secara lokal. CLI menerapkan kebijakan saat startup dan pada setiap polling setiap jam.483 * Tanpa tujuan yang dikonfigurasi untuk sinyal, gateway menerima dan membuangnya.

304* **Startup**: sesi yang masuk keluar saat startup dengan kesalahan setelah sekitar 10 detik ketika gateway tidak dapat dijangkau, daripada memulai tanpa pengaturan mereka.484 * Jika Anda sudah mengumpulkan telemetri Claude Code secara langsung, tambahkan kolektor Anda sebagai tujuan `forward_to`, atau namakannya dalam kebijakan untuk melewati relay.

305* **Deprovisi**: sesi yang penggunanya dinonaktifkan di IdP kedaluwarsa dalam `ttl_hours` ketika refresh berikutnya gagal.485* **Kredensial**: token gateway adalah satu-satunya kredensial sesi. [Profil Anthropic](/docs/id/authentication#anthropic-profiles-and-federation-credentials) dan masuk claude.ai sebelumnya diabaikan saat masuk, jadi pengembang tidak perlu keluar dari claude.ai terlebih dahulu. Untuk kredensial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` yang dikonfigurasi, lihat [Kebijakan administrator memerlukan masuk Cloud gateway](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in).

486* **Pengaturan yang dikelola**: kunci yang dikunci tidak dapat ditimpa secara lokal. CLI menerapkan kebijakan saat startup dan menerapkan perubahan pada setiap polling per jam, terlepas dari [perubahan yang hanya berlaku pada peluncuran berikutnya](/docs/id/server-managed-settings#fetch-and-caching-behavior).

487* **Startup dengan gateway tidak dapat dijangkau**: sesi yang masuk keluar saat startup dengan kesalahan setelah sekitar 10 detik daripada memulai tanpa pengaturan mereka.

488* **Startup setelah gateway mengakhiri sesi**: lihat [Tegakkan startup yang gagal-tertutup](/docs/id/server-managed-settings#enforce-fail-closed-startup) untuk peluncuran yang membuka keluar dari gateway dan yang keluar ketika gateway menjawab dengan `401`.

489* **Pemberhentian**: sesi yang pengguna-nya dinonaktifkan dalam IdP kedaluwarsa dalam `ttl_hours` ketika penyegaran berikutnya gagal.

306 490 

307<h3 id="what-the-organization-can-see">491<h3 id="what-the-organization-can-see">

308 Apa yang dapat dilihat organisasi492 Apa yang dapat dilihat organisasi

309</h3>493</h3>

310 494 

311Telemetri penggunaan membawa identitas pengembang, hitungan token, model, dan latensi ke kolektor organisasi. Gateway tidak mencatat atau menyimpan konten prompt atau penyelesaian. Apakah telemetri yang lebih kaya seperti log dan jejak dikumpulkan, yang dapat mencakup perintah dan jalur file, adalah pilihan organisasi [per-tujuan](/docs/id/claude-apps-gateway-config#telemetry).495Telemetri penggunaan membawa identitas pengembang, hitungan token, model, dan latensi ke kolektor organisasi. Gateway tidak mencatat atau menyimpan konten prompt atau penyelesaian. Apakah telemetri yang lebih kaya seperti log dan jejak dikumpulkan, yang dapat mencakup perintah dan jalur file, adalah [pilihan per-tujuan](/docs/id/claude-apps-gateway-config#telemetry) organisasi.

312 496 

313<h2 id="availability-and-limitations">497<h2 id="availability-and-limitations">

314 Ketersediaan dan keterbatasan498 Ketersediaan dan keterbatasan


318 502 

319Gateway mengirimkan nilai [`anthropic-beta`](https://platform.claude.com/docs/en/api/beta-headers) yang dikirim CLI ke setiap upstream, jadi operator tidak mempertahankan daftar izin beta. Untuk Amazon Bedrock, yang mengabaikan header, gateway memindahkan nilai ke bidang `anthropic_beta` badan permintaan; upstream lainnya menerima header seperti yang dikirim.503Gateway mengirimkan nilai [`anthropic-beta`](https://platform.claude.com/docs/en/api/beta-headers) yang dikirim CLI ke setiap upstream, jadi operator tidak mempertahankan daftar izin beta. Untuk Amazon Bedrock, yang mengabaikan header, gateway memindahkan nilai ke bidang `anthropic_beta` badan permintaan; upstream lainnya menerima header seperti yang dikirim.

320 504 

321Set beta sesi gateway CLI menghilangkan beta khusus pihak pertama dan beta extended-cache-ttl, itulah mengapa baris tersebut di bawah menunjukkan sebagai tidak tersedia.

322 

323| Fitur | Status | Catatan |505| Fitur | Status | Catatan |

324| ----------------------------------------------------------------------------------------------------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |506| ----------------------------------------------------------------------------------------------------------------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

325| Penerusan inferensi (Amazon Bedrock, Claude Platform on AWS, Agent Platform Google Cloud, Microsoft Foundry, Anthropic) | Tersedia | Dengan terjemahan model per-upstream dan failover. Upstream Amazon Bedrock menggunakan endpoint `bedrock-runtime` dan rantai kredensial default AWS; [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) Amazon Bedrock bukan upstream yang didukung. [Upstream Claude Platform on AWS](/docs/id/claude-apps-gateway-config#claude-platform-on-aws) memerlukan Claude Code v2.1.198 atau lebih baru di server gateway. |507| Penerusan inferensi (Amazon Bedrock, Claude Platform on AWS, Agent Platform Google Cloud, Microsoft Foundry, Anthropic) | Tersedia | Dengan terjemahan model per-upstream dan failover. Upstream Amazon Bedrock menggunakan endpoint `bedrock-runtime` dan rantai kredensial default AWS; [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) Amazon Bedrock bukan upstream yang didukung. [Upstream Claude Platform on AWS](/docs/id/claude-apps-gateway-config#claude-platform-on-aws) memerlukan Claude Code v2.1.198 atau lebih baru di server gateway. |

326| Akses model dan pengaturan terkelola berdasarkan grup IdP | Tersedia | Akses model diberlakukan di sisi server; pengaturan terkelola disampaikan per grup IdP dan diterapkan oleh CLI di [tingkat pengaturan terkelola](/docs/id/settings#settings-precedence) |508| Akses model dan pengaturan terkelola berdasarkan grup IdP | Tersedia | Akses model diberlakukan di sisi server; pengaturan terkelola disampaikan per grup IdP dan diterapkan oleh CLI di [tingkat pengaturan terkelola](/docs/id/settings#settings-precedence) |

509| Claude Desktop | Tersedia dengan opt-in | Gateway melayani konfigurasi Claude Desktop di `/user/bootstrap` setelah kebijakan [memilih dengan kunci `desktop`](/docs/id/claude-apps-gateway-config#claude-desktop-overlay), dan Claude Desktop mengirim permintaan model dari tab Cowork dan Code, dan dari tab Chat ketika Anda mengaktifkannya, melalui gateway. Untuk mengaktifkan tab Chat, lihat [Hubungkan Claude Desktop](#connect-claude-desktop). Memerlukan Claude Code v2.1.203 atau lebih baru di server gateway. |

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

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

329| Batas pengeluaran per-pengguna dan per-grup | Tersedia | Lihat [Spend limits](/docs/id/claude-apps-gateway-spend-limits) |512| Batas pengeluaran per-pengguna dan per-grup | Tersedia | Lihat [Spend limits](/docs/id/claude-apps-gateway-spend-limits) |

330| Pencarian web sisi server | Tidak tersedia | CLI tidak dapat melihat penyedia upstream mana yang dirutekan gateway, jadi tidak dapat memverifikasi dukungan pencarian web dan menonaktifkan WebSearch pada sesi gateway |513| Pencarian web sisi server | Tidak tersedia | CLI tidak dapat melihat penyedia upstream mana yang dirutekan gateway, jadi tidak dapat memverifikasi dukungan pencarian web dan menonaktifkan WebSearch pada sesi gateway |

331| Prompt caching standar | Tersedia | Breakpoint `cache_control` diteruskan ke setiap upstream |514| [Remote Control](/docs/id/remote-control) | Tidak tersedia | CLI menampilkan [kesalahan yang menyebutkan gateway](/docs/id/errors#remote-control-requires-the-anthropic-api) |

515| [`/design-sync`](/docs/id/commands#all-commands) dan `/design-login` | Tidak tersedia | Keduanya memerlukan claude.ai, yang tidak dihubungi CLI pada sesi gateway, jadi tidak ada perintah yang muncul di sana |

516| Fitur yang memerlukan pengambilan flag fitur, seperti `/import` dan `claude import` | Tidak tersedia | CLI melewati pengambilan flag pada sesi gateway. [Fitur yang memerlukan pengambilan flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching) mencantumkan apa yang dimatikan |

517| Prompt caching standar | Tersedia | Gateway meneruskan breakpoint `cache_control` ke setiap upstream. [Di mana cache berada](/docs/id/prompt-caching#where-the-cache-lives) mencakup blok mana yang ditandai CLI, termasuk konteks sistem yang ditambahkannya di tengah percakapan |

332| TTL cache 1 jam | Tidak tersedia | CLI menghilangkan beta extended-cache-ttl pada sesi gateway, karena tidak setiap upstream yang dapat dirutekan gateway mendukung TTL 1 jam, jadi prompt caching melalui gateway menggunakan TTL 5 menit; lihat catatan header beta di atas |518| TTL cache 1 jam | Tidak tersedia | CLI menghilangkan beta extended-cache-ttl pada sesi gateway, karena tidak setiap upstream yang dapat dirutekan gateway mendukung TTL 1 jam, jadi prompt caching melalui gateway menggunakan TTL 5 menit; lihat catatan header beta di atas |

333| Mode Auto | Tersedia | Mengikuti [aturan penyedia pihak ketiga](/docs/id/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry): hanya model yang memenuhi syarat di penyedia pihak ketiga yang dapat menggunakannya. Sebelum v2.1.207, mode auto pada sesi gateway memerlukan pengaturan `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, dapat dikirimkan melalui blok `env` kebijakan terkelola |519| Mode Auto | Tersedia | Mengikuti [aturan penyedia pihak ketiga](/docs/id/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry): hanya model yang memenuhi syarat di penyedia pihak ketiga yang dapat menggunakannya. Sebelum v2.1.207, mode auto pada sesi gateway memerlukan pengaturan `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, dapat dikirimkan melalui blok `env` kebijakan terkelola |

334| Optimasi khusus pihak pertama seperti cakupan cache global dan alat yang efisien token | Tidak tersedia | CLI tidak mengaktifkannya pada sesi gateway; lihat catatan header beta di atas |520| Optimasi khusus pihak pertama seperti cakupan cache global dan alat yang efisien token | Tidak tersedia | CLI tidak mengaktifkannya pada sesi gateway; lihat catatan header beta di atas |


348* Perluas `gateway.yaml` di luar konfigurasi minimal, misalnya untuk menambahkan RBAC per-grup, failover multi-upstream, atau tujuan telemetri. [Referensi konfigurasi](/docs/id/claude-apps-gateway-config) mencakup setiap opsi.534* Perluas `gateway.yaml` di luar konfigurasi minimal, misalnya untuk menambahkan RBAC per-grup, failover multi-upstream, atau tujuan telemetri. [Referensi konfigurasi](/docs/id/claude-apps-gateway-config) mencakup setiap opsi.

349* Pindah dari Compose ke penyebaran produksi di Kubernetes atau Cloud Run, siapkan IdP Anda dengan benar, dan tinjau model keamanan. [Panduan penyebaran dan operasi](/docs/id/claude-apps-gateway-deploy) mencakup penyiapan per-IdP, persyaratan gambar kontainer, probe kesehatan, dan pemecahan masalah.535* Pindah dari Compose ke penyebaran produksi di Kubernetes atau Cloud Run, siapkan IdP Anda dengan benar, dan tinjau model keamanan. [Panduan penyebaran dan operasi](/docs/id/claude-apps-gateway-deploy) mencakup penyiapan per-IdP, persyaratan gambar kontainer, probe kesehatan, dan pemecahan masalah.

350* Letakkan batas pengeluaran pada pengembang atau grup individual sehingga beban kerja yang liar tidak dapat mengonsumsi seluruh komitmen Anda. [Spend limits](/docs/id/claude-apps-gateway-spend-limits) mencakup API admin dan cara penegakan bekerja.536* Letakkan batas pengeluaran pada pengembang atau grup individual sehingga beban kerja yang liar tidak dapat mengonsumsi seluruh komitmen Anda. [Spend limits](/docs/id/claude-apps-gateway-spend-limits) mencakup API admin dan cara penegakan bekerja.

537* Untuk contoh lengkap yang dikerjakan di AWS, dengan ECS Fargate atau EKS, Amazon RDS, dan Secrets Manager, lihat [Deploy on AWS](/docs/id/claude-apps-gateway-on-aws).

351* Untuk contoh lengkap yang dikerjakan di Google Cloud, dengan Cloud Run, Cloud SQL, dan Secret Manager, lihat [Deploy on Google Cloud](/docs/id/claude-apps-gateway-on-gcp).538* Untuk contoh lengkap yang dikerjakan di Google Cloud, dengan Cloud Run, Cloud SQL, dan Secret Manager, lihat [Deploy on Google Cloud](/docs/id/claude-apps-gateway-on-gcp).

Details

32 32 

33* [`admin`](#admin): Admin API auth dan retention untuk spend limits33* [`admin`](#admin): Admin API auth dan retention untuk spend limits

34* [`enforcement`](#enforcement): perilaku spend-limit fail-open atau fail-closed34* [`enforcement`](#enforcement): perilaku spend-limit fail-open atau fail-closed

35* [`pricing`](#pricing): contracted rates dan discount multiplier untuk spend meter dan untuk cost figures yang dilihat developer35* [`pricing`](#pricing): contracted rates dan multiplier untuk spend meter dan untuk cost figures yang dilihat developer

36* [`models`](#models) dan `auto_include_builtin_models`: daftar model yang dikurasi admin dan per-upstream IDs36* [`models`](#models) dan `auto_include_builtin_models`: daftar model yang dikurasi admin dan per-upstream IDs

37* [`managed`](#managed): managed settings policies berdasarkan IdP group37* [`managed`](#managed): managed settings policies berdasarkan IdP group

38* [`telemetry`](#telemetry): OTLP forwarding ke observability stack Anda38* [`telemetry`](#telemetry): OTLP forwarding ke observability stack Anda


496```496```

497 497 

498| Field | Diperlukan | Deskripsi |498| Field | Diperlukan | Deskripsi |

499| ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |499| ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

500| `multiplier` | Tidak | Default `1`. Meter mengalikan setiap jumlah yang diukur dengan ini, baik harga list atau override, jadi `0.85` menagih 85% dari harga. Harus lebih besar dari 0 dan paling banyak 1. |500| `multiplier` | Tidak | Default `1`. Meter mengalikan setiap jumlah yang diukur dengan ini, baik harga list atau override, jadi `0.85` menagih 85% dari harga. Harus lebih besar dari 0 dan paling banyak 10, dan nilai di atas 1 adalah [markup](#mark-prices-up). |

501| `overrides` | Tidak | Baris dari `{upstream, model, input, output, cache_read, cache_write}` dalam USD per juta token. Keempat tarif diperlukan. Masing-masing harus lebih besar dari 0 dan paling banyak 10000. |501| `overrides` | Tidak | Baris dari `{upstream, model, input, output, cache_read, cache_write}` dalam USD per juta token. Keempat tarif diperlukan. Masing-masing harus lebih besar dari 0 dan paling banyak 10000. |

502 502 

503Bagaimana meter mencocokkan baris override:503Bagaimana meter mencocokkan baris override:


510 510 

511Untuk tarif per-region, berikan setiap region upstream bernama sendiri dan satu baris per upstream.511Untuk tarif per-region, berikan setiap region upstream bernama sendiri dan satu baris per upstream.

512 512 

513<h4 id="mark-prices-up">

514 Tandai harga naik

515</h4>

516 

517Dengan v2.1.271 atau lebih baru di server gateway, Anda dapat mengatur `multiplier` di atas 1, hingga 10, untuk meter lebih dari yang penyedia kenakan, misalnya tarif chargeback internal. Contoh ini meter setiap permintaan pada 120% dari harga:

518 

519```yaml theme={null}

520pricing:

521 multiplier: 1.2

522```

523 

524Dengan blok [`admin:`](#admin), markup juga berlaku untuk spend limits. Meter menghitung 120% dari harga, jadi developer mencapai caps mereka lebih cepat. Gateway mencatat peringatan saat boot yang mengatakan demikian.

525 

526Multiplier tidak mengubah apa yang penyedia upstream kenakan untuk permintaan.

527 

528Jika gateway juga [mengirimkan tarif ke klien yang masuk](#send-the-rates-to-signed-in-clients), developer memerlukan Claude Code v2.1.271 atau lebih baru untuk melihat markup. Klien sebelumnya mengabaikan `multiplier` di atas 1 dan menampilkan biaya tanpanya.

529 

530Server gateway sebelumnya dari v2.1.271 menolak untuk memulai jika Anda mengatur `multiplier` di atas 1.

531 

513<h4 id="send-the-rates-to-signed-in-clients">532<h4 id="send-the-rates-to-signed-in-clients">

514 Kirim tarif ke klien yang masuk533 Kirim tarif ke klien yang masuk

515</h4>534</h4>


544 `managed`563 `managed`

545</h3>564</h3>

546 565 

547Blok `managed` mendefinisikan kebijakan akses berbasis peran yang dikunci pada grup IdP atau domain email. Kebijakan dievaluasi secara berurutan; kecocokan pertama dipilih, kemudian digabungkan ke basis catch-all `match: {}` yang dijelaskan di bawah. Mereka disajikan per-user di `GET /managed/settings` dengan caching ETag/304.566Blok `managed` mendefinisikan kebijakan akses berbasis peran yang dikunci pada grup IdP atau domain email. Kebijakan dievaluasi secara berurutan; kecocokan pertama dipilih, kemudian digabungkan ke basis catch-all `match: {}`. Mereka disajikan per-user di `GET /managed/settings` dengan caching ETag/304.

548 567 

549```yaml theme={null}568```yaml theme={null}

550managed:569managed:


892| `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). |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). |

893| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Per-IP rate limit pada pengajuan `user_code` di `/device` |912| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Per-IP rate limit pada pengajuan `user_code` di `/device` |

894 913 

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.

915 

916Sementara `allow_cidrs` kosong, gateway memperingatkan di dua tempat, tanpa mengubah cara itu menjawab permintaan apa pun:

917 

918* **Saat boot**: peringatan dalam log operasional merekomendasikan hanya mengizinkan rentang pribadi `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`, `100.64.0.0/10`, `127.0.0.0/8`, `::1/128`, dan `fc00::/7`, ditambah rentang internal lainnya yang developer Anda terhubung dari. Jika Anda mengikat gateway ke alamat loopback dan tidak mengatur `trusted_proxies` atau `public_url`, seperti dalam pengembangan lokal, peringatan tidak muncul.

919* **Saat runtime**: pertama kali permintaan tiba dari alamat di luar rentang pribadi itu, gateway mencatat peringatan dan memancarkan event audit [`access.public_client`](/docs/id/claude-apps-gateway-deploy#logs) yang membawa IP klien. Keduanya tembak sekali per proses. Alamat link-local, `169.254.0.0/16` dan `fe80::/10`, tidak dihitung sebagai publik. Gateway menjawab `/healthz` dan `/readyz` sebelum pemeriksaan ini berjalan, jadi probe kesehatan dari rentang publik tidak memicunya.

920 

921Kedua sinyal menggunakan alamat klien seperti gateway menyelesaikannya. Jika load balancer, port-forward, atau tunnel meneruskan traffic dan tidak terdaftar dalam `listen.trusted_proxies`, gateway melihat alamat relay, yang biasanya pribadi, jadi baik peringatan runtime maupun daftar allow pribadi menangkapnya.

922 

923Di belakang front end seperti itu, atur [`listen.trusted_proxies`](#listen) terlebih dahulu sehingga gateway melihat alamat klien nyata, dan jaga gateway dan segalanya di depannya tidak dapat dijangkau dari internet publik terlepas.

924 

895<h2 id="complete-example">925<h2 id="complete-example">

896 Contoh lengkap926 Contoh lengkap

897</h2>927</h2>


962# enforcement:992# enforcement:

963# fail_closed_on_error: false993# fail_closed_on_error: false

964 994 

965# Meter at contracted rates instead of USD list price. Requires admin:.995# Meter at contracted rates instead of USD list price. Requires admin: or a

966# With managed:, the same rates also go to signed-in clients.996# managed: policy. With managed:, the same rates also go to signed-in clients.

967# Rates below are placeholders, not real contract prices.997# Rates below are placeholders, not real contract prices.

968# pricing:998# pricing:

969# multiplier: 0.85999# multiplier: 0.85


1063 1093 

1064Untuk Claude Desktop, atur key `bootstrapUrl` dalam [managed configuration](https://claude.com/docs/third-party/claude-desktop/configuration) Claude Desktop sendiri ke `<listen.public_url>/user/bootstrap`. Sign-in flow dan per-group policy kemudian cocok dengan CLI's setelah policy opt-in server-side dengan key `desktop`; tanpa opt-in, `/user/bootstrap` mengembalikan 404. Lihat [Claude Desktop overlay](#claude-desktop-overlay) untuk bagian server-side.1094Untuk Claude Desktop, atur key `bootstrapUrl` dalam [managed configuration](https://claude.com/docs/third-party/claude-desktop/configuration) Claude Desktop sendiri ke `<listen.public_url>/user/bootstrap`. Sign-in flow dan per-group policy kemudian cocok dengan CLI's setelah policy opt-in server-side dengan key `desktop`; tanpa opt-in, `/user/bootstrap` mengembalikan 404. Lihat [Claude Desktop overlay](#claude-desktop-overlay) untuk bagian server-side.

1065 1095 

1066[`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl), dan nilai `"gateway"` dari [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod), dihormati hanya dari managed source di mesin: `managed-settings.json`, plist macOS atau Windows HKLM registry, atau policy helper. Developer menetapkannya dalam `~/.claude/settings.json` mereka sendiri tidak memiliki efek, dan begitu juga menetapkannya dalam gateway payload.1096Claude Code menghormati [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/id/settings-reference#gatewayinternalnetworks), dan nilai `"gateway"` dari [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) hanya dari managed source di mesin: `managed-settings.json`, plist macOS atau Windows HKLM registry, atau policy helper. Developer menetapkannya dalam `~/.claude/settings.json` mereka sendiri tidak memiliki efek, dan begitu juga menetapkannya dalam gateway payload.

1067 1097 

1068<h2 id="related">1098<h2 id="related">

1069 Terkait1099 Terkait

Details

18Jika masuk atau boot gagal di sepanjang jalan, langsung ke [Troubleshooting](#troubleshooting), yang dikunci pada kesalahan yang Anda lihat.18Jika masuk atau boot gagal di sepanjang jalan, langsung ke [Troubleshooting](#troubleshooting), yang dikunci pada kesalahan yang Anda lihat.

19 19 

20<Note>20<Note>

21 **Sebarkan di jaringan pribadi Anda.** Claude Code hanya terhubung ke gateway yang alamatnya pribadi. Ini adalah penjaga keamanan, karena gateway yang dipercaya dapat mendorong pengaturan yang menjalankan perintah pada mesin pengembang. Letakkan gateway yang Anda sebarkan di belakang penyeimbang beban internal atau VPN dan berikan nama host yang hanya diselesaikan ke IP pribadi.21 **Sebarkan di jaringan pribadi Anda.** Claude Code hanya terhubung ke gateway yang alamatnya pribadi. Ini adalah penjaga keamanan, karena gateway yang dipercaya dapat mendorong pengaturan yang menjalankan perintah pada mesin pengembang. Letakkan gateway yang Anda sebarkan di belakang penyeimbang beban internal atau VPN dan berikan nama host yang hanya diselesaikan ke IP pribadi. Jika jaringan internal Anda bernomor dari ruang IPv4 publik yang dimiliki organisasi Anda, lihat [Izinkan gateway pada ruang alamat publik yang Anda miliki](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own).

22</Note>22</Note>

23 23 

24<h2 id="identity-provider-setup">24<h2 id="identity-provider-setup">


138 138 

139Gateway menulis dua aliran ke stderr, keduanya ramah JSON:139Gateway menulis dua aliran ke stderr, keduanya ramah JSON:

140 140 

141* **Acara audit**: JSON satu baris per acara yang relevan dengan keamanan. Pipa stderr ke agregator log Anda. Acara yang dipancarkan termasuk `config.load`, `session.mint`, `session.refresh`, `device.authorize`, `device.verify`, `device.callback`, `auth.denied`, `access.denied`, `inference`, `managed.serve`, `desktop_bootstrap.serve`, `desktop_bootstrap.denied`, `spend.blocked`, `admin.denied`, `admin.limit.upsert`, dan `admin.limit.delete`. Bidang bervariasi menurut acara:141* **Acara audit**: JSON satu baris per acara yang relevan dengan keamanan. Pipa stderr ke agregator log Anda.

142 

143 Acara yang dipancarkan termasuk `config.load`, `session.mint`, `session.refresh`, `device.authorize`, `device.verify`, `device.callback`, `auth.denied`, `access.denied`, `access.public_client`, `inference`, `managed.serve`, `desktop_bootstrap.serve`, `desktop_bootstrap.denied`, `spend.blocked`, `admin.denied`, `admin.limit.upsert`, dan `admin.limit.delete`. Bidang bervariasi menurut acara:

144 

142 * Acara mint dan refresh yang berhasil membawa `sub`, `email`, `client_ip`, dan hasilnya145 * Acara mint dan refresh yang berhasil membawa `sub`, `email`, `client_ip`, dan hasilnya

143 * `auth.denied` dan `access.denied` membawa alasan dan IP klien, ditambah jalur permintaan untuk `auth.denied`, karena tidak ada identitas pengguna yang ada pada penolakan tersebut. Dua alasan `access.denied` mengubah apa yang dibawa acara:146 * `auth.denied` dan `access.denied` membawa alasan dan IP klien, ditambah jalur permintaan untuk `auth.denied`, karena tidak ada identitas pengguna yang ada pada penolakan tersebut. Dua alasan `access.denied` mengubah apa yang dibawa acara:

144 * `xff_unparseable`: acara juga membawa entri `X-Forwarded-For` yang tidak dapat dibaca147 * `xff_unparseable`: acara juga membawa entri `X-Forwarded-For` yang tidak dapat dibaca

145 * `client_ip_unknown`: acara tidak membawa IP klien, karena koneksi tidak memiliki alamat peer sementara daftar `access_control` ditetapkan148 * `client_ip_unknown`: acara tidak membawa IP klien, karena koneksi tidak memiliki alamat peer sementara daftar `access_control` ditetapkan

149 * `access.public_client` membawa IP klien dari permintaan pertama per proses yang tiba dari alamat publik sementara `access_control.allow_cidrs` kosong. Gateway melayani permintaan seperti biasa; acara menandakan bahwa gateway mungkin dapat dijangkau dari internet publik. Lihat [referensi `access_control`](/docs/id/claude-apps-gateway-config#http-tuning) untuk apa yang dihitung sebagai publik dan untuk daftar izin yang direkomendasikan.

146 * `inference` mencatat upstream mana yang melayani permintaan dan status respons150 * `inference` mencatat upstream mana yang melayani permintaan dan status respons

147 * `desktop_bootstrap.denied` mencatat pengambilan bootstrap Claude Desktop yang ditolak dengan alasan (`not_configured`, `policy_not_opted_in`, atau `no_policy_matched`) dan identitas pengguna151 * `desktop_bootstrap.denied` mencatat pengambilan bootstrap Claude Desktop yang ditolak dengan alasan (`not_configured`, `policy_not_opted_in`, atau `no_policy_matched`) dan identitas pengguna

148 * `admin.denied` mencatat upaya autentikasi admin-API yang ditolak dengan IP klien, metode, jalur, dan alasan, tanpa materi kunci yang disajikan: `invalid_key` ketika `x-api-key` disajikan tetapi tidak cocok dengan kunci yang dikonfigurasi, `bearer_rejected` ketika hanya header `Authorization` yang disajikan dan tidak memverifikasi sebagai sesi gateway di `admin.admin_groups`, atau `no_credentials` ketika tidak ada header yang disajikan152 * `admin.denied` mencatat upaya autentikasi admin-API yang ditolak dengan IP klien, metode, jalur, dan alasan, tanpa materi kunci yang disajikan: `invalid_key` ketika `x-api-key` disajikan tetapi tidak cocok dengan kunci yang dikonfigurasi, `bearer_rejected` ketika hanya header `Authorization` yang disajikan dan tidak memverifikasi sebagai sesi gateway di `admin.admin_groups`, atau `no_credentials` ketika tidak ada header yang disajikan


285| 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). |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). |

286| 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). |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). |

287| 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 |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 |

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

288| 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 |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 |

289| 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). |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. |

290| 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 |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 |

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 |

297| CLI `/login`: `Every address for gateway host <host> must be inside its declared network <block>, and it also resolves to <ip>` | Nama gateway diselesaikan ke alamat di luar blok yang dideklarasikan dalam [`gatewayInternalNetworks`](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own): situs kedua, atau catatan IPv6 pada nama dual-stack. Di bawah blok yang dideklarasikan setiap catatan harus berada di dalam blok IPv4 tunggal itu, alamat pribadi dan IPv6 disertakan | Publikasikan hanya catatan di dalam blok untuk nama gateway pada mesin pengembang, atau layani nama internal saja |

298| CLI `/login`: `<host> is on the declared network <block>, which Claude Code checks over a direct connection, not through an HTTP proxy` | `HTTPS_PROXY` atau `HTTP_PROXY` berlaku untuk gateway di blok yang dideklarasikan | Pada mesin pengembang, tambahkan entri `NO_PROXY` yang pesan namakan |

299| CLI `/login`: pesan dimulai dengan `gatewayInternalNetworks in managed settings` | Nilai melanggar salah satu [aturan validasi](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), dan pesan menamai yang mana. Sampai Anda memperbaikinya, Claude Code menolak setiap `/login` gateway baru pada mesin, gateway di alamat pribadi disertakan; masuk yang ada terus bekerja | Dalam sumber pengaturan terkelola yang Anda sebarkan, perbaiki entri yang pesan namakan, lalu jalankan kembali `/login` |

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

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

293| 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`. |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`. |

Details

7> Contoh praktis menjalankan gateway aplikasi Claude di Google Cloud: Cloud Run atau GKE, Cloud SQL untuk PostgreSQL, Secret Manager, dan autentikasi service-account ke Agent Platform Google Cloud.7> Contoh praktis menjalankan gateway aplikasi Claude di Google Cloud: Cloud Run atau GKE, Cloud SQL untuk PostgreSQL, Secret Manager, dan autentikasi service-account ke Agent Platform Google Cloud.

8 8 

9<Note>9<Note>

10 Halaman ini menjelaskan satu cara untuk menjalankan gateway aplikasi Claude di Google Cloud. Konfigurasi ini adalah contoh kerja untuk infrastruktur yang dikelola pelanggan daripada penyebaran produksi yang didukung; gunakan ini untuk melihat bagaimana potongan-potongan cocok bersama sebelum menyesuaikannya dengan lingkungan Anda sendiri. Untuk persyaratan yang tidak bergantung pada platform, lihat [panduan penyebaran](/id/claude-apps-gateway-deploy).10 Halaman ini menjelaskan satu cara untuk menjalankan gateway aplikasi Claude di Google Cloud. Konfigurasi ini adalah contoh kerja untuk infrastruktur yang dikelola pelanggan daripada penyebaran produksi yang didukung; gunakan ini untuk melihat bagaimana potongan-potongan cocok bersama sebelum menyesuaikannya dengan lingkungan Anda sendiri. Untuk persyaratan yang tidak bergantung pada platform, lihat [panduan penyebaran](/docs/id/claude-apps-gateway-deploy).

11</Note>11</Note>

12 12 

13Contoh ini menyediakan gateway aplikasi Claude di Google Cloud dengan Agent Platform Google Cloud sebagai upstream model, menggunakan Cloud Run atau GKE untuk komputasi. Google Workspace adalah penyedia identitas contoh (IdP), tetapi penyedia IdP yang sesuai dengan OpenID Connect (OIDC) apa pun berfungsi; hanya blok `oidc` yang berubah. Lihat [Penyiapan penyedia identitas](/id/claude-apps-gateway-deploy#identity-provider-setup) untuk detail per-IdP.13Contoh ini menyediakan gateway aplikasi Claude di Google Cloud dengan Agent Platform Google Cloud sebagai upstream model, menggunakan Cloud Run atau GKE untuk komputasi. Google Workspace adalah penyedia identitas contoh (IdP), tetapi penyedia IdP yang sesuai dengan OpenID Connect (OIDC) apa pun berfungsi; hanya blok `oidc` yang berubah. Lihat [Penyiapan penyedia identitas](/docs/id/claude-apps-gateway-deploy#identity-provider-setup) untuk detail per-IdP.

14 14 

15<h2 id="what-you’ll-build">15<h2 id="what-you’ll-build">

16 Apa yang akan Anda bangun16 Apa yang akan Anda bangun


24 24 

25* Layanan **Cloud Run** atau **GKE** Deployment yang menjalankan kontainer gateway25* Layanan **Cloud Run** atau **GKE** Deployment yang menjalankan kontainer gateway

26* Repositori **Artifact Registry** untuk gambar gateway26* Repositori **Artifact Registry** untuk gambar gateway

27* Instans **Cloud SQL untuk PostgreSQL**, IP pribadi saja, untuk [store](/id/claude-apps-gateway-config#store) gateway27* Instans **Cloud SQL untuk PostgreSQL**, IP pribadi saja, untuk [store](/docs/id/claude-apps-gateway-config#store) gateway

28* Rahasia **Secret Manager** untuk `gateway.yaml`, kunci penandatanganan JWT, rahasia klien OIDC, dan URL Postgres28* Rahasia **Secret Manager** untuk `gateway.yaml`, kunci penandatanganan JWT, rahasia klien OIDC, dan URL Postgres

29* **Service account** dengan `roles/aiplatform.user`, terlampir langsung di Cloud Run atau terikat melalui Workload Identity di GKE29* **Service account** dengan `roles/aiplatform.user`, terlampir langsung di Cloud Run atau terikat melalui Workload Identity di GKE

30* **Internal Application Load Balancer** di Cloud Run, atau **GKE Ingress** internal dari kelas `gce-internal` di GKE, untuk HTTPS30* **Internal Application Load Balancer** di Cloud Run, atau **GKE Ingress** internal dari kelas `gce-internal` di GKE, untuk HTTPS


37* CLI `gcloud`, diautentikasi dengan `gcloud auth login`, dan Docker dipasang secara lokal37* CLI `gcloud`, diautentikasi dengan `gcloud auth login`, dan Docker dipasang secara lokal

38* Untuk jalur GKE: `kubectl`, dan kluster GKE di VPC yang dibuat dalam panduan di bawah38* Untuk jalur GKE: `kubectl`, dan kluster GKE di VPC yang dibuat dalam panduan di bawah

39* Akses ke model Claude yang Anda butuhkan di Model Garden, di wilayah yang menerbitkannya39* Akses ke model Claude yang Anda butuhkan di Model Garden, di wilayah yang menerbitkannya

40* Klien aplikasi web OAuth 2.0 Google Workspace dengan URI pengalihan `https://<gateway-host>/oauth/callback`; lihat [Penyiapan penyedia identitas](/id/claude-apps-gateway-deploy#identity-provider-setup)40* Klien aplikasi web OAuth 2.0 Google Workspace dengan URI pengalihan `https://<gateway-host>/oauth/callback`; lihat [Penyiapan penyedia identitas](/docs/id/claude-apps-gateway-deploy#identity-provider-setup)

41* Nama host TLS untuk gateway, biasanya nama DNS internal yang menunjuk ke load balancer41* Nama host TLS untuk gateway, biasanya nama DNS internal yang menunjuk ke load balancer

42 42 

43Atur proyek dan wilayah sekali:43Atur proyek dan wilayah sekali:


94 </Step>94 </Step>

95 95 

96 <Step title="Bangun dan dorong gambar ke Artifact Registry">96 <Step title="Bangun dan dorong gambar ke Artifact Registry">

97 Bangun gambar sesuai dengan [persyaratan gambar kontainer](/id/claude-apps-gateway-deploy#container-image), menggunakan biner glibc `linux-x64`, dan dorong:97 Bangun gambar sesuai dengan [persyaratan gambar kontainer](/docs/id/claude-apps-gateway-deploy#container-image), menggunakan biner glibc `linux-x64`, dan dorong:

98 98 

99 ```bash theme={null}99 ```bash theme={null}

100 gcloud artifacts repositories create claude-gateway \100 gcloud artifacts repositories create claude-gateway \


141 </Step>141 </Step>

142 142 

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

144 Blok `upstreams` menunjuk ke Agent Platform dengan `auth: {}`, jadi gateway mengautentikasi melalui Application Default Credentials dari service account runtime. Lihat [referensi konfigurasi](/id/claude-apps-gateway-config) untuk setiap bidang.144 Blok `upstreams` menunjuk ke Agent Platform dengan `auth: {}`, jadi gateway mengautentikasi melalui Application Default Credentials dari service account runtime. Lihat [referensi konfigurasi](/docs/id/claude-apps-gateway-config) untuk setiap bidang.

145 145 

146 Dua bidang `listen` bergantung pada apa yang berada di depan gateway:146 Dua bidang `listen` bergantung pada apa yang berada di depan gateway:

147 147 

148 * `public_url`: diperlukan di belakang Cloud Run atau GKE Ingress. Gateway membangun `redirect_uri` IdP dan dokumen penemuannya hanya dari nilai ini, tidak pernah dari header `X-Forwarded-*`.148 * `public_url`: diperlukan di belakang Cloud Run atau GKE Ingress. Gateway membangun `redirect_uri` IdP dan dokumen penemuannya hanya dari nilai ini, tidak pernah dari header `X-Forwarded-*`.

149 * `trusted_proxies`: rentang sumber front end. Gateway menghormati `X-Forwarded-For` hanya ketika peer TCP berada dalam daftar ini, kemudian berjalan melalui rantai melewati hop terpercaya, jadi batas laju sign-in per-IP dan acara audit mencatat IP pengembang daripada load balancer.149 * `trusted_proxies`: rentang sumber front end. Gateway menghormati `X-Forwarded-For` hanya ketika peer TCP berada dalam daftar ini, kemudian berjalan melalui rantai melewati hop terpercaya, jadi batas laju sign-in per-IP dan acara audit mencatat IP pengembang daripada load balancer.

150 150 

151 Atur `trusted_proxies` agar sesuai dengan front end Anda. GKE Ingress eksternal dari kelas `gce` tidak terdaftar: ini menyediakan alamat forwarding-rule publik, yang pemeriksaan [jaringan pribadi](/id/claude-apps-gateway#prerequisites) `/login` menolak.151 Atur `trusted_proxies` agar sesuai dengan front end Anda. GKE Ingress eksternal dari kelas `gce` tidak terdaftar: ini menyediakan alamat forwarding-rule publik, yang pemeriksaan [jaringan pribadi](/docs/id/claude-apps-gateway#prerequisites) `/login` menolak.

152 152 

153 | Front end | `trusted_proxies` |153 | Front end | `trusted_proxies` |

154 | ----------------------------------------------------- | ----------------------------------------------------- |154 | ----------------------------------------------------- | ----------------------------------------------------- |


188 ```188 ```

189 189 

190 <Note>190 <Note>

191 Token id Google tidak membawa klaim `groups`. Untuk menggunakan kebijakan berbasis grup dalam [`managed.policies`](/id/claude-apps-gateway-config#managed) dengan Google Workspace sebagai IdP, konfigurasikan [`oidc.google_groups`](/id/claude-apps-gateway-config#oidc), yang mencari grup setiap pengguna melalui Admin SDK Directory API menggunakan service account dengan delegasi domain-wide. Tanpa itu, cocokkan pada `email_domain` sebagai gantinya.191 Token id Google tidak membawa klaim `groups`. Untuk menggunakan kebijakan berbasis grup dalam [`managed.policies`](/docs/id/claude-apps-gateway-config#managed) dengan Google Workspace sebagai IdP, konfigurasikan [`oidc.google_groups`](/docs/id/claude-apps-gateway-config#oidc), yang mencari grup setiap pengguna melalui Admin SDK Directory API menggunakan service account dengan delegasi domain-wide. Tanpa itu, cocokkan pada `email_domain` sebagai gantinya.

192 </Note>192 </Note>

193 </Step>193 </Step>

194 194 


237 237 

238 Pembatasan ingress melalui `--ingress` adalah lapisan terpisah dan independen dari pemeriksaan invoker; tetap atur untuk membatasi layanan ke jaringan perusahaan Anda.238 Pembatasan ingress melalui `--ingress` adalah lapisan terpisah dan independen dari pemeriksaan invoker; tetap atur untuk membatasi layanan ke jaringan perusahaan Anda.

239 239 

240 Secara default URL Cloud Run `*.run.app` diselesaikan ke alamat publik, yang pemeriksaan [jaringan pribadi](/id/claude-apps-gateway#prerequisites) `/login` menolak. Dua topologi memberikan pengembang nama host yang dapat diselesaikan secara pribadi, dan Cloud Run tidak menyediakan keduanya untuk Anda:240 Secara default URL Cloud Run `*.run.app` diselesaikan ke alamat publik, yang pemeriksaan [jaringan pribadi](/docs/id/claude-apps-gateway#prerequisites) `/login` menolak. Dua topologi memberikan pengembang nama host yang dapat diselesaikan secara pribadi, dan Cloud Run tidak menyediakan keduanya untuk Anda:

241 241 

242 * **Internal Application Load Balancer**, topologi yang diasumsikan perintah deploy di atas: terapkan dengan `--ingress=internal-and-cloud-load-balancing`, sediakan Internal Application Load Balancer di depan layanan dengan nama DNS internal dan sertifikat, dan atur `listen.public_url` ke nama host itu.242 * **Internal Application Load Balancer**, topologi yang diasumsikan perintah deploy di atas: terapkan dengan `--ingress=internal-and-cloud-load-balancing`, sediakan Internal Application Load Balancer di depan layanan dengan nama DNS internal dan sertifikat, dan atur `listen.public_url` ke nama host itu.

243 * **Ingress internal saja tanpa load balancer**: terapkan dengan `--ingress=internal` dan biarkan `listen.public_url` sebagai URL `*.run.app`, default dalam [aset referensi](#terraform-reference) di bawah. Agar `*.run.app` diselesaikan secara pribadi, tim jaringan Anda harus sudah mengoperasikan endpoint Private Service Connect untuk Google APIs, zona DNS pribadi Cloud yang menyelesaikan `*.run.app` ke dalamnya, dan perutean on-premises ke endpoint itu.243 * **Ingress internal saja tanpa load balancer**: terapkan dengan `--ingress=internal` dan biarkan `listen.public_url` sebagai URL `*.run.app`, default dalam [aset referensi](#terraform-reference) di bawah. Agar `*.run.app` diselesaikan secara pribadi, tim jaringan Anda harus sudah mengoperasikan endpoint Private Service Connect untuk Google APIs, zona DNS pribadi Cloud yang menyelesaikan `*.run.app` ke dalamnya, dan perutean on-premises ke endpoint itu.


272 iam.gke.io/gcp-service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com"272 iam.gke.io/gcp-service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com"

273 ```273 ```

274 274 

275 Terapkan gateway sebagai Deployment standar ditambah Service dan Ingress internal, kelas `gce-internal`, seperti dijelaskan dalam [penyebaran Kubernetes](/id/claude-apps-gateway-deploy#kubernetes), dengan:275 Terapkan gateway sebagai Deployment standar ditambah Service dan Ingress internal, kelas `gce-internal`, seperti dijelaskan dalam [penyebaran Kubernetes](/docs/id/claude-apps-gateway-deploy#kubernetes), dengan:

276 276 

277 * `serviceAccountName: gateway`277 * `serviceAccountName: gateway`

278 * driver CSI Secret Manager memasang rahasia di `/secrets`278 * driver CSI Secret Manager memasang rahasia di `/secrets`


280 280 

281 Lampirkan BackendConfig dengan `timeoutSec` yang ditingkatkan ke Service gateway: layanan backend load balancer di belakang GKE Ingress default ke timeout 30 detik, yang memotong respons streaming panjang.281 Lampirkan BackendConfig dengan `timeoutSec` yang ditingkatkan ke Service gateway: layanan backend load balancer di belakang GKE Ingress default ke timeout 30 detik, yang memotong respons streaming panjang.

282 282 

283 Jangan terapkan NetworkPolicy egress yang memblokir `169.254.169.254` di kluster Workload Identity; pod harus menjangkau server metadata untuk kredensial. [Penjaga SSRF](/id/claude-apps-gateway-deploy#threat-model-summary) gateway yang tertanam adalah pertahanan di sana.283 Jangan terapkan NetworkPolicy egress yang memblokir `169.254.169.254` di kluster Workload Identity; pod harus menjangkau server metadata untuk kredensial. [Penjaga SSRF](/docs/id/claude-apps-gateway-deploy#threat-model-summary) gateway yang tertanam adalah pertahanan di sana.

284 284 

285 Gateway mencatat peringatan boot bahwa endpoint metadata dapat dijangkau dan menyarankan menerapkan NetworkPolicy egress. Di bawah Workload Identity peringatan itu diharapkan, karena pod membutuhkan endpoint.285 Gateway mencatat peringatan boot bahwa endpoint metadata dapat dijangkau dan menyarankan menerapkan NetworkPolicy egress. Di bawah Workload Identity peringatan itu diharapkan, karena pod membutuhkan endpoint.

286 </Tab>286 </Tab>


288 </Step>288 </Step>

289 289 

290 <Step title="Dorong URL gateway ke mesin pengembang">290 <Step title="Dorong URL gateway ke mesin pengembang">

291 Gateway sekarang berjalan, tetapi pengembang tidak dapat menjangkaunya dari `/login` sampai URL gateway berada di mesin mereka. Atur `forceLoginMethod` dan `forceLoginGatewayUrl` dalam [file pengaturan terkelola](/id/claude-apps-gateway#set-the-gateway-url) yang Anda terapkan ke setiap perangkat melalui MDM. Tidak ada opsi gateway di pemilih login untuk pengembang memilih secara manual.291 Gateway sekarang berjalan, tetapi pengembang tidak dapat menjangkaunya dari `/login` sampai URL gateway berada di mesin mereka. Atur `forceLoginMethod` dan `forceLoginGatewayUrl` dalam [file pengaturan terkelola](/docs/id/claude-apps-gateway#set-the-gateway-url) yang Anda terapkan ke setiap perangkat melalui MDM. Tidak ada opsi gateway di pemilih login untuk pengembang memilih secara manual.

292 </Step>292 </Step>

293</Steps>293</Steps>

294 294 


310 Troubleshooting310 Troubleshooting

311</h2>311</h2>

312 312 

313Untuk boot gateway dan kesalahan login, lihat tabel [troubleshooting](/id/claude-apps-gateway-deploy#troubleshooting) yang tidak bergantung pada platform. Entri di bawah khusus untuk Google Cloud.313Untuk boot gateway dan kesalahan login, lihat tabel [troubleshooting](/docs/id/claude-apps-gateway-deploy#troubleshooting) yang tidak bergantung pada platform. Entri di bawah khusus untuk Google Cloud.

314 314 

315| Gejala | Penyebab | Perbaikan |315| Gejala | Penyebab | Perbaikan |

316| ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |316| ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


325 Langkah berikutnya325 Langkah berikutnya

326</h2>326</h2>

327 327 

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

329* [Penyebaran dan operasi](/id/claude-apps-gateway-deploy): penyiapan IdP, pemeriksaan kesehatan, rotasi rahasia JWT, upgrade, dan model keamanan329* [Penyebaran dan operasi](/docs/id/claude-apps-gateway-deploy): penyiapan IdP, pemeriksaan kesehatan, rotasi rahasia JWT, upgrade, dan model keamanan

330* [Gambaran umum gateway aplikasi Claude](/id/claude-apps-gateway): quickstart dan menghubungkan pengembang330* [Gambaran umum gateway aplikasi Claude](/docs/id/claude-apps-gateway): quickstart dan menghubungkan pengembang

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.3> Use this file to discover all available pages before exploring further.

4 4 

5# Gunakan Claude Code di web5# Gunakan Claude Code di cloud

6 6 

7> Pindahkan sesi antara web dan terminal dengan `--cloud` dan `--teleport`, kelola dan bagikan sesi, serta auto-fix pull request dari cloud.7> Jalankan sesi Claude Code di cloud dari browser, ponsel, aplikasi desktop, atau terminal Anda, pindahkan dengan --cloud dan --teleport, dan auto-fix pull request.

8 8 

9<Note>9<Note>

10 Claude Code di web sedang dalam pratinjau penelitian untuk pengguna Pro, Max, dan Team, serta untuk pengguna Enterprise dengan kursi premium atau kursi Chat + Claude Code.10 Sesi cloud sedang dalam pratinjau penelitian untuk pengguna Pro, Max, dan Team, serta untuk pengguna Enterprise dengan kursi premium atau kursi Chat + Claude Code.

11</Note>11</Note>

12 12 

13Claude Code di web menjalankan tugas pada infrastruktur cloud yang dikelola Anthropic di [claude.ai/code](https://claude.ai/code), atau pada [lingkungan self-hosted](/docs/id/self-hosted-environments) organisasi Anda saat dialihkan ke sana. Sesi bertahan bahkan jika Anda menutup browser, dan Anda dapat memantaunya dari aplikasi mobile Claude.13Sesi cloud adalah sesi Claude Code yang berjalan pada infrastruktur cloud alih-alih pada mesin Anda. Secara default, sesi berjalan pada infrastruktur yang dikelola Anthropic, atau pada [lingkungan self-hosted](/docs/id/self-hosted-environments) organisasi Anda saat dialihkan ke sana. Sesi terus berjalan setelah Anda menutup laptop, dan Anda dapat memeriksanya atau mengarahkannya dari perangkat apa pun.

14 

15Anda dapat memulai sesi cloud dari salah satu permukaan ini:

16 

17* **Browser**: [claude.ai/code](https://claude.ai/code), juga disebut Claude Code di web

18* **Mobile**: tab **Code** di [aplikasi Claude](/docs/id/mobile)

19* **Aplikasi desktop**: pilih **Cloud** alih-alih **Local** saat Anda [memulai sesi](/docs/id/desktop#run-long-running-tasks-in-the-cloud)

20* **Terminal**: [`claude --cloud`](#from-terminal-to-cloud)

21* **Routines**: [penjadwalan dan pemicu berjalan](/docs/id/routines) masing-masing berjalan sebagai sesi cloud

22 

23Untuk membuat Claude memulai dan melacak banyak sesi cloud untuk satu badan pekerjaan, gunakan [proyek](/docs/id/claude-projects). Sesi di terminal Anda, IDE Anda, atau aplikasi Desktop dengan **Local** yang dipilih berjalan pada mesin Anda sendiri. Untuk mengarahkan salah satu sesi lokal tersebut dari ponsel atau browser Anda, gunakan [Remote Control](/docs/id/remote-control).

14 24 

15<Tip>25<Tip>

16 Baru mengenal Claude Code di web? Mulai dengan [Memulai](/docs/id/web-quickstart) untuk menghubungkan akun GitHub Anda dan mengirimkan tugas pertama Anda.26 Baru mengenal sesi cloud? Mulai dengan [Memulai](/docs/id/web-quickstart) untuk menghubungkan akun GitHub Anda dan mengirimkan tugas pertama Anda.

17</Tip>27</Tip>

18 28 

19Halaman ini mencakup produk web itu sendiri:29Halaman ini mencakup:

20 30 

21* [Lingkungan cloud](#cloud-environments): tempat sesi berjalan, dan cara mengonfigurasinya31* [Lingkungan cloud](#cloud-environments): tempat sesi berjalan, dan tempat untuk mengonfigurasinya

22* [Opsi autentikasi GitHub](#github-authentication-options): dua cara untuk menghubungkan GitHub32* [Opsi autentikasi GitHub](#github-authentication-options): dua cara untuk menghubungkan GitHub

23* [Pindahkan tugas antara web dan terminal](#move-tasks-between-web-and-terminal) dengan `--cloud` dan `--teleport`33* [Pindahkan tugas antara terminal dan cloud](#move-tasks-between-terminal-and-cloud) dengan `--cloud` dan `--teleport`

24* [Bekerja dengan sesi](#work-with-sessions): mode izin, meninjau, berbagi, mengarsipkan, menghapus34* [Bekerja dengan sesi](#work-with-sessions): mode izin, meninjau, berbagi, mengarsipkan, menghapus

25* [Auto-fix pull request](#auto-fix-pull-requests): merespons secara otomatis kegagalan CI dan komentar ulasan35* [Auto-fix pull request](#auto-fix-pull-requests): merespons secara otomatis kegagalan CI dan komentar ulasan

26* [Keamanan dan isolasi](#security-and-isolation): bagaimana sesi diisolasi36* [Keamanan dan isolasi](#security-and-isolation): bagaimana sesi diisolasi


49 59 

50Menginstal Claude GitHub App di repositori juga mengaktifkan [Auto-fix](#auto-fix-pull-requests) untuk pull request di dalamnya.60Menginstal Claude GitHub App di repositori juga mengaktifkan [Auto-fix](#auto-fix-pull-requests) untuk pull request di dalamnya.

51 61 

52Untuk cara `/schedule` memeriksa akses repositori sebelum membuat routine, lihat [Repositori dan izin cabang](/docs/id/routines#repositories-and-branch-permissions). Lihat [Hubungkan dari terminal Anda](/docs/id/web-quickstart#connect-from-your-terminal) untuk panduan `/web-setup`, termasuk apa yang disimpan `/web-setup` dan cara menghapusnya.62Thread dalam [project](/docs/id/claude-projects) memerlukan Claude GitHub App diinstal di setiap repositori yang mereka kloning, metode mana pun yang Anda gunakan untuk terhubung. Lihat [Set up GitHub access](/docs/id/claude-projects#set-up-github-access).

63 

64Untuk cara `/schedule` memeriksa akses repositori sebelum membuat routine, lihat [Repositories and branch permissions](/docs/id/routines#repositories-and-branch-permissions). Lihat [Connect from your terminal](/docs/id/web-quickstart#connect-from-your-terminal) untuk panduan `/web-setup`, termasuk apa yang disimpan `/web-setup` dan cara menghapusnya.

53 65 

54Quick web setup adalah pengaturan organisasi yang memungkinkan anggota menghubungkan GitHub dengan `/web-setup`, melewati prompt instalasi Claude GitHub App selama onboarding browser, dan membuat onboarding browser membuat lingkungan [**Default**](/docs/id/cloud-environments#the-default-environment) untuk mereka alih-alih menampilkan formulir lingkungan. Pada paket Team dan Enterprise, ini dimatikan secara default, yang menyembunyikan `/web-setup`. [Owner](/docs/id/server-managed-settings#access-control) mengaktifkannya dengan toggle **Quick web setup** di [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code).66Quick web setup adalah pengaturan organisasi yang memungkinkan anggota menghubungkan GitHub dengan `/web-setup`, melewati prompt instalasi Claude GitHub App selama onboarding browser, dan membuat onboarding browser membuat lingkungan [**Default**](/docs/id/cloud-environments#the-default-environment) untuk mereka alih-alih menampilkan formulir lingkungan. Pada paket Team dan Enterprise, ini dimatikan secara default, yang menyembunyikan `/web-setup`. [Owner](/docs/id/server-managed-settings#access-control) mengaktifkannya dengan toggle **Quick web setup** di [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code).

55 67 


57 Organisasi dengan [Zero Data Retention](/docs/id/zero-data-retention) yang diaktifkan tidak dapat menggunakan `/web-setup` atau fitur sesi cloud lainnya.69 Organisasi dengan [Zero Data Retention](/docs/id/zero-data-retention) yang diaktifkan tidak dapat menggunakan `/web-setup` atau fitur sesi cloud lainnya.

58</Note>70</Note>

59 71 

60<h2 id="move-tasks-between-web-and-terminal">72<h2 id="move-tasks-between-terminal-and-cloud">

61 Memindahkan tugas antara web dan terminal73 Memindahkan tugas antara terminal dan cloud

62</h2>74</h2>

63 75 

64Alur kerja ini memerlukan [Claude Code CLI](/docs/id/quickstart) yang masuk ke akun claude.ai yang sama. Anda dapat memulai sesi cloud baru dari terminal Anda, atau menarik sesi cloud ke terminal Anda untuk melanjutkan secara lokal. Sesi cloud tetap ada bahkan jika Anda menutup laptop, dan Anda dapat memantaunya dari mana saja termasuk aplikasi mobile Claude.76Alur kerja ini memerlukan [Claude Code CLI](/docs/id/quickstart) yang masuk ke akun claude.ai yang sama. Anda dapat memulai sesi cloud baru dari terminal Anda, atau menarik sesi cloud ke terminal Anda untuk melanjutkan secara lokal. Sesi cloud tetap ada bahkan jika Anda menutup laptop, dan Anda dapat memantaunya dari mana saja termasuk aplikasi mobile Claude.

65 77 

66<Note>78<Note>

67 Dari CLI, handoff sesi adalah satu arah: Anda dapat menarik sesi cloud ke terminal Anda dengan `--teleport`, tetapi Anda tidak dapat mendorong sesi terminal yang sudah ada ke web. Flag `--cloud` dengan deskripsi tugas membuat sesi cloud baru untuk repositori Anda saat ini; dengan `-p` dan ID sesi atau URL claude.ai/code, flag tersebut malah [antri pesan ke sesi yang sudah ada itu](/docs/id/claude-code-on-the-web#send-follow-ups-from-the-cli). [Aplikasi Desktop](/docs/id/desktop#continue-in-another-surface) menyediakan menu Continue in yang dapat mengirim sesi lokal ke web.79 Dari CLI, handoff sesi adalah satu arah: Anda dapat menarik sesi cloud ke terminal Anda dengan `--teleport`, tetapi Anda tidak dapat mendorong sesi terminal yang sudah ada ke cloud. Flag `--cloud` dengan deskripsi tugas membuat sesi cloud baru untuk repositori Anda saat ini; dengan `-p` dan ID sesi atau URL claude.ai/code, flag tersebut malah [antri pesan ke sesi yang sudah ada itu](/docs/id/claude-code-on-the-web#send-follow-ups-from-the-cli). [Aplikasi Desktop](/docs/id/desktop#continue-in-another-surface) menyediakan menu **Continue in** yang dapat mengirim sesi lokal ke cloud.

68</Note>80</Note>

69 81 

70<h3 id="from-terminal-to-web">82<h3 id="from-terminal-to-cloud">

71 Dari terminal ke web83 Dari terminal ke cloud

72</h3>84</h3>

73 85 

74Mulai sesi cloud dari baris perintah dengan flag `--cloud`:86Mulai sesi cloud dari baris perintah dengan flag `--cloud`:


84Saat kontainer cloud dimulai, CLI menampilkan daftar periksa langsung dari langkah-langkah penyiapan, seperti mengkloning repositori dan menjalankan [skrip penyiapan Anda](/docs/id/cloud-environments#setup-scripts). Ini antri pesan yang Anda ketik selama penyediaan dan mengirimnya setelah sesi siap.96Saat kontainer cloud dimulai, CLI menampilkan daftar periksa langsung dari langkah-langkah penyiapan, seperti mengkloning repositori dan menjalankan [skrip penyiapan Anda](/docs/id/cloud-environments#setup-scripts). Ini antri pesan yang Anda ketik selama penyediaan dan mengirimnya setelah sesi siap.

85 97 

86<Note>98<Note>

87 `--cloud` membuat sesi cloud. `--remote-control` tidak terkait: ini mengekspos sesi CLI lokal untuk pemantauan dari web. Lihat [Remote Control](/docs/id/remote-control).99 `--cloud` membuat sesi cloud. `--remote-control` tidak terkait: ini memungkinkan Anda memantau dan mengarahkan sesi CLI lokal dari claude.ai atau aplikasi Claude. Lihat [Remote Control](/docs/id/remote-control).

88</Note>100</Note>

89 101 

90Buka sesi di claude.ai atau aplikasi mobile Claude untuk memeriksa kemajuan atau berinteraksi langsung. Dari sana Anda dapat mengarahkan Claude, memberikan umpan balik, atau menjawab pertanyaan seperti dalam percakapan lainnya.102Buka sesi di claude.ai atau aplikasi mobile Claude untuk memeriksa kemajuan atau berinteraksi langsung. Dari sana Anda dapat mengarahkan Claude, memberikan umpan balik, atau menjawab pertanyaan seperti dalam percakapan lainnya.


95 Tips untuk tugas cloud107 Tips untuk tugas cloud

96</h4>108</h4>

97 109 

98**Rencanakan secara lokal, jalankan dari jarak jauh**: untuk tugas yang kompleks, mulai Claude dalam mode rencana untuk berkolaborasi pada pendekatan, kemudian kirim pekerjaan ke cloud:110**Rencanakan secara lokal, jalankan di cloud**: untuk tugas yang kompleks, mulai Claude dalam mode rencana untuk berkolaborasi pada pendekatan, kemudian kirim pekerjaan ke cloud:

99 111 

100```bash theme={null}112```bash theme={null}

101claude --permission-mode plan113claude --permission-mode plan


115claude --cloud "Refactor the logger to use structured output"127claude --cloud "Refactor the logger to use structured output"

116```128```

117 129 

118Ketika sesi selesai, Anda dapat membuat PR dari antarmuka web atau [teleport](#from-web-to-terminal) sesi ke terminal Anda untuk melanjutkan bekerja.130Ketika sesi selesai, Anda dapat membuat PR dari claude.ai/code atau [teleport](#from-cloud-to-terminal) sesi ke terminal Anda untuk melanjutkan bekerja.

119 131 

120<h4 id="send-local-repositories-without-github">132<h4 id="send-local-repositories-without-github">

121 Mengirim repositori lokal tanpa GitHub133 Mengirim repositori lokal tanpa GitHub


183| `Session not found: <id>` | ID atau URL tidak cocok dengan sesi yang dapat Anda akses. Periksa terhadap URL claude.ai/code sesi. |195| `Session not found: <id>` | ID atau URL tidak cocok dengan sesi yang dapat Anda akses. Periksa terhadap URL claude.ai/code sesi. |

184| `cloud session <id> is archived and cannot accept new messages` | Sesi telah diarsipkan. Mulai sesi baru sebagai gantinya. |196| `cloud session <id> is archived and cannot accept new messages` | Sesi telah diarsipkan. Mulai sesi baru sebagai gantinya. |

185 197 

186<h3 id="from-web-to-terminal">198<h3 id="from-cloud-to-terminal">

187 Dari web ke terminal199 Dari cloud ke terminal

188</h3>200</h3>

189 201 

190Tarik sesi cloud ke terminal Anda menggunakan salah satu dari ini:202Tarik sesi cloud ke terminal Anda menggunakan salah satu dari ini:


192* **Menggunakan `--teleport`**: dari baris perintah, jalankan `claude --teleport` untuk pemilih sesi interaktif, atau `claude --teleport <session-id>` untuk melanjutkan sesi tertentu secara langsung. Jika Anda memiliki perubahan yang tidak dicommit, Anda akan diminta untuk menyimpannya terlebih dahulu.204* **Menggunakan `--teleport`**: dari baris perintah, jalankan `claude --teleport` untuk pemilih sesi interaktif, atau `claude --teleport <session-id>` untuk melanjutkan sesi tertentu secara langsung. Jika Anda memiliki perubahan yang tidak dicommit, Anda akan diminta untuk menyimpannya terlebih dahulu.

193* **Menggunakan `/teleport`**: di dalam sesi CLI yang sudah ada, jalankan `/teleport` atau `/tp` untuk membuka pemilih sesi yang sama tanpa memulai ulang Claude Code.205* **Menggunakan `/teleport`**: di dalam sesi CLI yang sudah ada, jalankan `/teleport` atau `/tp` untuk membuka pemilih sesi yang sama tanpa memulai ulang Claude Code.

194* **Dari `/tasks`**: jalankan `/tasks` untuk melihat sesi latar belakang Anda, kemudian tekan `t` untuk teleport ke dalamnya.206* **Dari `/tasks`**: jalankan `/tasks` untuk melihat sesi latar belakang Anda, kemudian tekan `t` untuk teleport ke dalamnya.

195* **Dari antarmuka web**: pilih **Open in > Terminal** dari menu sesi untuk menyalin perintah yang dapat Anda tempel ke terminal Anda.207* **Dari claude.ai/code**: pilih **Open in > Terminal** dari menu sesi untuk menyalin perintah yang dapat Anda tempel ke terminal Anda.

196* **Dari dalam sesi cloud**: ketik `/teleport` dan Claude Code membalas dengan perintah `claude --teleport <session-id>` yang tepat untuk sesi itu, siap dijalankan dari checkout repositori. Memerlukan Claude Code v2.1.223 atau lebih baru di lingkungan sesi.208* **Dari dalam sesi cloud**: ketik `/teleport` dan Claude Code membalas dengan perintah `claude --teleport <session-id>` yang tepat untuk sesi itu, siap dijalankan dari checkout repositori. Memerlukan Claude Code v2.1.223 atau lebih baru di lingkungan sesi.

197 209 

198Ketika Anda teleport sesi, Claude memverifikasi Anda berada di repositori yang benar, mengambil dan checkout cabang dari sesi cloud, dan memuat riwayat percakapan lengkap ke terminal Anda. Terminal mendapatkan salinannya sendiri dari sesi: pekerjaan baru di sana tetap lokal dan tidak muncul di sesi cloud di claude.ai atau aplikasi mobile Claude. Untuk terus mengarahkan dari ponsel Anda setelah teleport, mulai [`/remote-control`](/docs/id/remote-control) dalam sesi lokal.210Ketika Anda teleport sesi, Claude memverifikasi Anda berada di repositori yang benar, mengambil dan checkout cabang dari sesi cloud, dan memuat riwayat percakapan lengkap ke terminal Anda. Terminal mendapatkan salinannya sendiri dari sesi: pekerjaan baru di sana tetap lokal dan tidak muncul di sesi cloud di claude.ai atau aplikasi mobile Claude. Untuk terus mengarahkan dari ponsel Anda setelah teleport, mulai [`/remote-control`](/docs/id/remote-control) dalam sesi lokal.


224 236 

225Sesi muncul di bilah samping di claude.ai/code. Dari sana Anda dapat meninjau perubahan, berbagi dengan rekan kerja, mengarsipkan pekerjaan yang selesai, atau menghapus sesi secara permanen.237Sesi muncul di bilah samping di claude.ai/code. Dari sana Anda dapat meninjau perubahan, berbagi dengan rekan kerja, mengarsipkan pekerjaan yang selesai, atau menghapus sesi secara permanen.

226 238 

239<h3 id="take-back-a-queued-message">

240 Ambil kembali pesan yang antri

241</h3>

242 

243Jika Anda mengirim pesan saat Claude sedang bekerja, pesan akan antri hingga Claude membacanya. Untuk mengambil kembali pesan yang antri, klik ✕ di atasnya. Teks kembali ke kotak pesan sehingga Anda dapat mengeditnya atau mengirim sesuatu yang lain.

244 

245Jika Claude sudah membaca pesan, pesan tetap ada dalam percakapan.

246 

227<h3 id="manage-context">247<h3 id="manage-context">

228 Kelola konteks248 Kelola konteks

229</h3>249</h3>

230 250 

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

232 252 

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

234* **`/config`**: di web, membuka bagian Claude Code dari pengaturan Anda alih-alih menetapkan nilai, dan teks setelah perintah, termasuk `key=value`, diabaikan. Untuk mengubah pengaturan sesi cloud, gunakan [variabel lingkungan](/docs/id/cloud-environments#set-environment-variables) atau komit [file pengaturan](/docs/id/settings) ke repositori.254* **`/fast`**: mengalihkan [mode cepat](/docs/id/fast-mode#use-fast-mode-in-cloud-sessions) untuk sesi ketika mode cepat [tersedia di akun Anda](/docs/id/fast-mode#requirements). Memerlukan Claude Code v2.1.271 atau lebih baru di lingkungan sesi.

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

235 256 

236Untuk manajemen konteks secara khusus:257Untuk manajemen konteks secara khusus:

237 258 


241| `/context` | Ya | Menunjukkan apa yang saat ini ada di jendela konteks |262| `/context` | Ya | Menunjukkan apa yang saat ini ada di jendela konteks |

242| `/clear` | Tidak | Mulai sesi baru dari bilah samping sebagai gantinya |263| `/clear` | Tidak | Mulai sesi baru dari bilah samping sebagai gantinya |

243 264 

244Pemadatan otomatis berjalan secara otomatis ketika jendela konteks mendekati kapasitas. Claude Code di web menetapkan [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/id/env-vars) di sesi cloud itu sendiri, sehingga pemadatan dipicu di tengah [jendela auto-compact](/docs/id/model-config#set-the-auto-compact-window) daripada ketika jendela penuh. Nilai itu menggantikan nilai yang Anda tambahkan di [variabel lingkungan](/docs/id/cloud-environments#set-environment-variables) Anda, jadi menambahkan variabel di sana tidak mengubah kapan pemadatan dipicu.265Pemadatan otomatis berjalan secara otomatis ketika jendela konteks mendekati kapasitas. Sesi cloud menetapkan [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/id/env-vars) mereka sendiri, sehingga pemadatan dipicu di tengah [jendela auto-compact](/docs/id/model-config#set-the-auto-compact-window) daripada ketika jendela penuh. Nilai itu menggantikan nilai yang Anda tambahkan di [variabel lingkungan](/docs/id/cloud-environments#set-environment-variables) Anda, jadi menambahkan variabel di sana tidak mengubah kapan pemadatan dipicu.

245 266 

246Untuk mengubah jendela auto-compact sebagai gantinya, atur [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/id/env-vars) di variabel lingkungan Anda, atau jalankan [`/autocompact`](/docs/id/commands#all-commands) dengan hitungan token di sesi tempat variabel tidak diatur.267Untuk mengubah jendela auto-compact sebagai gantinya, atur [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/id/env-vars) di variabel lingkungan Anda, atau jalankan [`/autocompact`](/docs/id/commands#all-commands) dengan hitungan token di sesi tempat variabel tidak diatur.

247 268 


309Anda akan diminta untuk mengonfirmasi sebelum sesi dihapus.330Anda akan diminta untuk mengonfirmasi sebelum sesi dihapus.

310 331 

311<h2 id="auto-fix-pull-requests">332<h2 id="auto-fix-pull-requests">

312 Auto-fix pull request333 Auto-fix pull requests

313</h2>334</h2>

314 335 

315Claude dapat memantau pull request dan secara otomatis merespons kegagalan CI dan komentar ulasan. Claude berlangganan aktivitas GitHub di PR, dan ketika pemeriksaan gagal atau pengulas meninggalkan komentar, Claude menyelidiki dan mendorong perbaikan jika ada yang jelas.336Claude dapat memantau pull request dan secara otomatis merespons kegagalan CI dan komentar ulasan. Claude berlangganan aktivitas GitHub di PR, dan ketika pemeriksaan gagal atau pengulas meninggalkan komentar, Claude menyelidiki dan mendorong perbaikan jika ada yang jelas.


320 341 

321Ada beberapa cara untuk mengaktifkan auto-fix tergantung di mana PR berasal dan perangkat apa yang Anda gunakan:342Ada beberapa cara untuk mengaktifkan auto-fix tergantung di mana PR berasal dan perangkat apa yang Anda gunakan:

322 343 

323* **PR yang dibuat di Claude Code di web**: buka bilah status CI dan pilih **Auto-fix**344* **PR yang dibuat dalam sesi cloud**: buka sesi di claude.ai/code, buka bilah status CI, dan pilih **Auto-fix**

324* **Dari terminal Anda**: jalankan [`/autofix-pr`](/docs/id/commands) saat berada di cabang PR. Claude Code mendeteksi PR terbuka dengan `gh`, menelurkan sesi web, dan mengaktifkan auto-fix dalam satu langkah345* **Dari terminal Anda**: jalankan [`/autofix-pr`](/docs/id/commands) saat berada di cabang PR. Claude Code mendeteksi PR terbuka dengan `gh`, menelurkan sesi cloud, dan mengaktifkan auto-fix dalam satu langkah

325* **Dari aplikasi mobile**: beri tahu Claude untuk auto-fix PR, misalnya "watch this PR and fix any CI failures or review comments"346* **Dari aplikasi mobile**: beri tahu Claude untuk auto-fix PR, misalnya "watch this PR and fix any CI failures or review comments"

326* **PR yang ada**: tempel URL PR ke sesi dan beri tahu Claude untuk auto-fix347* **PR yang ada**: tempel URL PR ke sesi dan beri tahu Claude untuk auto-fix

327 348 

328Auto-fix adalah toggle per-PR. Untuk berhenti memantau, buka bilah status CI dalam sesi web dan hapus toggle **Auto-fix**, atau beri tahu Claude untuk berhenti memantau PR.349Auto-fix adalah toggle per-PR. Untuk berhenti memantau, buka bilah status CI dalam sesi di claude.ai/code dan hapus toggle **Auto-fix**, atau beri tahu Claude untuk berhenti memantau PR.

329 350 

330<h3 id="how-claude-responds-to-pr-activity">351<h3 id="how-claude-responds-to-pr-activity">

331 Bagaimana Claude merespons aktivitas PR352 Bagaimana Claude merespons aktivitas PR


395 Environment expired416 Environment expired

396</h3>417</h3>

397 418 

398Sesi cloud berhenti setelah periode inaktivitas dan VM sesi diambil kembali. Sesi dihitung sebagai tidak aktif saat menunggu Anda menyetujui panggilan alat [MCP connector](/docs/id/cloud-environments#network-access) atau untuk masuk ke server MCP, dan dapat kedaluwarsa selama menunggu itu. Di web, sesi ditandai kedaluwarsa dalam daftar sesi.419Sesi cloud berhenti setelah periode inaktivitas dan VM sesi diambil kembali. Sesi dihitung sebagai tidak aktif saat menunggu Anda menyetujui panggilan alat [MCP connector](/docs/id/cloud-environments#network-access) atau untuk masuk ke server MCP, dan dapat kedaluwarsa selama menunggu itu.

399 420 

400Buka kembali sesi dari [claude.ai/code](https://claude.ai/code) untuk menyediakan VM segar dengan riwayat percakapan Anda dipulihkan. Pekerjaan latar belakang yang masih berjalan saat VM diambil kembali, seperti subagents dan perintah shell, tidak dipulihkan.421Buka kembali sesi dari [claude.ai/code](https://claude.ai/code) untuk menyediakan VM segar dengan riwayat percakapan Anda dipulihkan. Pekerjaan latar belakang yang masih berjalan saat VM diambil kembali, seperti subagents dan perintah shell, tidak dipulihkan.

401 422 


405 426 

406Sebelum mengandalkan sesi cloud untuk alur kerja, pertimbangkan batasan ini:427Sebelum mengandalkan sesi cloud untuk alur kerja, pertimbangkan batasan ini:

407 428 

408* **Batas laju**: Claude Code di web berbagi batas laju dengan semua penggunaan Claude dan Claude Code lainnya dalam akun Anda. Menjalankan beberapa tugas secara paralel mengonsumsi lebih banyak batas laju secara proporsional. Tidak ada biaya komputasi terpisah untuk VM cloud.429* **Batas laju**: sesi cloud berbagi batas laju dengan semua penggunaan Claude dan Claude Code lainnya dalam akun Anda. Menjalankan beberapa tugas secara paralel mengonsumsi lebih banyak batas laju secara proporsional. Tidak ada biaya komputasi terpisah untuk VM cloud.

409* **Autentikasi repositori**: Anda hanya dapat memindahkan sesi dari web ke lokal saat Anda diautentikasi ke akun yang sama430* **Autentikasi repositori**: Anda hanya dapat menarik sesi cloud ke terminal Anda saat Anda diautentikasi ke akun yang sama

410* **Pembatasan platform**: kloning repositori dan pembuatan pull request memerlukan GitHub. Instans [GitHub Enterprise Server](/docs/id/github-enterprise-server) self-hosted didukung untuk paket Team dan Enterprise. Anda dapat mengirim repositori GitLab, Bitbucket, atau non-GitHub lainnya ke sesi cloud sebagai [bundle lokal](#send-local-repositories-without-github) dengan menetapkan `CCR_FORCE_BUNDLE=1`, tetapi sesi tidak dapat mendorong hasil kembali ke remote tersebut431* **Pembatasan platform**: kloning repositori dan pembuatan pull request memerlukan GitHub. Instans [GitHub Enterprise Server](/docs/id/github-enterprise-server) self-hosted didukung untuk paket Team dan Enterprise. Anda dapat mengirim repositori GitLab, Bitbucket, atau non-GitHub lainnya ke sesi cloud sebagai [bundle lokal](#send-local-repositories-without-github) dengan menetapkan `CCR_FORCE_BUNDLE=1`, tetapi sesi tidak dapat mendorong hasil kembali ke remote tersebut

411* **Daftar putih IP organisasi**: sesi cloud memanggil API Anthropic dari infrastruktur yang dikelola Anthropic, bukan jaringan Anda, sementara sesi di [lingkungan self-hosted](/docs/id/self-hosted-environments) memanggilnya dari jaringan Anda sendiri. Jika organisasi Anda memiliki [IP allowlisting](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) yang diaktifkan, setiap sesi cloud yang dihosting Anthropic gagal dengan kesalahan autentikasi. Hal yang sama berlaku untuk [Code Review](/docs/id/code-review) dan untuk [routines](/docs/id/routines) yang berjalan pada lingkungan yang dihosting Anthropic; routine yang dialihkan ke lingkungan self-hosted memanggil API dari jaringan Anda sendiri. Hubungi [dukungan Anthropic](https://support.claude.com/) untuk mengecualikan layanan yang dihosting Anthropic dari daftar putih IP organisasi Anda.432* **Daftar putih IP organisasi**: sesi cloud memanggil API Anthropic dari infrastruktur yang dikelola Anthropic, bukan jaringan Anda, sementara sesi di [lingkungan self-hosted](/docs/id/self-hosted-environments) memanggilnya dari jaringan Anda sendiri. Jika organisasi Anda memiliki [IP allowlisting](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) yang diaktifkan, setiap sesi cloud yang dihosting Anthropic gagal dengan kesalahan autentikasi. Hal yang sama berlaku untuk [Code Review](/docs/id/code-review) dan untuk [routines](/docs/id/routines) yang berjalan pada lingkungan yang dihosting Anthropic; routine yang dialihkan ke lingkungan self-hosted memanggil API dari jaringan Anda sendiri. Hubungi [dukungan Anthropic](https://support.claude.com/) untuk mengecualikan layanan yang dihosting Anthropic dari daftar putih IP organisasi Anda.

412 433 


415</h2>436</h2>

416 437 

417* [Lingkungan cloud](/docs/id/cloud-environments): konfigurasi akses jaringan, variabel lingkungan, dan skrip setup untuk sesi cloud438* [Lingkungan cloud](/docs/id/cloud-environments): konfigurasi akses jaringan, variabel lingkungan, dan skrip setup untuk sesi cloud

439* [Proyek](/docs/id/claude-projects): satu percakapan di mana Claude mengoordinasikan sesi cloud paralel pada repositori Anda dan melaporkan kembali

418* [Ultrareview](/docs/id/ultrareview): jalankan ulasan kode multi-agen mendalam di sandbox cloud440* [Ultrareview](/docs/id/ultrareview): jalankan ulasan kode multi-agen mendalam di sandbox cloud

419* [Routines](/docs/id/routines): otomatisasi pekerjaan pada jadwal, melalui panggilan API, atau sebagai respons terhadap acara GitHub441* [Routines](/docs/id/routines): otomatisasi pekerjaan pada jadwal, melalui panggilan API, atau sebagai respons terhadap acara GitHub

420* [Konfigurasi Hooks](/docs/id/hooks): jalankan skrip pada acara siklus hidup sesi442* [Konfigurasi Hooks](/docs/id/hooks): jalankan skrip pada acara siklus hidup sesi

Details

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

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

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

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

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

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

40 40 


640 color: '#5AA7A7',640 color: '#5AA7A7',

641 oneLiner: 'Custom instruction sets that adjust how Claude works',641 oneLiner: 'Custom instruction sets that adjust how Claude works',

642 when: 'Files read at startup; the style you select with outputStyle applies to every response',642 when: 'Files read at startup; the style you select with outputStyle applies to every response',

643 description: [<>Each markdown file defines an output style: a set of instructions for Claude that, by default, also replaces the built-in software-engineering task instructions. Use this to adapt Claude Code for uses beyond coding, or to add teaching or review modes.</>, <>Select a built-in or custom style with <C>/config</C> or the <C>outputStyle</C> key in settings. Styles here are available in every project; project-level styles with the same name take precedence.</>],643 description: [<>Each markdown file defines an output style: a set of instructions for Claude that, by default, also replaces the built-in software-engineering task instructions. Use this to adapt Claude Code for uses beyond coding, or to add teaching or review modes.</>, <>Select a built-in or custom style with <C>/output-style</C>, <C>/config</C>, or the <C>outputStyle</C> key in settings. Styles here are available in every project; project-level styles with the same name take precedence.</>],

644 tips: ['Built-in styles Default, Proactive, Concise, Explanatory, and Learning are included with Claude Code; custom styles go here', <>Set <C>keep-coding-instructions: true</C> in frontmatter to keep the default task instructions alongside your additions</>, 'Switching styles mid-session applies from your next message; in the terminal, a style file you create or edit mid-session is picked up after a restart'],644 tips: ['Built-in styles Default, Proactive, Concise, Explanatory, and Learning are included with Claude Code; custom styles go here', <>Set <C>keep-coding-instructions: true</C> in frontmatter to keep the default task instructions alongside your additions</>, 'Switching styles mid-session applies from your next message; in the terminal, a style file you create or edit mid-session is picked up after a restart'],

645 docsLink: '/en/output-styles',645 docsLink: '/en/output-styles',

646 children: [{646 children: [{


1434 1434 

1435Di Windows, `~/.claude` diselesaikan menjadi `%USERPROFILE%\.claude`. Jika Anda menetapkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars), setiap jalur `~/.claude` di halaman ini berada di bawah direktori itu sebagai gantinya.1435Di Windows, `~/.claude` diselesaikan menjadi `%USERPROFILE%\.claude`. Jika Anda menetapkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars), setiap jalur `~/.claude` di halaman ini berada di bawah direktori itu sebagai gantinya.

1436 1436 

1437Sebagian besar pengguna hanya mengedit `CLAUDE.md` dan `settings.json`. Sisa direktori bersifat opsional: tambahkan skills, rules, atau subagents sesuai kebutuhan Anda.1437Sebagian besar pengguna hanya mengedit `CLAUDE.md` dan `settings.json`. Jika repositori Anda sudah memiliki `AGENTS.md` untuk agen coding lainnya, Claude Code [dapat membacanya](/docs/id/memory#agents-md) sendiri atau bersama `CLAUDE.md`. Sisa direktori bersifat opsional: tambahkan skills, rules, atau subagents sesuai kebutuhan Anda.

1438 1438 

1439<h2 id="explore-the-directory">1439<h2 id="explore-the-directory">

1440 Jelajahi direktori1440 Jelajahi direktori


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

1452 1452 

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

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

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

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

1457| Plugin yang diinstal | `~/.claude/plugins` | Marketplace yang dikloning, versi plugin yang diinstal, dan data per-plugin, dikelola oleh perintah `claude plugin`. Untuk plugin yang diinstal dari marketplace dengan [`command` source](/docs/id/plugin-marketplaces#command-sources) dalam link mode, Claude Code menyimpan link di sini alih-alih salinan, dan file plugin tetap berada di direktori yang dicetak perintah. A `command` source memerlukan Claude Code v2.1.229 atau lebih baru. Lihat [plugin caching](/docs/id/plugins-reference#plugin-caching-and-file-resolution) untuk cara versi yatim piatu dibersihkan. |1457| `AGENTS.md` | Akar proyek, `.claude/`, atau direktori apa pun | Instruksi proyek yang Anda tulis untuk agen coding AI. Claude Code dapat [memuatnya](/docs/id/memory#agents-md) sendiri atau bersama `CLAUDE.md`. |

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

1458 1459 

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

1460 1461 


1524 Data aplikasi1525 Data aplikasi

1525</h2>1526</h2>

1526 1527 

1527Selain konfigurasi yang Anda buat, `~/.claude` menyimpan data yang ditulis Claude Code selama sesi. File-file ini adalah plaintext. Apa pun yang melewati tool mendarat di transkrip di disk: konten file, output perintah, teks yang ditempel.1528Selain konfigurasi yang Anda buat, `~/.claude` menyimpan data yang Claude Code tulis selama sesi. File-file ini adalah plaintext. Apa pun yang melewati alat ditulis ke transkrip di disk: konten file, output perintah, teks yang ditempel.

1528 1529 

1529<h3 id="cleaned-up-automatically">1530<h3 id="cleaned-up-automatically">

1530 Dibersihkan secara otomatis1531 Dibersihkan secara otomatis

1531</h3>1532</h3>

1532 1533 

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

1534 1535 

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

1536| ------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1537| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

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

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

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

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

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

1545| `image-cache/<session>/` | Gambar yang dilampirkan. Pada setiap sweep, Claude Code menghapus direktori semua sesi lain, apa pun usia mereka. |1546| `image-cache/<session>/` | Gambar yang dilampirkan. Pada setiap sweep, Claude Code menghapus direktori semua sesi lain, apa pun usianya. |

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

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

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

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

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

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

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

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

1554| `todos/`, `statsig/`, `logs/` | Direktori warisan dari versi yang lebih lama. Tidak lagi ditulis. Sweep menghapus kontennya dan kemudian direktori kosong. |1555| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/id/skills#how-synced-skills-behave) dan [plugins](/docs/id/plugins-reference#synced-plugins) yang disinkronkan dari claude.ai yang Claude Code hapus. Dipindahkan ke sini alih-alih dihapus sehingga Anda dapat memulihkan file |

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

1555 1557 

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

1557 1559 

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

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

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

1561 1563 

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

1563 1565 

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

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

1566 1568 

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

1568 Disimpan sampai Anda menghapusnya1570 Disimpan sampai Anda menghapusnya

1569</h3>1571</h3>

1570 1572 

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

1572 1574 

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

1574| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1576| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

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

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

1580 1582 

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

1582 1584 

1583File lain muncul tergantung fitur mana yang Anda gunakan. Cache dan file lock aman untuk dihapus. Simpan file state ini:1585File lain muncul tergantung pada fitur mana yang Anda gunakan. Cache dan file kunci aman untuk dihapus. Simpan file status ini:

1584 1586 

1585* `.credentials.json`: [kredensial login](/docs/id/authentication#credential-management) Anda1587* `.credentials.json`: [kredensial login](/docs/id/authentication#credential-management) Anda

1586* `agent-memory/`: [subagent memory](/docs/id/sub-agents#enable-persistent-memory)1588* `agent-memory/`: [memori subagent](/docs/id/sub-agents#enable-persistent-memory)

1587* `jobs/` dan `daemon/`: state [background session](/docs/id/agent-view#where-state-is-stored)1589* `jobs/` dan `daemon/`: status [sesi latar belakang](/docs/id/agent-view#where-state-is-stored)

1588 1590 

1589<h3 id="plaintext-storage">1591<h3 id="plaintext-storage">

1590 Penyimpanan plaintext1592 Penyimpanan plaintext

1591</h3>1593</h3>

1592 1594 

1593Transkrip dan riwayat tidak dienkripsi saat istirahat. Izin file OS adalah satu-satunya perlindungan. Jika tool membaca file `.env` atau perintah mencetak kredensial, nilai itu ditulis ke `projects/<project>/<session>.jsonl`. Untuk mengurangi paparan:1595Transkrip dan riwayat tidak dienkripsi saat istirahat. Izin file OS adalah satu-satunya perlindungan. Jika alat membaca file `.env` atau perintah mencetak kredensial, nilai itu ditulis ke `projects/<project>/<session>.jsonl`. Untuk mengurangi paparan:

1594 1596 

1595* Turunkan `cleanupPeriodDays` untuk mempersingkat berapa lama Claude Code menyimpan transkrip1597* Turunkan `cleanupPeriodDays` untuk mempersingkat berapa lama Claude Code menyimpan transkrip

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

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

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

1599 1601 


1601 Hapus data lokal1603 Hapus data lokal

1602</h3>1604</h3>

1603 1605 

1604Jalankan `claude project purge` untuk menghapus state yang Claude Code simpan untuk satu proyek. Ini menghapus:1606Jalankan `claude project purge` untuk menghapus status yang Claude Code simpan untuk satu proyek. Ini menghapus:

1605 1607 

1606* Transkrip dan memori otomatis di bawah `projects/`1608* Transkrip dan memori otomatis di bawah `projects/`

1607* Entri `tasks/`, `debug/`, dan `file-history/` per-sesi1609* Entri `tasks/`, `debug/`, dan `file-history/` per-sesi


1610 1612 

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

1612 1614 

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

1614 1616 

1615Pratinjau rencana tanpa menghapus apa pun:1617Pratinjau rencana tanpa menghapus apa pun:

1616 1618 


1618claude project purge ~/work/my-repo --dry-run1620claude project purge ~/work/my-repo --dry-run

1619```1621```

1620 1622 

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

1622 1624 

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

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


1635Dry run: 3 item(s) would be deleted.1637Dry run: 3 item(s) would be deleted.

1636```1638```

1637 1639 

1638Hapus dengan prompt konfirmasi tunggal:1640Hapus dengan satu prompt konfirmasi:

1639 1641 

1640```bash theme={null}1642```bash theme={null}

1641claude project purge ~/work/my-repo1643claude project purge ~/work/my-repo


1643 1645 

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

1645 1647 

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

1647 1649 

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

1649 1651 


1651claude project purge ~/work/my-repo --yes1653claude project purge ~/work/my-repo --yes

1652```1654```

1653 1655 

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

1655 1657 

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

1657 1659 

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

1659 1661 

1660| Hapus | Anda kehilangan |1662| Hapus | Anda kehilangan |

1661| ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |1663| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1662| `~/.claude/projects/` | Resume, continue, dan rewind untuk sesi masa lalu, dan auto memory untuk setiap proyek |1664| `~/.claude/projects/` | Lanjutkan, lanjutkan, dan putar ulang untuk sesi masa lalu, dan memori otomatis untuk setiap proyek |

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

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

1665| `~/.claude/uploads/` | Lampiran yang sesi [Remote Control](/docs/id/remote-control) masa lalu rujuk menurut jalur |1667| `~/.claude/uploads/` | Lampiran yang sesi [Remote Control](/docs/id/remote-control) masa lalu rujuk menurut jalur |

1666| `~/.claude/file-history/` | Checkpoint restore untuk sesi masa lalu |1668| `~/.claude/file-history/` | Pemulihan checkpoint untuk sesi masa lalu |

1667| `~/.claude/stats-cache.json` | Total historis yang ditampilkan oleh `/usage` |1669| `~/.claude/stats-cache.json` | Total historis yang ditampilkan oleh `/usage` |

1668| `~/.claude/usage-data/` | Laporan [`/insights`](/docs/id/costs#analyze-your-usage-patterns) masa lalu dan data analisis cache yang digunakan untuk membangunnya |1670| `~/.claude/usage-data/` | Laporan [`/insights`](/docs/id/costs#analyze-your-usage-patterns) masa lalu dan data analisis cache yang digunakan untuk membangunnya |

1669| `~/.claude/feedback-bundles/` | Feedback dan arsip laporan bug yang belum Anda kirim ke tim akun Anthropic Anda |1671| `~/.claude/feedback-bundles/` | Umpan balik dan arsip laporan bug yang belum Anda kirim ke tim akun Anthropic Anda |

1670| `~/.claude/feedback/drafts/` | [Claude-drafted feedback](/docs/id/tools-reference#sendfeedback-tool-behavior) yang belum Anda kirim |1672| `~/.claude/feedback/drafts/` | [Umpan balik yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior) yang belum Anda kirim |

1671| `~/.claude/remote-settings.json` | Tidak ada. Diambil kembali pada peluncuran berikutnya. |1673| `~/.claude/remote-settings.json` | Tidak ada. Diambil kembali saat peluncuran berikutnya. |

1672| `~/.claude/cache/changelog.md` | Tidak ada. Disegarkan di latar belakang. |1674| `~/.claude/cache/changelog.md` | Tidak ada. Disegarkan di latar belakang. |

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

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

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

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

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

1677 1680 

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

1679 1682 

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

1681 Sumber daya terkait1684 Sumber daya terkait

claude-projects.md +538 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Biarkan Claude mengoordinasikan pekerjaan berkelanjutan dengan Projects

6 

7> Berikan Claude sekumpulan pekerjaan terkait dalam satu percakapan dan biarkan ia mengoordinasikan sesi cloud paralel yang berbagi repositori, instruksi, dan memori.

8 

9<Note>

10 Projects sedang dalam beta publik di paket Pro dan Max dan diluncurkan secara bertahap, dimulai dengan akun yang telah menggunakan [sesi cloud](/docs/id/claude-code-on-the-web) dan tidak memiliki projects yang ada di claude.ai chat atau Cowork. Mereka belum tersedia di paket Team atau Enterprise. Jika **Projects** tidak muncul di sidebar di [claude.ai/code](https://claude.ai/code) atau di tab Code dari [aplikasi desktop](/docs/id/desktop), peluncuran belum mencapai akun Anda, dan Anda dapat [bergabung dengan daftar tunggu](https://claude.com/form/projects). [Jalankan agen secara paralel](/docs/id/agents) mencantumkan apa yang dapat Anda gunakan sementara itu.

11</Note>

12 

13Sebuah project adalah satu percakapan berkelanjutan di mana Claude mengoordinasikan aliran pekerjaan terkait untuk Anda. Anda memberi tahu apa yang perlu dilakukan dan ia memulai thread untuk setiap tugas. Setiap thread adalah [sesi cloud](/docs/id/claude-code-on-the-web): Claude Code berjalan di cloud daripada di mesin Anda. Thread berjalan secara paralel dan terus berjalan setelah Anda menutup laptop, dan Anda dapat memeriksanya dan mengarahkannya dari ponsel Anda.

14 

15Tanpa project, menjalankan beberapa sesi berarti melakukan koordinasi sendiri: Anda memutuskan apa yang dikerjakan masing-masing, mengulangi latar belakang yang sama di awal masing-masing, dan memeriksa kembali untuk melihat mana yang selesai atau membutuhkan jawaban. Dengan project, Anda malah:

16 

17* **Kirim pekerjaan ke satu tempat**: tempel laporan bug, stack trace, atau daftar tugas ke dalam percakapan kapan pun muncul. Claude memulai thread untuk setiap bagian pekerjaan atau meneruskannya ke thread yang sudah bekerja di area itu, dan menjawab pertanyaan cepat di tempat.

18* **Atur konteks sekali**: setiap thread baru dimulai dengan repositori, instruksi, dan memori project, jadi aturan yang Anda nyatakan sekali, seperti branch mana yang ditargetkan, mencapai semuanya.

19* **Pergi dan kembali ke pekerjaan yang selesai**: ketika Anda kembali satu jam kemudian atau pagi berikutnya, pane **Overview** menunjukkan thread mana yang selesai, pull request mana yang siap untuk ditinjau, dan thread mana yang menunggu jawaban Anda.

20 

21Jika Anda sudah tahu pekerjaan yang ingin dijalankan project, langsung ke [Buat project](#create-a-project).

22 

23<h2 id="when-to-use-a-project">

24 Kapan menggunakan project

25</h2>

26 

27Project layak dibuat ketika pekerjaan memiliki tujuan yang melampaui satu sesi dan terus menghasilkan tugas. Jenis pekerjaan ini cocok untuk project:

28 

29* **Satu tujuan di banyak repositori**: "Bawa setiap layanan ke konfigurasi lint baru." Claude dapat menjalankan thread per repositori, masing-masing dengan pull request sendiri, dan pane [**Overview**](#see-what-needs-you-in-overview) menunjukkan mana yang siap untuk ditinjau.

30* **Area yang terus Anda isi**: bug, stack trace, dan permintaan review untuk satu layanan, ditempel ke dalam percakapan saat sampai ke Anda. Jebakan yang Anda beri tahu Claude untuk diingat setelah satu perbaikan ada di [project memory](#give-a-project-standing-context) untuk yang berikutnya.

31* **Build atau migrasi yang lebih besar dari satu sesi**: "Bangun apa yang dijelaskan `docs/spec.md`" atau "Pindahkan aplikasi dari ORM yang sudah usang." Pekerjaan terbagi menjadi thread yang masing-masing mengambil bagian, keputusan yang Anda minta Claude untuk diingat di awal mencapai thread yang lebih baru, dan spec berubah serta bug yang Anda temukan selama build masuk ke percakapan yang sama.

32* **Pekerjaan yang bukan kode**: folder kontrak atau ekspor tiket dukungan yang terus Anda kembali dengan pertanyaan baru, seperti "temukan sepuluh kesalahan integrasi paling umum di tiket ini." Unggah dokumen alih-alih menambahkan repositori, dan thread memberikan setiap laporan sebagai file di tab [**Library**](#see-what-needs-you-in-overview) project.

33 

34Di salah satu dari mereka Anda dapat mengirim batch tugas, beri tahu Claude untuk memulai tanpa meminta Anda mengonfirmasi, pergi, dan temukan thread yang membutuhkan Anda di bawah [**Waiting on you**](#see-what-needs-you-in-overview) ketika Anda kembali, atau minta Claude untuk menjadwalkan bagian pekerjaan sebagai [routine](/docs/id/routines). Jika salah satu ini adalah situasi Anda, [buat project](#create-a-project).

35 

36<h3 id="when-something-else-fits-better">

37 Kapan sesuatu yang lain lebih cocok

38</h3>

39 

40Thread bekerja pada repositori GitHub dan pada file, folder, dan folder Google Drive yang Anda unggah ke project, bukan pada file atau alat yang hanya ada di mesin Anda. Sesuatu yang lain lebih cocok dalam kasus ini:

41 

42* **Satu tugas yang cocok dalam satu sesi**: "Perbaiki tes login yang tidak stabil." Mulai [sesi cloud](/docs/id/claude-code-on-the-web) sendiri.

43* **Pekerjaan yang membutuhkan alat atau layanan yang hanya dapat dijangkau mesin Anda**: database lokal, emulator perangkat, API di belakang VPN Anda. Gunakan sesi lokal, atau [agent view](/docs/id/agent-view) untuk menjalankan beberapa sekaligus. Jika pekerjaan hanya membutuhkan file lokal, unggah ke project.

44* **Satu tugas yang berulang pada jadwal tanpa percakapan di sekitarnya**: "Posting laporan dependensi setiap Senin." Buat [routine](/docs/id/routines) sendiri.

45* **Beberapa orang memberi Claude pekerjaan dan mengarahkannya bersama di saluran Slack**: lihat [Claude Tag](https://claude.com/docs/claude-tag/overview).

46 

47Project menggunakan batas paket yang sama dengan sesi Claude Code lainnya dan menggunakannya lebih cepat. [Usage and cost](#usage-and-cost) mencakup apa yang menggunakan paket Anda dan cara menjaganya tetap rendah.

48 

49<h2 id="how-a-project-is-organized">

50 Bagaimana project diorganisir

51</h2>

52 

53Project adalah satu percakapan koordinasi dengan Claude ditambah thread yang dimulainya untuk melakukan pekerjaan. Ini adalah bagian-bagiannya:

54 

55* **Percakapan project**: satu sesi jangka panjang di mana Claude bertindak sebagai koordinator. Ini mengambil apa yang Anda kirim, memutuskan apa yang menjadi thread, dan melacak setiap thread yang dimulainya. Ini melihat apa yang dilaporkan thread kembali, bukan setiap langkah yang mereka ambil.

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

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

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

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

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

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

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

63 

64Thread tidak mengambil apa pun dari setup Claude Code di mesin Anda sendiri. [Dapatkan skills, plugins, connectors, dan tools ke dalam threads](#get-skills-plugins-connectors-and-tools-into-threads) mencakup cara memberikan mereka apa yang mereka butuhkan.

65 

66Berikut adalah bagaimana bagian-bagian itu terhubung, dari Anda melalui percakapan ke thread yang melakukan pekerjaan, dengan **Overview** melacak keadaan mereka:

67 

68<Frame>

69 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=dbf446f69f0bbdb9961d21af207cb93b" className="dark:hidden" alt="Diagram project. Anda menulis di percakapan project, di mana Claude menjawab atau memulai thread. Setiap thread adalah sesi cloud yang bekerja di cabang dan pull request sendiri. Pane Overview mencantumkan thread berdasarkan keadaan, seperti siap untuk ditinjau, menunggu Anda, dan bekerja." width="600" height="250" data-path="images/claude-projects-overview.svg" />

70 

71 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview-dark.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=549a5ba9fea8433729babc37a1f6e9c8" className="hidden dark:block" alt="Diagram project. Anda menulis di percakapan project, di mana Claude menjawab atau memulai thread. Setiap thread adalah sesi cloud yang bekerja di cabang dan pull request sendiri. Pane Overview mencantumkan thread berdasarkan keadaan, seperti siap untuk ditinjau, menunggu Anda, dan bekerja." width="600" height="250" data-path="images/claude-projects-overview-dark.svg" />

72</Frame>

73 

74<h2 id="create-a-project">

75 Buat project

76</h2>

77 

78Anda membuat dan menggunakan projects di [claude.ai/code](https://claude.ai/code), di tab Code dari aplikasi desktop, atau di aplikasi mobile Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) dan [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude). Di browser dan aplikasi desktop ada dua cara untuk memulai project:

79 

80* **Dari awal**, ketika Anda tahu aliran pekerjaan yang ingin dijalankan Claude: buka dialog **New project** dan beri nama. [Mulai project baru dari awal](#start-a-new-project-from-scratch) memandu melalui dialog.

81* **Dari sesi cloud yang sudah melakukan pekerjaan**: pilih **Continue as a project** dari menu sesi itu, dan Claude mengusulkan setup project dari apa yang dilakukan sesi. Lihat [Mulai dari sesi cloud yang ada](#start-from-an-existing-cloud-session).

82 

83Bagaimanapun, [periksa prasyarat](#check-the-prerequisites) terlebih dahulu.

84 

85<h3 id="check-the-prerequisites">

86 Periksa prasyarat

87</h3>

88 

89Sebelum Anda membuat project, periksa paket Anda, setup GitHub Anda, dan apa yang dibutuhkan pekerjaan untuk dijangkau:

90 

91* **Paket**: Anda berada di Pro atau Max dan **Projects** ditampilkan di sidebar Anda.

92* **GitHub, jika project akan bekerja pada kode**: kode Anda ada di github.com daripada GitHub Enterprise Server, GitLab, atau Bitbucket, akun GitHub yang terhubung memiliki akses push ke kode, dan Claude GitHub App terinstal di atasnya. Jika Anda menghubungkan GitHub dengan [`/web-setup`](/docs/id/web-quickstart#connect-from-your-terminal), token itu memungkinkan sesi cloud lain Anda menjangkau repositori tetapi tidak cukup untuk thread project, yang membutuhkan Claude GitHub App. [Atur akses GitHub](#set-up-github-access) memiliki langkah-langkahnya.

93* **Jaringan, kredensial, dan alat**: ini berasal dari [cloud environment](#choose-an-environment-for-threads) project. Environment default sudah menjangkau [registri paket umum](/docs/id/cloud-environments#default-allowed-domains), jadi periksa ini hanya jika pekerjaan membutuhkan domain lain, rahasia, atau alat yang tidak terinstal sebelumnya. Jika pekerjaan membutuhkan server MCP, periksa bahwa itu ditampilkan sebagai terhubung di [connectors claude.ai](https://claude.ai/customize/connectors) Anda.

94 

95<h3 id="start-a-new-project-from-scratch">

96 Mulai project baru dari awal

97</h3>

98 

99Memulai project dari awal berarti membuka dialog **New project**, memberi nama aliran pekerjaan, dan secara opsional memberikan tujuan dan repositori serta file yang dikerjakan. Hanya nama yang diperlukan, jadi Anda dapat membuat project terlebih dahulu dan mengisinya saat pekerjaan berkembang.

100 

101<Steps>

102 <Step title="Buka Projects">

103 Di [claude.ai/code](https://claude.ai/code) atau di tab Code dari aplikasi desktop, pilih **Projects** di sidebar kiri, lalu pilih **New project**. Di browser Anda juga dapat langsung ke [claude.ai/code/projects/browse](https://claude.ai/code/projects/browse).

104 </Step>

105 

106 <Step title="Isi dialog New project">

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

108 

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

110 * **Goal** (opsional): satu baris tentang apa yang Anda coba capai, seperti "Pertahankan latensi API p95 di bawah 200 ms". Claude dalam percakapan bekerja menuju itu. Tanpa tujuan, Claude bekerja dari tugas yang Anda kirim, dan Anda dapat menambahkan tujuan nanti di **Project settings > General**.

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

112 

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

114 </Step>

115 

116 <Step title="Buat project">

117 Klik **Create project**. Percakapan project terbuka dengan kotak pesan di bagian bawah, di mana Anda mendeskripsikan pekerjaan untuk Claude.

118 

119 Di project pertama Anda, Claude mengambil giliran sendiri segera setelah project dibuat, kecuali Anda mengirim pesan terlebih dahulu. Giliran itu menggunakan paket Anda. Di dalamnya, Claude mungkin:

120 

121 * Mulai satu thread yang mengeksplorasi repositori tanpa mengubah apa pun dan mengusulkan langkah berikutnya, jika project memiliki repositori yang dapat dibaca.

122 * Posting **Setup recommendations** yang diambil dari sesi cloud terbaru Anda: repositori untuk ditambahkan, routine untuk dibuat, dan thread yang dapat dimulai. Setiap repositori dan routine yang direkomendasikan dimulai dengan diaktifkan. Matikan yang tidak Anda inginkan, lalu klik **Update setup** untuk menambahkan sisanya, atau abaikan rekomendasi dan deskripsikan pekerjaan sendiri.

123 </Step>

124</Steps>

125 

126Project sekarang tercantum di bawah **Projects** di sidebar, dan percakapannya terbuka. [Batch pertama Anda](#your-first-batch) mencakup apa yang harus diatur sebelum Anda mengirimnya pekerjaan.

127 

128<h3 id="start-from-an-existing-cloud-session">

129 Mulai dari sesi cloud yang ada

130</h3>

131 

132Jika Anda sudah memiliki sesi cloud yang melakukan pekerjaan yang seharusnya ada di project, buka menu sesi di sidebar dan pilih **Continue as a project** atau **Move to project**:

133 

134* **Continue as a project** membuat project baru bernama sesuai sesi dan membukanya. Claude membaca sesi dan memposting **Setup recommendations** dalam percakapan untuk Anda konfirmasi. Sesi asli tetap ada di daftar sesi Anda, dan jika sedang dalam giliran, terus berjalan, jadi hentikan sendiri jika Anda tidak ingin keduanya bekerja sekaligus. Jika Anda menggunakan banner **Set up project** yang dapat muncul di atas kotak pesan sesi cloud, hasilnya sama, kecuali giliran sesi yang sedang berjalan berhenti setelah project terbuka.

135* **Move to project** membawa pekerjaan sesi ke project yang ada. Ini memposting pesan di percakapan project itu meminta Claude untuk membaca sesi dan melanjutkan dari mana ia berhenti, dan pekerjaan baru berlanjut di thread project sendiri. Sesi asli tetap ada di daftar sesi Anda, tidak berubah.

136 

137<h3 id="set-up-github-access">

138 Atur akses GitHub

139</h3>

140 

141Sebagian besar setup GitHub terjadi sekali, bukan per project. Anda menghubungkan akun GitHub ke Claude sekali, dan Claude GitHub App diinstal sekali per repositori, atau sekali untuk seluruh organisasi GitHub jika Anda memberikan semua repositori. Anda kembali ke langkah-langkah ini ketika Anda menambahkan repositori yang Claude GitHub App belum cover atau satu di organisasi GitHub yang memberlakukan SSO.

142 

143<Steps>

144 <Step title="Hubungkan akun GitHub Anda">

145 Jika Anda belum pernah menggunakan claude.ai/code sebelumnya, kunjungan pertama Anda memandu Anda menghubungkan GitHub; lihat [Hubungkan GitHub](/docs/id/web-quickstart#connect-github). Jika tidak, gunakan salah satu dari [opsi autentikasi GitHub](/docs/id/claude-code-on-the-web#github-authentication-options).

146 </Step>

147 

148 <Step title="Instal Claude GitHub App di repositori project">

149 Instal [Claude GitHub App](https://github.com/apps/claude) dan berikan repositori yang akan digunakan project. Di repositori yang dimiliki organisasi GitHub, hanya pemilik organisasi yang dapat menyelesaikan instalasi; jika Anda bukan, GitHub mengirim permintaan instalasi ke pemilik dan project tidak dapat menggunakan repositori sampai mereka menyetujuinya.

150 </Step>

151 

152 <Step title="Otorisasi SSO untuk organisasi yang memberlakukannya">

153 Jika organisasi GitHub memberlakukan SAML SSO, hubungkan kembali GitHub dan otorisasi aplikasi Claude untuk organisasi itu. Sampai Anda melakukannya, repositori pribadi organisasi itu tidak muncul di dialog **New project** atau **Project settings > Environment**.

154 </Step>

155</Steps>

156 

157Ketika salah satu langkah ini tidak lengkap, dialog **New project** dan halaman project menyebutkan langkah yang hilang dan menautkan ke tempat Anda menyelesaikannya. Selesaikan langkah di sana, lalu klik **Check again** jika dialog menawarkannya. Jika repositori masih hilang dari daftar setelahnya, buka instalasi Claude GitHub App di GitHub, di [github.com/settings/installations](https://github.com/settings/installations) untuk akun pribadi, dan konfirmasi repositori tercantum di bawah **Repository access**. Untuk pesan kesalahan yang dilaporkan thread atau project ketika akses masih salah, lihat [Repository access errors](#repository-access-errors).

158 

159<h2 id="work-in-a-project">

160 Bekerja di project

161</h2>

162 

163Berikan Claude pekerjaan melalui percakapan project: tugas satu per satu atau beberapa sekaligus, ditambah pembaruan dan pemikiran longgar saat muncul. Claude merutekan setiap pesan, dan thread melakukan pekerjaan dan melaporkan kembali.

164 

165<h3 id="your-first-batch">

166 Batch pertama Anda

167</h3>

168 

169Sebelum Anda mengirim batch pekerjaan project baru, aturlah sehingga thread pertama kembali seperti yang Anda inginkan:

170 

1711. [Tulis project instructions](#write-project-instructions): brief yang dimulai setiap thread, seperti cabang mana yang ditargetkan, bagaimana thread memeriksa pekerjaannya, dan apa yang membutuhkan persetujuan Anda.

1722. Kirim satu bagian kecil dari pekerjaan nyata, atau mulai salah satu thread yang disarankan Claude, dan buka thread ketika selesai untuk melihat bagaimana ia melaporkan kembali dan apa yang dilakukannya di cabangnya. Jika ia mengasumsikan sesuatu yang salah atau tidak dapat menjangkau apa yang dibutuhkan, [Threads menebak atau terhenti alih-alih bertanya](#threads-guessed-or-stalled-instead-of-asking) mencakup tempat untuk memperbaikinya.

1733. Periksa **Thread model** dan **Thread effort** di **Project settings > General**. Project baru menjalankan setiap thread pada Opus dengan effort tinggi, yang menggunakan paket Anda paling cepat; [Pilih model dan biarkan Claude mengelola konteks](#choose-models-and-let-claude-manage-context) mencakup alternatifnya.

1744. Minta Claude untuk [mengusulkan thread sebelum memulainya dan menjalankan beberapa sekaligus](#tune-how-claude-runs-a-project), dan turunkan batas tersebut setelah beberapa thread kembali seperti yang Anda inginkan.

175 

176<h3 id="send-work-and-read-results">

177 Kirim pekerjaan dan baca hasil

178</h3>

179 

180Claude memutuskan di mana setiap pesan yang Anda kirim dalam percakapan pergi:

181 

182* Pertanyaan cepat biasanya mendapat jawaban dalam percakapan.

183* Pekerjaan baru masuk ke thread baru atau ke thread yang sudah bekerja di area itu, dan Claude memberi tahu Anda mana. Setiap thread baru muncul di bawah pesan Anda sebagai kartu: kotak dengan judul dan status thread, yang Anda klik untuk membuka thread.

184* Beberapa tugas yang tidak terkait dalam satu pesan menjadi thread terpisah.

185 

186Jika Claude merutekan sesuatu berbeda dari yang Anda inginkan, katakan saja. [Sesuaikan cara Claude menjalankan project](#tune-how-claude-runs-a-project) mencantumkan hal-hal yang dapat Anda katakan, seperti menggunakan kembali thread yang ada untuk follow-up atau menjawab di tempat alih-alih memulai thread.

187 

188Hasil lengkap thread tetap ada di thread, dan Anda membuka kartunya dalam percakapan untuk membacanya. File yang dihasilkan thread juga ada di tab **Library** di **Overview**.

189 

190Kadang-kadang Claude mengusulkan thread alih-alih memulainya, dalam daftar **Suggested threads**. Klik panah pada saran untuk memulai thread itu. Ketika beberapa tercantum, tombol di bawah daftar memulai semuanya.

191 

192<h3 id="review-a-thread’s-pull-request">

193 Tinjau pull request thread

194</h3>

195 

196Ketika thread mengubah kode, inilah yang dilakukannya kecuali Anda memberi tahu sebaliknya:

197 

198* **Branch**: bekerja di cabang baru, dimulai dari cabang default repositori.

199* **Pull request**: membuka satu ketika Anda minta, dan dapat membuka satu sendiri untuk perbaikan bug atau perubahan konkret lainnya.

200* **Setelah dibuka**: mengawasi pull request dengan [auto-fix](/docs/id/claude-code-on-the-web#auto-fix-pull-requests) diaktifkan, terlepas dari apakah auto-fix aktif untuk sesi cloud lainnya. Ini mendorong perbaikan ketika CI gagal, mengatasi komentar review, dan membalas di thread ketika pemeriksaan lulus dan pull request siap untuk Anda.

201 

202Ketika thread telah mendorong cabang atau membuka pull request, kartunya dalam percakapan dapat menampilkan tombol untuk langkah berikutnya:

203 

204* **Resolve conflicts**, **Fix CI**, **Address comments**, dan **Merge it** mengirim instruksi itu ke thread sebagai pesan dari Anda, jadi Anda dapat meminta thread sendiri alih-alih menunggu untuk bereaksi terhadap pull request.

205* **Review PR** membuka pull request di GitHub.

206* **Create PR** muncul ketika thread idle telah mendorong cabang tetapi belum membuka pull request. Mengkliknya membuat pull request dari cabang itu secara langsung daripada mengirim instruksi thread untuk membuka satu.

207 

208Untuk mengubah kapan thread membuka pull request, misalnya hanya ketika Anda minta, atau cabang mana yang mereka mulai, katakan saja dalam tugas atau di [project instructions](#write-project-instructions).

209 

210<h3 id="see-what-needs-you-in-overview">

211 Lihat apa yang membutuhkan Anda di Overview

212</h3>

213 

214Pane **Overview** di samping percakapan melacak thread project. Sudah terbuka pertama kali Anda membuka project baru. Tombol **Overview** di header project menutup dan membukanya kembali, dan menunjukkan titik ketika thread menunggu Anda.

215 

216Di aplikasi desktop, Anda juga mendapatkan notifikasi desktop ketika Claude memposting dalam percakapan, thread mengalami kesalahan, atau thread membutuhkan input Anda, jadi Anda tidak harus membuat project tetap terbuka untuk mengetahuinya. Untuk juga mendapatkan satu setiap kali thread menyelesaikan giliran, atau untuk mematikannya untuk project, pilih **Notifications** di menu sidebar project. Notifikasi ini hanya desktop: di browser, periksa titik pada tombol **Overview**.

217 

218Tab **Threads** pane mengelompokkan thread berdasarkan keadaan:

219 

220| Grup | Apa yang ada di dalamnya |

221| :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

222| **Ready for review** | Thread yang pull request-nya terbuka dan menunggu review |

223| **Waiting on you** | Thread yang membutuhkan balasan atau persetujuan Anda, atau yang gagal |

224| **Working** | Thread yang masih berjalan |

225| **Landing** | Thread yang pull request-nya disetujui atau antri untuk merge |

226| **Idle** | Thread yang selesai dan tidak menunggu apa pun |

227| **Resolved** | Thread yang ditandai selesai: oleh Anda dari menu thread, oleh Claude setelah Anda mengambil langkah terakhir, seperti merge pull request-nya, atau secara otomatis setelah seminggu tanpa aktivitas. Anda dapat membuka kembali dari menu yang sama |

228 

229Tab lain pane adalah **Library** untuk file dan folder yang Anda tambahkan dan file yang dihasilkan thread, **Pull requests** setelah thread membuka apa pun, dan **Routines** untuk [routines](/docs/id/routines) yang Claude atur dari project ini.

230 

231<h3 id="open-a-thread-when-you-need-control">

232 Buka thread ketika Anda membutuhkan kontrol

233</h3>

234 

235Klik kartu thread dalam percakapan atau barisnya di **Overview** untuk membuka transkrip di pane Overview. Dari sana Anda dapat:

236 

237* Baca apa yang dilakukan Claude, langkah demi langkah.

238* Kemudi tugas dengan menulis di kotak pesan thread sendiri. Pesan di sana langsung ke thread itu, sementara follow-up dalam percakapan project mencapainya hanya ketika Claude mencocokkan follow-up ke thread itu.

239* Jawab prompt izin yang ditunggu thread.

240* Interupsi thread dengan **Stop**, yang menggantikan tombol kirim saat thread bekerja, atau dengan menekan Esc.

241 

242<h3 id="choose-models-and-let-claude-manage-context">

243 Pilih model dan biarkan Claude mengelola konteks

244</h3>

245 

246Atur model dan effort di **Project settings > General**. Project baru menjalankan Opus di mana-mana, dengan [effort](/docs/id/model-config#adjust-effort-level) tinggi untuk thread dan effort rendah untuk percakapan:

247 

248* **Thread model** dan **Thread effort** berlaku untuk thread. Untuk menggunakan model berbeda untuk satu tugas, minta dalam tugas; untuk thread yang sudah berjalan, gunakan pemilih model thread itu.

249* **Coordinator model** dan **Coordinator effort** berlaku untuk Claude dalam percakapan project.

250 

251Anda tidak mengelola jendela konteks dalam project. Thread compact secara otomatis, dan percakapan bekerja dari pesan terbaru, thread terbaru, dan project memory daripada riwayat lengkapnya, jadi terus berjalan selama project berjalan. Masukkan apa pun yang tidak boleh pernah dijatuhkan ke [project memory](#give-a-project-standing-context). Jika satu thread melampaui konteksnya, itu menunjukkan [Claude kehabisan konteks pada giliran ini](#context-limit).

252 

253<h3 id="tune-how-claude-runs-a-project">

254 Sesuaikan cara Claude menjalankan project

255</h3>

256 

257Beri tahu Claude dalam percakapan berapa banyak thread yang harus dijalankan sekaligus, kapan memposting pembaruan, dan kapan membuka pull request. Jika Claude mengoordinasikan dengan cara yang tidak Anda inginkan, katakan saja. Misalnya, Anda dapat mengatakan:

258 

259* "Usulkan thread dan tunggu persetujuan saya sebelum memulainya" atau "Mulai ini sekarang tanpa meminta saya untuk mengonfirmasi"

260* "Jalankan paling banyak dua thread sekaligus" atau "Gunakan kembali thread yang ada untuk follow-up di area yang sama"

261* "Posting pembaruan yang lebih pendek" atau "Hanya posting ketika sesuatu selesai atau terblokir"

262* "Berikan saya pembaruan status di setiap thread"

263* "Lakukan tugas ini dengan model yang lebih kecil"

264* "Jangan buka pull request sampai saya telah melihat rencananya"

265* "Beri tahu saya apa yang salah di repositori ini dan jangan perbaiki apa pun dulu", ketika Anda ingin melalui temuan sebelum salah satu menjadi thread

266* "Jawab itu di sini alih-alih memulai thread", ketika Claude memulai thread untuk sesuatu yang Anda maksudkan sebagai pertanyaan cepat

267 

268Claude menyimpan preferensi seperti ini ke [project memory](#give-a-project-standing-context) sendiri dan mengikutinya di thread yang lebih baru. Ini adalah instruksi yang Claude patuhi, bukan pengaturan yang diberlakukan, jadi batas thread yang Anda berikan dengan cara ini bukan batas keras. Tambahkan satu ke project instructions ketika Anda ingin diucapkan dengan tepat dan diterapkan ke setiap thread dari awal.

269 

270<h3 id="unblock-a-thread-waiting-on-approval">

271 Buka blokir thread yang menunggu persetujuan

272</h3>

273 

274Thread berjalan dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) ketika model thread mendukungnya, jadi sebagian besar panggilan alat berjalan tanpa meminta Anda. Ketika thread membutuhkan persetujuan Anda, prompt ada di dalam thread itu dan thread menunggu sampai Anda menjawabnya di sana. Memberi tahu Claude dalam percakapan project untuk melanjutkan tidak mencapainya.

275 

276Setiap persetujuan mencakup prompt itu, atau sisa thread itu jika Anda memilih opsi yang lebih luas. Untuk membiarkan setiap thread menjalankan perintah tertentu tanpa bertanya, atau untuk memblokir beberapa, tambahkan [permission rules](/docs/id/permissions) ke `.claude/settings.json` repositori. Thread menerapkannya hanya dalam project dengan satu repositori; lihat [Apa yang diambil thread dari repositori Anda](#what-threads-pick-up-from-your-repositories).

277 

278<h2 id="give-a-project-standing-context">

279 Berikan project konteks berdiri

280</h2>

281 

282Project memory, project instructions, dan repositori, file, dan environment project membawa konteks di seluruh thread. Anda menetapkan masing-masing sekali dan itu berlaku untuk setiap thread baru.

283 

284| Konteks | Apa yang dibawanya | Cara Anda menetapkannya |

285| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

286| Project memory | Catatan yang disimpan Claude tentang project, seperti persyaratan, keputusan, dan jebakan, disimpan sebagai file. Setiap thread membaca file indeks `MEMORY.md` ketika dimulai dan membuka file lain ketika membutuhkannya | Minta Claude dalam percakapan project atau thread apa pun untuk mengingat persyaratan, keputusan, atau jebakan, atau untuk melupakannya. Baca, edit, dan hapus file di **Project settings > Memory** |

287| Project instructions | Teks yang dikirim ke setiap thread baru dan ke Claude dalam percakapan project, hingga 16.000 karakter. [Tulis project instructions](#write-project-instructions) mencakup apa yang harus dimasukkan | **Project settings > Memory > Project instructions**, atau minta Claude untuk mengubah instruksi |

288| Repositori, file, dan environment | Repositori yang dikloning setiap thread, folder dan file yang dapat dibaca setiap thread di bawah `/mnt/project-files`, dan cloud environment yang dijalankan thread | Repositori dan environment di **Project settings > Environment**, atau minta Claude dalam percakapan untuk menambahkan repositori ke project. File dan folder dari **Add** di tab **Library** di **Overview** |

289 

290**Project settings > Memory** mencantumkan file-file ini di bawah **Auto memory**, karena Claude menulisnya sendiri saat bekerja di project. Mereka terpisah dari [auto memory](/docs/id/memory) yang disimpan Claude Code di mesin Anda, meskipun keduanya menggunakan indeks `MEMORY.md`. Project memory juga terpisah dari file `CLAUDE.md` di repositori project. Setiap thread masih membaca file `CLAUDE.md` itu dari klonnya ketika dimulai, jadi masukkan instruksi tentang repositori di `CLAUDE.md`-nya dan catatan tentang project di project memory.

291 

292<h3 id="write-project-instructions">

293 Tulis project instructions

294</h3>

295 

296Project instructions adalah brief yang dimulai setiap thread baru. Klik ikon gear di header project untuk membuka **Project settings**, lalu buka **Memory > Project instructions**. Brief yang berguna mencakup:

297 

298* Apa project itu untuk

299* Di mana pekerjaan terjadi: repositori mana, cabang mana yang dimulai, cara memberi nama pull request

300* Bagaimana thread memeriksa pekerjaannya sendiri sebelum menyebutnya selesai

301* Apa yang harus dilakukan ketika sesuatu yang dibutuhkan hilang

302* Apa yang membutuhkan persetujuan Anda terlebih dahulu

303 

304Misalnya:

305 

306```text theme={null}

307Project ini menjaga p95 latency untuk API pembayaran di bawah 200 ms: profiling, perbaikan query dan caching, dan upgrade dependensi yang menyertainya, di repositori payments-api.

308 

309- Branch dari main dan buka satu draft pull request per thread.

310- Sebelum Anda menyebut pekerjaan selesai, jalankan `make test` dan `make lint` dan tempel baris ringkasan dalam pesan terakhir Anda.

311- Jika Anda tidak dapat menjangkau sesuatu yang Anda butuhkan, seperti repositori, rahasia, API, atau connector, katakan dengan tepat apa yang hilang dalam pesan pertama Anda dan berhenti. Jangan ganti, mock, atau tebak.

312- Jangan merge, force-push, atau ubah konfigurasi CI tanpa bertanya kepada saya di thread.

313```

314 

315Aturan tentang satu repositori, seperti perintah buildnya, termasuk dalam `CLAUDE.md` repositori itu, yang dibaca setiap thread ketika repositori adalah bagian dari project. Setelah pekerjaan sedang berlangsung, ketika Anda mengoreksi thread, juga beri tahu Claude untuk mengingat koreksi: itu masuk ke [project memory](#give-a-project-standing-context) dan thread yang lebih baru dimulai dengannya.

316 

317<h3 id="decide-which-repositories-to-add">

318 Tentukan repositori mana yang akan ditambahkan

319</h3>

320 

321Repositori yang Anda tambahkan ke project datang dengan semua yang ada di dalamnya, kode, `CLAUDE.md`, dan skills, di setiap thread. Repositori yang tidak Anda tambahkan masih dalam jangkauan: thread dapat menambahkan satu ke dirinya sendiri ketika tugasnya membutuhkannya. Sebagian besar project menggunakan keduanya:

322 

323* **Tambahkan ke project**, di dialog **New project**, di **Project settings > Environment**, atau dengan meminta Claude dalam percakapan untuk menambahkannya ke project. Setiap thread dari saat itu mengklonnya dan dimulai dengan `CLAUDE.md` dan skills-nya dimuat, terlepas dari apakah tugas menyentuhnya. Pergi dari satu repositori ke beberapa juga mengubah apa yang diambil thread dari `.claude/settings.json` setiap repositori; lihat [Apa yang diambil thread dari repositori Anda](#what-threads-pick-up-from-your-repositories).

324* **Biarkan off dan biarkan thread menambahkannya ketika diperlukan.** Thread yang tugasnya membutuhkan repositori yang tidak dimiliki project dapat menambahkannya ke dirinya sendiri, dan catatan dalam thread mengatakan itu ditambahkan ke thread ini saja. Klon terjadi setengah jalan melalui tugas, jadi `CLAUDE.md` dan skills repositori itu tidak ada ketika thread dimulai. Thread berikutnya dimulai tanpanya lagi. Repositori yang ditambahkan thread membutuhkan [prasyarat](#check-the-prerequisites) yang sama dengan repositori project: Claude GitHub App diinstal di atasnya dan akses push dari akun GitHub Anda.

325 

326Project tidak membutuhkan repositori sama sekali. Thread-nya masih dapat meneliti, menulis dokumen, dan menulis dan menjalankan kode di sandbox mereka sendiri, dan mereka memberikan file ke tab **Library**. Thread di sana juga dapat menambahkan repositori ke dirinya sendiri ketika tugas memanggilnya.

327 

328Setelah project memiliki repositori, Claude hanya dapat menambahkan repositori dari pemilik GitHub yang sudah digunakan project, apakah menambahkan satu ke project atau thread menambahkan satu ke dirinya sendiri. Untuk membawa repositori dari pemilik berbeda, tambahkan sendiri di **Project settings > Environment**.

329 

330Untuk project yang mencakup banyak repositori, seperti satu fitur dengan kode server, web, mobile, dan desktop, tambahkan satu atau dua repositori yang hampir setiap tugas sentuh dan beri nama yang lain di [project instructions](#write-project-instructions) sehingga Claude tahu di mana sisa kode berada. Thread kemudian dimulai kecil dan menarik repositori lain hanya untuk tugas yang membutuhkannya.

331 

332<h3 id="what-threads-pick-up-from-your-repositories">

333 Apa yang diambil thread dari repositori Anda

334</h3>

335 

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

337 

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

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

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

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

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

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

344 

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

346 

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

348 Pilih environment untuk thread

349</h3>

350 

351Setiap thread baru dimulai dalam [cloud environment](/docs/id/cloud-environments) project. Environment menetapkan domain mana yang dapat dijangkau thread, variabel lingkungan mana yang mereka miliki, kredensial API mana yang ditambahkan ke permintaan mereka, dan apa yang diinstal skrip setup sebelum Claude dimulai. Thread menggunakan environment default yang dihosting Anthropic sampai Anda memilih satu di **Project settings > Environment**.

352 

353Jika thread perlu menjangkau API internal atau registri paket pribadi, atau membutuhkan token yang biasanya disimpan mesin Anda, ubah environment daripada project: lihat [Network access](/docs/id/cloud-environments#network-access), [Add API credentials](/docs/id/cloud-environments#add-api-credentials), dan [Setup scripts](/docs/id/cloud-environments#setup-scripts).

354 

355<h3 id="get-skills-plugins-connectors-and-tools-into-threads">

356 Dapatkan skills, plugins, connectors, dan tools ke dalam threads

357</h3>

358 

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

360 

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

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

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

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

365 

366Untuk melihat connectors mana yang dimiliki thread yang sedang berjalan di claude.ai/code, buka thread dan pilih **Connectors** dari menu **+** di samping kotak pesannya. Mematikan connector di sana menghapusnya dari thread itu dan menyimpannya sebagai default akun Anda, jadi thread baru dan chat claude.ai dimulai tanpanya sampai Anda menyalakannya kembali. Thread mengambil connector yang Anda tambahkan atau hubungkan kembali setelah pesan berikutnya yang Anda kirimkan.

367 

368<h2 id="project-settings-reference">

369 Referensi pengaturan project

370</h2>

371 

372Anda mengubah pengaturan project di claude.ai/code atau di aplikasi desktop, bukan di `settings.json`. Buka **Project settings** dari **Settings** di menu sidebar project atau dari ikon gear di header project.

373 

374Pengaturan disimpan saat Anda mengubahnya; bidang teks yang sedang Anda edit, seperti tujuan atau instruksi, menampilkan **Save changes** dan **Discard** sampai Anda meninggalkannya. Perubahan instruksi, repositori, plugins, dan environment di **Project settings** mencapai thread baru, bukan thread yang sudah berjalan.

375 

376| Pengaturan | Bagian | Apa yang dikontrolnya |

377| :--------------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------ |

378| Nama, ikon, dan tujuan | General | Nama dan ikon project di sidebar, dan tujuan satu barisnya |

379| Coordinator model dan effort | General | Model dan [effort level](/docs/id/model-config#adjust-effort-level) untuk Claude dalam percakapan project |

380| Thread model dan effort | General | Model dan effort level untuk thread |

381| Project instructions | Memory | [Aturan berdiri](#give-a-project-standing-context) yang diterima setiap thread baru |

382| Project repositories | Environment | Repositori yang dikloning thread baru |

383| Cloud environment | Environment | [Cloud environment](#choose-an-environment-for-threads) yang dijalankan thread baru |

384| Connectors | Environment | Link untuk mengelola connectors claude.ai yang didapatkan thread |

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

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

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

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

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

390 

391<h3 id="pause-archive-or-delete-a-project">

392 Pause, archive, atau delete project

393</h3>

394 

395Ketiga kontrol ada di bagian bawah **Project settings > General**:

396 

397* **Pause**: menghentikan semuanya sekaligus. Setiap thread yang berjalan dan percakapan terinterupsi, thread baru tidak dimulai, routine tidak berjalan, dan project tidak menerima pesan sampai Anda melanjutkannya. Klik **Resume** di tempat yang sama atau di banner di atas kotak pesan project; thread yang dijeda berlanjut ketika Anda mengirim pesan setelahnya.

398* **Archive**: menyembunyikan project dari sidebar dan mengarsipkan thread-nya, yang menghentikan thread apa pun yang sedang berjalan atau menonton pull request. Routine dalam project tidak berjalan saat diarsipkan. Untuk membawa project kembali, buka dari halaman Projects dan klik **Unarchive**. Thread-nya tetap diarsipkan sampai Anda membuka arsipnya secara individual dari daftar sesi.

399* **Delete**: secara permanen menghapus project bersama dengan thread-nya, memorinya, dan file-nya, dan mematikan routine project. Ini tidak dapat dibatalkan. Cabang dan pull request yang didorong thread ke GitHub tidak terpengaruh.

400 

401<h2 id="usage-and-cost">

402 Penggunaan dan biaya

403</h2>

404 

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

406 

407Thread yang mencapai batas paket Anda menunggu dan berlanjut sendiri ketika batas direset, jadi pekerjaan yang Anda tinggalkan berjalan mulai menggunakan jendela penggunaan berikutnya tanpa pesan dari Anda. [Thread mencapai batas penggunaan](#usage-limit-reached) mencakup apa yang Anda lihat, cara menghentikannya, dan satu kasus yang tidak menunggu.

408 

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

410 

411<h3 id="what-draws-on-your-plan">

412 Apa yang menggunakan paket Anda

413</h3>

414 

415Project menggunakan batas Anda lebih cepat daripada sesi tunggal, dan pada paket Pro khususnya Anda harus mengharapkan mencapai batas Anda lebih cepat pada hari Anda menjalankan satu. Ini adalah bagian dari project yang menggunakan paket Anda:

416 

417* **Running threads**: masing-masing adalah sesi penuh, dan beberapa dapat berjalan sekaligus. Tidak ada angka tetap; Claude memulai sebanyak yang diperlukan pekerjaan, dan batas yang Anda [minta](#tune-how-claude-runs-a-project) adalah preferensi daripada batas. Batas yang diberlakukan adalah 200 thread baru per hari di seluruh project Anda.

418* **Percakapan**: Claude menggunakan token sendiri membaca apa yang dilaporkan thread dan memutuskan apa yang harus dilakukan selanjutnya.

419* **Thread menonton pull request**: thread idle bangun dan menggunakan paket Anda lagi ketika CI gagal atau komentar review tiba di pull request-nya. Untuk menghentikan itu, minta di thread untuk berhenti menonton pull request.

420 

421Project tanpa thread yang berjalan, tidak ada pull request yang ditonton, dan tidak ada pesan baru tidak menggunakan paket Anda saat duduk idle, dan project yang diarsipkan juga tidak.

422 

423<h3 id="see-and-reduce-a-project’s-usage">

424 Lihat dan kurangi penggunaan project

425</h3>

426 

427Buka **Usage** di **Project settings** untuk melihat penggunaan token berdasarkan thread dan model, dan berapa banyak yang masuk ke percakapan project. Untuk menurunkannya:

428 

429* Follow-up yang dirutekan ke thread yang telah idle lebih lama dari [cache lifetime](/docs/id/prompt-caching#cache-lifetime), satu jam di Pro dan Max dalam batas paket Anda, membaca ulang seluruh percakapan thread sebelum melakukan apa pun. Untuk pekerjaan baru, meminta Claude untuk memulai thread segar dapat menggunakan lebih sedikit daripada menghidupkan kembali yang lama dan besar.

430* Untuk pekerjaan yang tidak membutuhkan model terbesar, [pilih model yang lebih kecil atau effort level yang lebih rendah](#choose-models-and-let-claude-manage-context) untuk thread, percakapan, atau keduanya.

431* Minta Claude dalam percakapan project untuk menjalankan lebih sedikit thread sekaligus, atau untuk menjawab pertanyaan kecil sendiri alih-alih memulai thread.

432 

433<h2 id="how-projects-relate-to-other-claude-code-features">

434 Bagaimana project berhubungan dengan fitur Claude Code lainnya

435</h2>

436 

437Beberapa fitur Claude Code memungkinkan lebih dari satu sesi bekerja pada waktu yang sama, jadi menjalankan pekerjaan secara paralel bukan dengan sendirinya apa yang dimaksudkan project. Dalam project, Claude memulai dan melacak sesi alih-alih Anda, masing-masing dimulai dari repositori, instruksi, dan memori yang sama, dan pekerjaan hidup di cloud selama pekerjaan berlangsung. Inilah cara setiap fitur tetangga terhubung ke project:

438 

439* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) adalah Claude di saluran Slack tim Anda, di paket Team dan Enterprise. Siapa pun di saluran dapat memberikan pekerjaan, semua orang di saluran melihat dan mengarahkannya, dan itu menggunakan koneksi yang disiapkan admin untuk saluran itu. Project adalah milik Anda sendiri: Anda satu-satunya yang mengirim pekerjaan atau melihat thread-nya, itu menggunakan akses GitHub dan connectors Anda sendiri, dan itu di Pro dan Max. [Bagaimana Claude Tag berbeda dari Cowork dan Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) memiliki perbandingan berdampingan.

440* **Cloud sessions**: setiap thread adalah [sesi cloud](/docs/id/claude-code-on-the-web), dimulai dan dilacak oleh Claude alih-alih oleh Anda. Sesi cloud yang Anda mulai sendiri dapat menjadi project atau memberi makan satu melalui [**Continue as a project** atau **Move to project**](#start-from-an-existing-cloud-session).

441* **Routines**: ketika Anda meminta pekerjaan terjadwal dalam project, Claude membuat [routine](/docs/id/routines) yang berjalan sebagai thread dalam project itu dan muncul di tab **Routines**-nya. Routine yang Anda buat di luar project terus bekerja sendiri.

442* **Local sessions dan agent view**: sesi di terminal, IDE, atau environment lokal aplikasi desktop berjalan di mesin Anda dan tidak dapat menjadi bagian dari project. [Agent view](/docs/id/agent-view) adalah layar untuk melacak beberapa sesi lokal itu; itu tidak memiliki koordinator.

443* **Worktrees**: [worktree](/docs/id/worktrees) memberikan setiap sesi lokal salinan kerjanya sendiri dari repositori sehingga sesi paralel di mesin Anda tidak menimpa satu sama lain. Thread tidak membutuhkannya: setiap thread mengkloning repositorinya ke sandbox cloud sendiri dan bekerja di cabang sendiri.

444* **Agent teams**: [agent team](/docs/id/agent-teams) adalah satu sesi yang memulai sesi rekan untuk satu tugas, di mesin Anda atau di dalam sesi cloud, dan berakhir dengan tugas itu.

445* **Projects di claude.ai chat dan Cowork**: [pengalaman Projects sebelumnya](https://support.claude.com/en/articles/9517075-what-are-projects), yang mengelompokkan percakapan dan file referensi tanpa thread atau koordinator. Project tersebut terus bekerja seperti yang mereka lakukan hari ini sampai pengalaman yang dirancang ulang mencapai mereka.

446 

447[Jalankan agen secara paralel](/docs/id/agents) membandingkan opsi ini berdampingan.

448 

449<h2 id="limitations">

450 Keterbatasan

451</h2>

452 

453* Project tersedia di claude.ai/code, di aplikasi desktop, dan di aplikasi mobile Claude, bukan di CLI terminal atau melalui Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry. Perintah [`claude project`](/docs/id/cli-reference) CLI, yang mengelola keadaan Claude Code lokal untuk direktori, tidak terkait.

454* Thread project adalah [sesi cloud](/docs/id/claude-code-on-the-web) dengan Anthropic sebagai penyedia model. [Security](/docs/id/security) dan [Data usage](/docs/id/data-usage) mencakup bagaimana sesi cloud diisolasi dan apa yang disimpan.

455* Sesi lokal tidak dapat menjadi bagian dari project.

456* Sandbox thread dijeda antara giliran dan dilanjutkan ketika thread berlanjut. Jika sandbox tidak dapat dilanjutkan, thread berlanjut dari klon segar, jadi perubahan yang tidak dicommit dapat hilang. Pada tugas panjang, minta Claude untuk commit dan push pekerjaan yang sedang berlangsung.

457* Project milik satu pengguna. Anda tidak dapat berbagi project atau thread-nya dengan pengguna lain, dan transkrip thread tidak memiliki opsi berbagi yang dimiliki sesi cloud lain. Tidak ada kontrol tingkat organisasi untuk project selama beta.

458* Thread milik satu project yang memulainya. Anda tidak dapat memindahkan atau menyalin thread ke project lain, atau memindahkannya keluar untuk berdiri sendiri. [**Move to project**](#start-from-an-existing-cloud-session) hanya berjalan dengan cara lain: itu membawa pekerjaan sesi cloud ke project.

459 

460<h2 id="troubleshooting">

461 Troubleshooting

462</h2>

463 

464Untuk prompt setup GitHub di dialog **New project**, lihat [Atur akses GitHub](#set-up-github-access).

465 

466<h3 id="a-thread-looks-stuck">

467 Thread terlihat terjebak

468</h3>

469 

470Claude tidak memposting setiap langkah yang diambil thread, jadi thread yang menunjukkan sedang berjalan tanpa pesan baru dalam percakapan project biasanya masih bekerja. Thread baru juga menyediakan [cloud environment](/docs/id/cloud-environments)-nya sebelum Claude dimulai, jadi pembaruan pertamanya membutuhkan waktu. Buka thread untuk membaca transkrip-nya. Jika thread menunggu prompt izin, jawab di sana.

471 

472<h3 id="threads-guessed-or-stalled-instead-of-asking">

473 Threads menebak atau terhenti alih-alih bertanya

474</h3>

475 

476Ketika beberapa thread kembali telah mengasumsikan sesuatu yang salah, bekerja di sekitar akses yang hilang, atau berhenti dengan "blocked", penyebabnya biasanya celah yang sama dalam setup project daripada masalah dengan setiap tugas. Urutkan thread mana yang solid sebelum Anda memperbaiki apa pun:

477 

4781. Tanya Claude dalam percakapan: "Untuk setiap thread terbuka, daftarkan apa yang Anda minta untuk dilakukan, apa yang diasumsikan atau tidak dapat dijangkau, dan apa yang ditunggu." Claude membaca setiap thread dan menjawab dalam percakapan.

4792. Untuk thread yang dimulai dari asumsi yang salah, buka thread dari **Overview** dan tandai resolved dari menunya, atau beri tahu apa yang harus dilakukan sebagai gantinya di kotak pesannya. Cabang dan pull request apa pun tetap di GitHub sampai Anda menghapusnya.

4803. Perbaiki celah sekali, di [project instructions](#give-a-project-standing-context) atau [environment](#choose-an-environment-for-threads), lalu kirim satu thread sebelum mengirim sisa pekerjaan lagi sebagai thread baru.

481 

482<h3 id="claude-hasnt-responded">

483 Claude belum merespons

484</h3>

485 

486Percakapan project menunjukkan banner "Claude hasn't responded" ketika Claude sedang berjalan tetapi balasannya tidak mencapai project. Klik **Restart Claude** di banner, atau buka **Project settings > General** dan klik **Restart** di baris **Restart Claude**. Claude terhubung kembali ke percakapan; balasan apa pun yang sedang ditulis hilang, dan thread tidak terpengaruh.

487 

488<h3 id="repository-access-errors">

489 Repository access errors

490</h3>

491 

492Tiga pesan berarti thread atau project tidak dapat menjangkau salah satu repositorinya. Thread project membutuhkan [prasyarat GitHub](#check-the-prerequisites) bahkan ketika sesi cloud lain Anda mengkloning repositori yang sama tanpa masalah.

493 

494* **"Couldn't start the session — Claude doesn't have GitHub access to this project's repository"**, dilaporkan sebelum thread dimulai, ketika Claude GitHub App tidak diinstal di repositori itu, ditangguhkan, atau tidak tertaut ke akun GitHub yang Anda hubungkan.

495* **"Unable to access your repository"**, dilaporkan oleh thread ketika klonnya gagal: GitHub menolak klon, repositori tidak ditemukan dengan nama yang dimiliki project, atau cabang yang diminta thread untuk dimulai tidak ada.

496* **"Claude can't access"** repositori, ditampilkan ketika Anda menyimpan repositori di dialog **New project** atau **Project settings**. Pesan berlanjut dengan link instalasi dan link reconnect. Gunakan link instalasi jika Claude GitHub App tidak ada di repositori itu, dan link reconnect jika ada, karena GitHub App dapat diinstal di GitHub tanpa tertaut ke akun yang Anda hubungkan ke Claude. Jika pesan mengatakan GitHub App ditangguhkan atau tidak menyertakan repositori ini, ikuti linknya ke GitHub untuk memperbaikinya.

497 

498Untuk memperbaiki salah satu dari mereka, klik tombol yang ditawarkan pesan, seperti **Install GitHub App** atau **Select repositories on GitHub**, lalu **Check again**. Ketika blok ada di sisi organisasi GitHub, seperti pemilik yang belum menyetujui aplikasi atau daftar IP allow yang mengecualikan Claude, pesan menunjukkan link **See how to fix** sebagai gantinya. Jika tidak ada tombol, ikuti [Atur akses GitHub](#set-up-github-access), lalu kirim pesan lain untuk mencoba lagi.

499 

500<h3 id="usage-limit-reached">

501 Thread mencapai batas penggunaan

502</h3>

503 

504Ketika thread atau percakapan project mencapai batas lima jam atau mingguan paket Anda, itu terus mencoba sendiri dan berlanjut ketika batas direset. Saat menunggu, thread menunjukkan **Service is busy** dengan "Claude is still retrying and will continue automatically." Anda tidak perlu melakukan apa pun agar pekerjaan berlanjut. Jika Anda lebih suka tidak menggunakan jendela penggunaan berikutnya, klik **Stop** di thread, atau [pause project](#pause-archive-or-delete-a-project) untuk menahan setiap thread. Thread yang dimulai routine tidak menunggu: giliran-nya berhenti dengan kesalahan batas, dan Anda mengirim pesan setelah batas direset.

505 

506[Usage limit errors](/docs/id/errors#youve-hit-your-session-limit) menjelaskan batas dan kapan mereka direset.

507 

508<h3 id="additional-usage-credits-are-required">

509 Kredit penggunaan tambahan diperlukan

510</h3>

511 

512Thread atau percakapan project membuat permintaan yang hanya dicakup paket Anda dengan kredit penggunaan, seperti satu ke model atau ukuran konteks yang tidak disertakan paket Anda, dan kredit penggunaan tidak diaktifkan untuk akun Anda. [Tambahkan kredit penggunaan ke langganan Anda](/docs/id/costs#add-usage-credits-to-your-subscription) mencakup siapa yang dapat mengaktifkannya atau membelinya di setiap paket. Setelah kredit tersedia, kirim pesan lain untuk mencoba lagi.

513 

514<h3 id="context-limit">

515 Pesan lainnya

516</h3>

517 

518Pesan ini menyebutkan penyebab mereka sendiri. Tabel memberikan langkah berikutnya untuk masing-masing.

519 

520| Pesan | Apa yang harus dilakukan |

521| :----------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

522| "Unable to connect to repository" dengan "Claude couldn't reach GitHub to fetch your repository" | Tunggu sebentar, lalu kirim pesan lain untuk mencoba lagi |

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

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

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

526| "Setup script failed" | Klik **Edit setup script** pada kesalahan, perbaiki skrip di environment, lalu kirim pesan lain. [Setup script failed](/docs/id/web-quickstart#setup-script-failed) mencantumkan penyebab umum |

527| "Claude ran out of context on this turn" | Thread mengisi jendela konteksnya. Jika pesan mengatakan thread berlanjut dalam sesi segar, itu berlanjut sendiri; jika tidak, minta Claude dalam percakapan project untuk memulai thread baru untuk pekerjaan yang tersisa |

528| "Reached the turn limit" | Thread mencapai batas pada langkah agentic yang [`CLAUDE_CODE_MAX_TURNS`](/docs/id/env-vars) tetapkan. Kirim pesan lain untuk melanjutkan, atau naikkan atau hapus variabel itu di mana pun variabel itu ditetapkan |

529 

530<h2 id="related-resources">

531 Sumber daya terkait

532</h2>

533 

534* [Gunakan Claude Code di cloud](/docs/id/claude-code-on-the-web): bagaimana sesi cloud di balik setiap thread bekerja, termasuk opsi akses GitHub dan auto-fix pada pull request

535* [Konfigurasi cloud environments](/docs/id/cloud-environments): ubah apa yang dapat dijangkau thread di jaringan, berikan mereka variabel lingkungan dan kredensial API, dan instal alat dengan skrip setup

536* [Otomatisasi pekerjaan dengan routines](/docs/id/routines): jadwal, pemicu, dan manajemen untuk routine, termasuk yang dibuat Claude dari project

537* [Kelola beberapa agen dengan agent view](/docs/id/agent-view): jalankan dan lacak beberapa sesi di mesin Anda sendiri ketika pekerjaan membutuhkan alat atau layanan yang hanya dapat dijangkau mesin Anda

538* [Projects redesigned: from folder to conversation](https://claude.com/blog/projects-redesigned): pengumuman peluncuran, dengan pemikiran di balik membuat project menjadi percakapan dengan Claude

cli-reference.md +72 −72

Details

54Mulai dari v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` menjalankan subperintah `daemon`. Versi sebelumnya memperlakukan `daemon <subcommand>` sebagai prompt untuk sesi interaktif baru, sehingga subperintah tidak pernah berjalan ketika flag datang terlebih dahulu, setup umum ketika `claude` memiliki alias untuk menyertakan flag. Hanya `--dangerously-skip-permissions` atau `--allow-dangerously-skip-permissions` yang terdepan yang merutekan ke `daemon` dengan cara ini; flag terdepan lainnya masih memulai sesi interaktif.54Mulai dari v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` menjalankan subperintah `daemon`. Versi sebelumnya memperlakukan `daemon <subcommand>` sebagai prompt untuk sesi interaktif baru, sehingga subperintah tidak pernah berjalan ketika flag datang terlebih dahulu, setup umum ketika `claude` memiliki alias untuk menyertakan flag. Hanya `--dangerously-skip-permissions` atau `--allow-dangerously-skip-permissions` yang terdepan yang merutekan ke `daemon` dengan cara ini; flag terdepan lainnya masih memulai sesi interaktif.

55 55 

56<h2 id="cli-flags">56<h2 id="cli-flags">

57 Flag CLI57 Bendera CLI

58</h2>58</h2>

59 59 

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

61 61 

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

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

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

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

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

67| `--agents` | Tentukan subagents kustom secara dinamis melalui JSON. Menerima [field yang tercantum untuk subagents yang ditentukan CLI](/docs/id/sub-agents#choose-the-subagent-scope). Claude Code memvalidasi JSON saat startup dan keluar pada nilai yang tidak valid; lihat [`Invalid --agents configuration`](/docs/id/errors#invalid-agents-configuration) untuk pesan dan untuk flag serta variabel lingkungan yang melewati validasi. Validasi memerlukan Claude Code v2.1.242 atau lebih baru | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |67| `--agents` | Tentukan subagen khusus secara dinamis melalui JSON. Menerima [bidang yang tercantum untuk subagen yang ditentukan CLI](/docs/id/sub-agents#choose-the-subagent-scope). Claude Code memvalidasi JSON saat startup dan keluar pada nilai yang tidak valid; lihat [`Konfigurasi --agents tidak valid`](/docs/id/errors#invalid-agents-configuration) untuk pesan dan untuk bendera dan variabel lingkungan yang melewati validasi. Validasi memerlukan Claude Code v2.1.242 atau lebih baru | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

68| `--allow-dangerously-skip-permissions` | Tambahkan `bypassPermissions` ke siklus mode `Shift+Tab` tanpa memulai di dalamnya. Memungkinkan Anda memulai dalam mode berbeda seperti `plan` dan beralih ke `bypassPermissions` nanti. Lihat [mode izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |68| `--allow-dangerously-skip-permissions` | Tambahkan `bypassPermissions` ke siklus mode `Shift+Tab` tanpa memulai di dalamnya. Memungkinkan Anda memulai dalam mode berbeda seperti `plan` dan beralih ke `bypassPermissions` nanti. Lihat [mode izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |

69| `--allowedTools`, `--allowed-tools` | Tools yang dieksekusi tanpa meminta izin. Lihat [sintaks aturan izin](/docs/id/settings-reference#permission-rule-syntax) untuk pencocokan pola. Untuk membatasi tools mana yang tersedia, gunakan `--tools` sebagai gantinya. Jika Anda menamai salah satu [tools pelacakan tugas](/docs/id/tools-reference#task-tool-availability) di sini, Claude Code juga memilih sesi masuk | `"Bash(git log *)" "Bash(git diff *)" "Read"` |69| `--allowedTools`, `--allowed-tools` | Alat yang dijalankan tanpa meminta izin. Lihat [sintaks aturan izin](/docs/id/settings-reference#permission-rule-syntax) untuk pencocokan pola. Untuk membatasi alat mana yang tersedia, gunakan `--tools` sebagai gantinya. Jika Anda menamai salah satu [alat pelacakan tugas](/docs/id/tools-reference#task-tool-availability) di sini, Claude Code juga memilih sesi masuk | `"Bash(git log *)" "Bash(git diff *)" "Read"` |

70| `--append-subagent-system-prompt` | Tambahkan teks kustom ke akhir prompt sistem setiap [subagent](/docs/id/sub-agents), termasuk subagents bersarang, kecuali [subagent yang di-fork](/docs/id/sub-agents#fork-the-current-conversation), yang menggunakan kembali prompt percakapan sendiri. Hanya berlaku dalam mode non-interaktif dengan `-p`. Memerlukan Claude Code v2.1.205 atau lebih baru | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |70| `--append-subagent-system-prompt` | Tambahkan teks khusus ke akhir prompt sistem setiap [subagen](/docs/id/sub-agents), termasuk subagen bersarang, terlepas dari [subagen yang bercabang](/docs/id/sub-agents#fork-the-current-conversation), yang menggunakan kembali prompt percakapan sendiri. Hanya berlaku dalam mode non-interaktif dengan `-p`. Memerlukan Claude Code v2.1.205 atau lebih baru | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |

71| `--append-subagent-system-prompt-file` | Muat teks dari file dan tambahkan ke prompt sistem [subagent](/docs/id/sub-agents). Alternatif untuk `--append-subagent-system-prompt` untuk teks yang terlalu panjang untuk dilewatkan di baris perintah. Kedua flag tidak dapat dikombinasikan. Hanya berlaku dalam mode non-interaktif dengan `-p`. Memerlukan Claude Code v2.1.261 atau lebih baru | `claude -p --append-subagent-system-prompt-file ./subagent-rules.txt "query"` |71| `--append-subagent-system-prompt-file` | Muat teks dari file dan tambahkan ke prompt sistem [subagen](/docs/id/sub-agents). Alternatif untuk `--append-subagent-system-prompt` untuk teks yang terlalu panjang untuk dilewatkan di baris perintah. Kedua bendera tidak dapat digabungkan. Hanya berlaku dalam mode non-interaktif dengan `-p`. Memerlukan Claude Code v2.1.261 atau lebih baru | `claude -p --append-subagent-system-prompt-file ./subagent-rules.txt "query"` |

72| `--append-system-prompt` | Tambahkan teks kustom ke akhir prompt sistem default | `claude --append-system-prompt "Always use TypeScript"` |72| `--append-system-prompt` | Tambahkan teks khusus ke akhir prompt sistem default | `claude --append-system-prompt "Always use TypeScript"` |

73| `--append-system-prompt-file` | Muat teks prompt sistem tambahan dari file dan tambahkan ke prompt default | `claude --append-system-prompt-file ./extra-rules.txt` |73| `--append-system-prompt-file` | Muat teks prompt sistem tambahan dari file dan tambahkan ke prompt default | `claude --append-system-prompt-file ./extra-rules.txt` |

74| `--autocompact <auto\|tokens>` | Atur [jendela auto-compact](/docs/id/model-config#set-the-auto-compact-window) untuk sesi ini tanpa mengubah pengaturan yang disimpan. Menerima nilai yang sama dengan `/autocompact`; bagian itu mencakup bentuk nilai dan apa yang menimpa flag. Memerlukan Claude Code v2.1.221 atau lebih baru | `claude --autocompact 500k` |74| `--autocompact <auto\|tokens>` | Atur [jendela auto-compact](/docs/id/model-config#set-the-auto-compact-window) untuk sesi ini tanpa mengubah pengaturan tersimpan Anda. Menerima nilai yang sama dengan `/autocompact`; bagian itu mencakup bentuk nilai dan apa yang menimpa bendera. Memerlukan Claude Code v2.1.221 atau lebih baru | `claude --autocompact 500k` |

75| `--ax-screen-reader` | Render output yang ramah pembaca layar: teks datar tanpa batas dekoratif atau animasi. Memaksa renderer klasik, jadi pengaturan [`tui`](/docs/id/settings-reference#tui) tidak berpengaruh; [sesi background](/docs/id/agent-view) yang terlampir masih render fullscreen. Mengambil prioritas atas [`CLAUDE_AX_SCREEN_READER`](/docs/id/env-vars) dan pengaturan [`axScreenReader`](/docs/id/settings-reference#axscreenreader). Memerlukan Claude Code v2.1.181 atau lebih baru | `claude --ax-screen-reader` |75| `--ax-screen-reader` | Render output yang ramah pembaca layar: teks datar tanpa batas dekoratif atau animasi. Memaksa renderer klasik, jadi pengaturan [`tui`](/docs/id/settings-reference#tui) tidak berpengaruh; [sesi latar belakang](/docs/id/agent-view) yang terlampir masih render layar penuh. Mengambil alih [`CLAUDE_AX_SCREEN_READER`](/docs/id/env-vars) dan pengaturan [`axScreenReader`](/docs/id/settings-reference#axscreenreader). Memerlukan Claude Code v2.1.181 atau lebih baru | `claude --ax-screen-reader` |

76| `--bare` | Mode minimal: lewati penemuan otomatis hooks, skills, perintah kustom, subagents, plugins, server MCP, auto memory, dan CLAUDE.md sehingga panggilan skrip dimulai lebih cepat. Skills dalam direktori yang Anda lewatkan dengan `--add-dir` masih dimuat. Claude memiliki akses ke tools Bash, baca file, dan edit file. Menetapkan [`CLAUDE_CODE_SIMPLE`](/docs/id/env-vars). Lihat [bare mode](/docs/id/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |76| `--bare` | Mode minimal: lewati penemuan otomatis hooks, skills, perintah khusus, subagen, plugin, server MCP, memori otomatis, dan CLAUDE.md sehingga panggilan skrip dimulai lebih cepat. Skills dalam direktori yang Anda lewatkan dengan `--add-dir` masih dimuat. Claude memiliki akses ke alat Bash, pembacaan file, dan pengeditan file. Menetapkan [`CLAUDE_CODE_SIMPLE`](/docs/id/env-vars). Lihat [mode bare](/docs/id/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |

77| `--betas` | Header beta untuk disertakan dalam permintaan API (hanya pengguna kunci API) | `claude --betas interleaved-thinking` |77| `--betas` | Header beta untuk disertakan dalam permintaan API (hanya pengguna kunci API) | `claude --betas interleaved-thinking` |

78| `--bg`, `--background` | Mulai sesi sebagai [agen background](/docs/id/agent-view) dan kembali segera. Mencetak ID sesi dan perintah manajemen. Gabungkan dengan `--exec` untuk menjalankan perintah shell sebagai pekerjaan background alih-alih sesi Claude, atau dengan `--agent` untuk menjalankan subagent tertentu. Tidak dapat dikombinasikan dengan `-p`/`--print`; lihat [referensi kesalahan](/docs/id/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |78| `--bg`, `--background` | Mulai sesi sebagai [agen latar belakang](/docs/id/agent-view) dan kembali segera. Mencetak ID sesi dan perintah manajemen. Gabungkan dengan `--exec` untuk menjalankan perintah shell sebagai pekerjaan latar belakang yang didukung PTY alih-alih memulai sesi Claude, atau dengan `--agent` untuk menjalankan subagen tertentu. Tidak dapat digabungkan dengan `-p`/`--print`; lihat [referensi kesalahan](/docs/id/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |

79| `--channels` | (Pratinjau penelitian) Server MCP yang notifikasi [channel](/docs/id/channels) Claude harus dengarkan dalam sesi ini. Daftar yang dipisahkan spasi dari entri `plugin:<name>@<marketplace>`. Memerlukan autentikasi Anthropic melalui claude.ai atau kunci API Console | `claude --channels plugin:my-notifier@my-marketplace` |79| `--channels` | (Pratinjau penelitian) Server MCP yang [notifikasi saluran](/docs/id/channels) Claude harus mendengarkan dalam sesi ini. Daftar yang dipisahkan spasi dari entri `plugin:<name>@<marketplace>`. Memerlukan autentikasi Anthropic melalui claude.ai atau kunci API Console | `claude --channels plugin:my-notifier@my-marketplace` |

80| `--chrome` | Aktifkan [integrasi browser Chrome](/docs/id/chrome) untuk otomasi web dan pengujian | `claude --chrome` |80| `--chrome` | Aktifkan [integrasi browser Chrome](/docs/id/chrome) untuk otomasi web dan pengujian | `claude --chrome` |

81| `--cloud` | Dengan deskripsi tugas, buat [sesi web](/docs/id/claude-code-on-the-web) baru di claude.ai. Dengan ID sesi (`session_...` atau `cse_...`) atau URL claude.ai/code, antrekan pesan ke sesi yang ada sebagai gantinya, dengan `-p`. Lihat [kirim pesan lanjutan](/docs/id/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |81| `--cloud` | Dengan deskripsi tugas, buat [sesi cloud](/docs/id/claude-code-on-the-web) baru. Dengan ID sesi (`session_...` atau `cse_...`) atau URL claude.ai/code, antrekan pesan ke sesi yang ada sebagai gantinya, dengan `-p`. Lihat [kirim pesan lanjutan](/docs/id/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |

82| `--continue`, `-c` | Muat percakapan terbaru di direktori saat ini, termasuk [sesi background yang telah selesai](/docs/id/sessions#resume-a-session); membuka sesi background yang selesai memerlukan Claude Code v2.1.257 atau lebih baru. Melewati sesi yang dibuat dengan `claude -p` atau Agent SDK, dan sesi yang prompt pertamanya adalah `/loop`. `claude -p --continue` mencakup sesi `-p`, SDK, dan `/loop`. Mencakup sesi yang menambahkan direktori ini dengan `/add-dir` | `claude --continue` |82| `--continue`, `-c` | Muat percakapan terbaru dalam direktori saat ini, termasuk [sesi latar belakang yang telah selesai](/docs/id/sessions#resume-a-session); membuka sesi latar belakang yang selesai memerlukan Claude Code v2.1.257 atau lebih baru. Melewati sesi yang dibuat dengan `claude -p` atau Agent SDK, dan sesi yang prompt pertamanya adalah `/loop`. `claude -p --continue` mencakup sesi `-p`, SDK, dan `/loop`. Mencakup sesi yang menambahkan direktori ini dengan `/add-dir` | `claude --continue` |

83| `--dangerously-load-development-channels` | Aktifkan [channels](/docs/id/channels-reference#test-during-the-research-preview) yang tidak ada di daftar persetujuan yang disetujui, untuk pengembangan lokal. Menerima entri `plugin:<name>@<marketplace>` dan `server:<name>`. Meminta konfirmasi | `claude --dangerously-load-development-channels server:webhook` |83| `--dangerously-load-development-channels` | Aktifkan [saluran](/docs/id/channels-reference#test-during-the-research-preview) yang tidak ada di daftar persetujuan, untuk pengembangan lokal. Menerima entri `plugin:<name>@<marketplace>` dan `server:<name>`. Meminta konfirmasi | `claude --dangerously-load-development-channels server:webhook` |

84| `--dangerously-skip-permissions` | Lewati prompt izin. Setara dengan `--permission-mode bypassPermissions`. Lihat [mode izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) untuk apa yang dilakukan dan tidak dilakukan oleh ini. Untuk sesi yang dimulai dengan `--bg`, mode [bertahan ketika supervisor memulai ulang sesi](/docs/id/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |84| `--dangerously-skip-permissions` | Lewati prompt izin. Setara dengan `--permission-mode bypassPermissions`. Lihat [mode izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) untuk apa yang dilakukan dan tidak dilakukan oleh ini. Untuk sesi yang dimulai dengan `--bg`, mode [bertahan ketika supervisor memulai ulang sesi](/docs/id/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |

85| `--debug` | Aktifkan mode debug dengan penyaringan kategori opsional, seperti `--debug='mcp,startup'` atau `--debug='!1p'`. Filter mengikat hanya dalam bentuk `=`; filter yang dipisahkan spasi mengaktifkan mode debug tanpa penyaringan | `claude --debug='mcp,startup'` |85| `--debug` | Aktifkan mode debug dengan penyaringan kategori opsional, seperti `--debug='mcp,startup'` atau `--debug='!1p'`. Filter mengikat hanya dalam bentuk `=`; filter yang dipisahkan spasi mengaktifkan mode debug tanpa penyaringan | `claude --debug='mcp,startup'` |

86| `--debug-file <path>` | Tulis log debug ke jalur file tertentu. Secara implisit mengaktifkan mode debug. Mengambil prioritas atas `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |86| `--debug-file <path>` | Tulis log debug ke jalur file tertentu. Secara implisit mengaktifkan mode debug. Mengambil alih `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |

87| `--disable-slash-commands` | Nonaktifkan semua skills dan perintah untuk sesi ini | `claude --disable-slash-commands` |87| `--disable-slash-commands` | Nonaktifkan semua skills dan perintah untuk sesi ini | `claude --disable-slash-commands` |

88| `--disallowedTools`, `--disallowed-tools` | Aturan penolakan. Nama tool yang telanjang menghapus tools yang cocok dari konteks Claude: `"Edit"` menghapus Edit, `"*"` menghapus setiap tool, dan `"mcp__*"` menghapus setiap tool MCP. Aturan yang dibatasi seperti `Bash(rm *)` membiarkan tool tersedia dan menolak hanya panggilan yang cocok [seperti yang ditulis](/docs/id/permissions#bash-rule-limits). Aturan yang menamai [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) tidak dapat menghapusnya saat tool lain tetap ada | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |88| `--disallowedTools`, `--disallowed-tools` | Aturan penolakan. Nama alat telanjang menghapus alat yang cocok dari konteks Claude: `"Edit"` menghapus Edit, `"*"` menghapus setiap alat, dan `"mcp__*"` menghapus setiap alat MCP. Aturan yang dibatasi seperti `Bash(rm *)` membiarkan alat tersedia dan menolak hanya panggilan yang cocok [seperti yang ditulis](/docs/id/permissions#bash-rule-limits). Aturan yang menamai [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) tidak dapat menghapusnya saat alat lain tetap ada | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

89| `--effort` | Atur [tingkat upaya](/docs/id/model-config#adjust-effort-level) untuk sesi saat ini. Opsi: `low`, `medium`, `high`, `xhigh`, `max`, atau `ultracode`. Tingkat yang tersedia tergantung pada model. `ultracode` memulai sesi pada upaya `xhigh` dengan [ultracode](/docs/id/workflows#let-claude-decide-with-ultracode) diaktifkan, dan memerlukan Claude Code v2.1.203 atau lebih baru. Menimpa pengaturan [`modelSettings`](/docs/id/settings-reference#modelsettings) dan [`effortLevel`](/docs/id/settings-reference#effortlevel) untuk sesi ini dan tidak bertahan | `claude --effort high` |89| `--effort` | Atur [tingkat upaya](/docs/id/model-config#adjust-effort-level) untuk sesi saat ini. Opsi: `low`, `medium`, `high`, `xhigh`, `max`, atau `ultracode`. Tingkat yang tersedia tergantung pada model. `ultracode` meminta upaya `xhigh` dengan [ultracode](/docs/id/workflows#let-claude-decide-with-ultracode) diaktifkan, dan memerlukan Claude Code v2.1.203 atau lebih baru. Menimpa pengaturan [`modelSettings`](/docs/id/settings-reference#modelsettings) dan [`effortLevel`](/docs/id/settings-reference#effortlevel) untuk sesi ini dan tidak bertahan | `claude --effort high` |

90| `--enable-auto-mode` | Dihapus di v2.1.111. Auto mode sekarang dalam siklus `Shift+Tab` secara default; gunakan `--permission-mode auto` untuk memulai di dalamnya | `claude --permission-mode auto` |90| `--enable-auto-mode` | Dihapus di v2.1.111. Mode otomatis sekarang dalam siklus `Shift+Tab` secara default; gunakan `--permission-mode auto` untuk memulai di dalamnya | `claude --permission-mode auto` |

91| `--environment <environment-id>` | Buat sesi cloud baru yang berjalan pada [lingkungan self-hosted](/docs/id/self-hosted-environments) dengan ID yang diberikan. ID lingkungan dimulai dengan `ccpool_`. Lihat [perilaku dispatch `--environment`](/docs/id/self-hosted-environments-testing#environment-dispatch-behavior) untuk perilaku dispatch dan kombinasi flag yang ditolaknya. Memerlukan Claude Code v2.1.224 atau lebih baru | `claude -p "Fix the login bug" --environment ccpool_abc123` |91| `--environment <environment-id>` | Buat sesi cloud baru yang berjalan di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments) dengan ID yang diberikan. ID lingkungan dimulai dengan `ccpool_`. Lihat [perilaku pengiriman `--environment`](/docs/id/self-hosted-environments-testing#environment-dispatch-behavior) untuk perilaku pengiriman dan kombinasi bendera yang ditolaknya. Memerlukan Claude Code v2.1.224 atau lebih baru | `claude -p "Fix the login bug" --environment ccpool_abc123` |

92| `--exclude-dynamic-system-prompt-sections` | Pindahkan bagian per-mesin dari prompt sistem (direktori kerja, informasi lingkungan, jalur memori, flag git-repo) ke pesan pengguna pertama. Meningkatkan reuse prompt-cache di berbagai pengguna dan mesin yang menjalankan tugas yang sama. Hanya berlaku dengan prompt sistem default; diabaikan ketika `--system-prompt` atau `--system-prompt-file` diatur. Gunakan dengan `-p` untuk beban kerja multi-pengguna yang ditulis skrip | `claude -p --exclude-dynamic-system-prompt-sections "query"` |92| `--exclude-dynamic-system-prompt-sections` | Pindahkan bagian per-mesin dari prompt sistem (direktori kerja, info lingkungan, jalur memori, bendera git-repo) ke pesan pengguna pertama. Meningkatkan penggunaan kembali cache prompt di berbagai pengguna dan mesin yang menjalankan tugas yang sama. Hanya berlaku dengan prompt sistem default; diabaikan ketika `--system-prompt` atau `--system-prompt-file` diatur. Gunakan dengan `-p` untuk beban kerja multi-pengguna yang ditulis skrip | `claude -p --exclude-dynamic-system-prompt-sections "query"` |

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

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

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

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

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

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

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

100| `--init-only` | Jalankan hook [Setup](/docs/id/hooks#setup) dan `SessionStart`, kemudian keluar tanpa memulai percakapan | `claude --init-only` |100| `--init-only` | Jalankan hook [Setup](/docs/id/hooks#setup) dan `SessionStart`, kemudian keluar tanpa memulai percakapan | `claude --init-only` |

101| `--include-hook-events` | Sertakan peristiwa siklus hidup hook dalam aliran output. Peristiwa hook `SessionStart` dan `Setup` selalu disertakan dan tidak memerlukan flag ini. Beberapa peristiwa hook, seperti `Notification`, `SessionEnd`, `PreCompact`, dan `PostCompact`, tidak pernah menghasilkan peristiwa `hook_started`, bahkan dengan flag ini. Untuk peristiwa tersebut, Claude Code masih memancarkan `hook_progress` saat hook perintah berjalan selama lebih dari satu detik menghasilkan output, dan memancarkan `hook_response` hanya ketika [hook yang berjalan di background](/docs/id/hooks#run-hooks-in-the-background) selesai. Memerlukan `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-hook-events "query"` |101| `--include-hook-events` | Sertakan peristiwa siklus hidup hook dalam aliran output. Peristiwa hook `SessionStart` dan `Setup` selalu disertakan dan tidak memerlukan bendera ini. Beberapa peristiwa hook, seperti `Notification`, `SessionEnd`, `PreCompact`, dan `PostCompact`, tidak pernah menghasilkan peristiwa `hook_started`, bahkan dengan bendera ini. Untuk peristiwa tersebut, Claude Code masih memancarkan `hook_progress` saat hook perintah yang berjalan lebih dari satu detik menghasilkan output, dan memancarkan `hook_response` hanya ketika [hook yang berjalan di latar belakang](/docs/id/hooks#run-hooks-in-the-background) selesai. Memerlukan `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-hook-events "query"` |

102| `--include-partial-messages` | Sertakan peristiwa streaming parsial dalam output. Memerlukan `--print` dan `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-partial-messages "query"` |102| `--include-partial-messages` | Sertakan peristiwa streaming parsial dalam output. Memerlukan `--print` dan `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-partial-messages "query"` |

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

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

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

106| `--max-budget-usd` | Jumlah dolar maksimum untuk dihabiskan pada panggilan API sebelum berhenti (mode cetak saja). Pengeluaran dari [subagents](/docs/id/sub-agents) dihitung terhadap batas. Setelah pengeluaran mencapai batas, menelurkan subagent lain gagal dengan `Budget limit reached`, dan Claude Code menghentikan subagents background yang masih berjalan; perilaku penegakan batas memerlukan Claude Code v2.1.217 atau lebih baru | `claude -p --max-budget-usd 5.00 "query"` |106| `--max-budget-usd` | Jumlah dolar maksimum untuk dihabiskan pada panggilan API sebelum berhenti (mode cetak saja). Pengeluaran dari [subagen](/docs/id/sub-agents) dihitung menuju batas. Setelah pengeluaran mencapai batas, menelurkan subagen lain gagal dengan `Budget limit reached`, dan Claude Code menghentikan subagen latar belakang yang masih berjalan; perilaku penegakan batas memerlukan Claude Code v2.1.217 atau lebih baru | `claude -p --max-budget-usd 5.00 "query"` |

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

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

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

110| `--name`, `-n` | Atur nama tampilan untuk sesi, ditampilkan di `/resume` dan judul terminal. Anda dapat melanjutkan sesi bernama dengan `claude --resume <name>`. Dalam sesi interaktif, jika sesi live lain di mesin ini sudah menggunakan nama, Claude Code menerapkan [varian darinya](/docs/id/sessions#name-your-sessions) sebagai gantinya. <br /><br />[`/rename`](/docs/id/commands) mengubah nama di tengah sesi dan juga menampilkannya di bilah prompt | `claude -n "my-feature-work"` |110| `--name`, `-n` | Atur nama tampilan untuk sesi, ditampilkan di `/resume` dan judul terminal. Anda dapat melanjutkan sesi bernama dengan `claude --resume <name>`. Dalam sesi interaktif, jika sesi langsung lain di mesin ini sudah menggunakan nama, Claude Code menerapkan [varian darinya](/docs/id/sessions#name-your-sessions) sebagai gantinya. <br /><br />[`/rename`](/docs/id/commands) mengubah nama pertengahan sesi dan juga menampilkannya di bilah prompt | `claude -n "my-feature-work"` |

111| `--no-chrome` | Nonaktifkan [integrasi browser Chrome](/docs/id/chrome) untuk sesi ini | `claude --no-chrome` |111| `--no-chrome` | Nonaktifkan [integrasi browser Chrome](/docs/id/chrome) untuk sesi ini | `claude --no-chrome` |

112| `--no-session-persistence` | Nonaktifkan persistensi sesi sehingga sesi tidak disimpan ke disk dan tidak dapat dilanjutkan. Mode cetak saja. Variabel lingkungan [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/id/env-vars) melakukan hal yang sama dalam mode apa pun | `claude -p --no-session-persistence "query"` |112| `--no-session-persistence` | Nonaktifkan persistensi sesi sehingga sesi tidak disimpan ke disk dan tidak dapat dilanjutkan. Mode cetak saja. Variabel lingkungan [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/id/env-vars) melakukan hal yang sama dalam mode apa pun | `claude -p --no-session-persistence "query"` |

113| `--output-format` | Tentukan format output untuk mode cetak (opsi: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |113| `--output-format` | Tentukan format output untuk mode cetak (opsi: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |

114| `--permission-mode` | Mulai dalam [mode izin](/docs/id/permission-modes) yang ditentukan. Menerima `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, atau `manual` sebagai alias untuk `default`. Alias `manual` memilih mode izin yang UI label Manual dan memerlukan Claude Code v2.1.200 atau lebih baru; `claude --help` mencantumnya sebagai pengganti `default`, dan kedua nilai bekerja. Menimpa `defaultMode` dari file pengaturan. Tanpa flag ini atau `--dangerously-skip-permissions`, sesi baru dimulai dalam mode izin yang dijelaskan dalam [mode izin mana sesi dimulai](/docs/id/permission-modes#which-mode-a-session-starts-in). Untuk `-p`, itu adalah `default` saat tidak ada yang dikonfigurasi | `claude --permission-mode plan` |114| `--permission-mode` | Mulai dalam [mode izin](/docs/id/permission-modes) yang ditentukan. Menerima `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, atau `manual` sebagai alias untuk `default`. Alias `manual` memilih mode izin yang UI label Manual dan memerlukan Claude Code v2.1.200 atau lebih baru; `claude --help` mencantumnya sebagai pengganti `default`, dan kedua nilai berfungsi. Menimpa `defaultMode` dari file pengaturan. Tanpa bendera ini atau `--dangerously-skip-permissions`, sesi baru dimulai dalam mode izin yang dijelaskan dalam [mode izin mana sesi dimulai](/docs/id/permission-modes#which-mode-a-session-starts-in). Untuk `-p`, itu adalah `default` ketika tidak ada yang dikonfigurasi | `claude --permission-mode plan` |

115| `--permission-prompt-tool` | Tentukan tool MCP untuk menangani prompt izin dalam mode non-interaktif. Claude Code menunggu server MCP tool tersebut untuk terhubung sebelum menjalankan putaran pertama, hingga startup timeout [`MCP_TIMEOUT`](/docs/id/env-vars), 30 detik secara default. <br /><br />Tool prompt tidak dapat menyetujui tool MCP yang ditandai sebagai [memerlukan interaksi pengguna](/docs/id/mcp#require-approval-for-a-specific-tool): Claude Code mengonversi hasil `allow` untuk satu menjadi penolakan. Pembatasan ini memerlukan Claude Code v2.1.199 atau lebih baru | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |115| `--permission-prompt-tool` | Tentukan alat MCP untuk menangani prompt izin dalam mode non-interaktif. Claude Code menunggu server MCP alat itu untuk terhubung sebelum menjalankan putaran pertama, hingga waktu tunggu startup [`MCP_TIMEOUT`](/docs/id/env-vars), 30 detik secara default. <br /><br />Alat prompt tidak dapat menyetujui alat MCP yang ditandai sebagai [memerlukan interaksi pengguna](/docs/id/mcp#require-approval-for-a-specific-tool): Claude Code mengonversi hasil `allow` untuk satu ke penolakan. Pembatasan ini memerlukan Claude Code v2.1.199 atau lebih baru | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

116| `--permission-prompts` | Atur siapa yang menjawab prompt izin dalam mode cetak. Dengan `host` default, Claude Code mengirimnya ke host Agent SDK atau tool `--permission-prompt-tool`. Lewatkan `none` saat tidak ada yang dapat menjawab, dan Claude Code menolaknya sebagai gantinya. Lihat [Matikan prompt izin dalam run tanpa pengawasan](/docs/id/headless#turn-off-permission-prompts-in-unattended-runs). Memerlukan Claude Code v2.1.259 atau lebih baru | `claude -p --permission-prompts none "query"` |116| `--permission-prompts` | Atur siapa yang menjawab prompt izin dalam mode cetak. Dengan `host` default, Claude Code mengirimnya ke host Agent SDK atau alat `--permission-prompt-tool`. Lewatkan `none` ketika tidak ada yang dapat menjawab, dan Claude Code menolaknya sebagai gantinya. Lihat [Matikan prompt izin dalam jalankan tanpa pengawasan](/docs/id/headless#turn-off-permission-prompts-in-unattended-runs). Memerlukan Claude Code v2.1.259 atau lebih baru | `claude -p --permission-prompts none "query"` |

117| `--plugin-dir` | Muat plugin dari direktori atau arsip `.zip`, atau beberapa dari [folder plugins](/docs/id/plugins#test-your-plugins-locally), untuk sesi ini saja. Setiap flag mengambil satu jalur. Ulangi flag untuk lebih banyak jalur: `--plugin-dir A --plugin-dir B.zip`. Melewatkan folder plugins memerlukan Claude Code v2.1.265 atau lebih baru | `claude --plugin-dir ./my-plugin` |117| `--plugin-dir` | Muat plugin dari direktori atau arsip `.zip`, atau beberapa dari [folder plugin](/docs/id/plugins#test-your-plugins-locally), hanya untuk sesi ini. Setiap bendera mengambil satu jalur. Ulangi bendera untuk lebih banyak jalur: `--plugin-dir A --plugin-dir B.zip`. Melewatkan folder plugin memerlukan Claude Code v2.1.265 atau lebih baru | `claude --plugin-dir ./my-plugin` |

118| `--plugin-url` | Ambil arsip plugin `.zip` dari URL untuk sesi ini saja. Ulangi flag untuk beberapa plugin, atau berikan URL yang dipisahkan spasi dalam satu nilai yang dikutip | `claude --plugin-url https://example.com/plugin.zip` |118| `--plugin-url` | Ambil arsip plugin `.zip` dari URL hanya untuk sesi ini. Ulangi bendera untuk beberapa plugin, atau lewatkan URL yang dipisahkan spasi dalam nilai yang dikutip tunggal | `claude --plugin-url https://example.com/plugin.zip` |

119| `--print`, `-p` | Cetak respons tanpa mode interaktif (lihat [dokumentasi Agent SDK](/docs/id/agent-sdk/overview) untuk detail penggunaan programatik) | `claude -p "query"` |119| `--print`, `-p` | Cetak respons tanpa mode interaktif (lihat [dokumentasi Agent SDK](/docs/id/agent-sdk/overview) untuk detail penggunaan pemrograman) | `claude -p "query"` |

120| `--prompt-suggestions` | Emit pesan `prompt_suggestion` dengan prompt pengguna berikutnya yang diprediksi setelah setiap putaran yang menghasilkan satu; percakapan yang sangat singkat dapat tidak menghasilkan apa pun. Memerlukan `--print`, `--output-format stream-json`, dan `--verbose`. Lihat [Prompt suggestions](/docs/id/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |120| `--prompt-suggestions` | Emit pesan `prompt_suggestion` dengan prompt pengguna berikutnya yang diprediksi setelah setiap putaran yang menghasilkan satu; percakapan yang sangat singkat dapat menghasilkan tidak ada. Memerlukan `--print`, `--output-format stream-json`, dan `--verbose`. Lihat [Saran prompt](/docs/id/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |

121| `--ref <branch>` | Dengan `--environment`, dasarkan checkout sesi baru pada ref bernama alih-alih `HEAD` lokal | `claude -p "Run the smoke test" --environment ccpool_abc123 --ref main` |121| `--ref <branch>` | Dengan `--environment`, dasarkan checkout sesi baru pada ref bernama alih-alih `HEAD` lokal | `claude -p "Run the smoke test" --environment ccpool_abc123 --ref main` |

122| `--remote` | Alias yang sudah usang untuk `--cloud`, termasuk bentuk sesi yang ada | `claude --remote "Fix the login bug"` |122| `--remote` | Alias yang sudah usang untuk `--cloud`, termasuk bentuk sesi yang ada | `claude --remote "Fix the login bug"` |

123| `--remote-control`, `--rc` | Mulai sesi interaktif dengan [Remote Control](/docs/id/remote-control#start-a-remote-control-session) diaktifkan sehingga Anda juga dapat mengontrolnya dari claude.ai atau aplikasi Claude. Secara opsional berikan nama untuk sesi | `claude --remote-control "My Project"` |123| `--remote-control`, `--rc` | Mulai sesi interaktif dengan [Remote Control](/docs/id/remote-control#start-a-remote-control-session) diaktifkan sehingga Anda juga dapat mengontrolnya dari claude.ai atau aplikasi Claude. Secara opsional lewatkan nama untuk sesi | `claude --remote-control "My Project"` |

124| `--remote-control-session-name-prefix <prefix>` | Awalan untuk nama sesi [Remote Control](/docs/id/remote-control) yang dibuat secara otomatis ketika tidak ada nama eksplisit yang diatur. Default ke nama host mesin Anda, menghasilkan nama seperti `myhost-graceful-unicorn`. Atur `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` untuk efek yang sama | `claude remote-control --remote-control-session-name-prefix dev-box` |124| `--remote-control-session-name-prefix <prefix>` | Awalan untuk nama [Remote Control](/docs/id/remote-control) yang dibuat secara otomatis ketika tidak ada nama eksplisit yang diatur. Default ke nama host mesin Anda, menghasilkan nama seperti `myhost-graceful-unicorn`. Atur `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` untuk efek yang sama | `claude remote-control --remote-control-session-name-prefix dev-box` |

125| `--replay-user-messages` | Re-emit pesan pengguna dari stdin kembali ke stdout untuk pengakuan. Memerlukan `--input-format stream-json` dan `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |125| `--replay-user-messages` | Emit kembali pesan pengguna dari stdin ke stdout untuk pengakuan. Memerlukan `--input-format stream-json` dan `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |

126| `--restricted` | Mulai dalam mode terbatas. Gunakan saat harness evaluasi menjalankan `claude` pada mesin bersama dan Claude Code tidak boleh menjalankan perintah atau membaca pengaturan pengguna dan proyek mesin itu. Claude Code menghapus tools bawaan yang menjalankan perintah atau kode, dan WebFetch, kecuali Anda menamai mereka secara individual dalam `--tools`, bukan melalui preset `default`. Ini juga membatasi tools file bawaan ke [direktori kerja](/docs/id/permissions#working-directories), memuat hanya [pengaturan terkelola](/docs/id/managed-settings) dan `--settings`, menolak [`bypassPermissions`](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode), dan [menolak untuk membuat sesi cloud](/docs/id/errors#cloud-sessions-cannot-be-created-from-a-restricted-session). Memerlukan Claude Code v2.1.248 atau lebih baru | `claude --restricted -p "query"` |126| `--restricted` | Mulai dalam mode terbatas. Gunakan ketika harness evaluasi menjalankan `claude` di mesin bersama dan Claude Code tidak boleh menjalankan perintah atau membaca pengaturan pengguna dan proyek mesin itu. Claude Code menghapus alat bawaan yang menjalankan perintah atau kode, dan WebFetch, kecuali Anda menamai mereka secara individual dalam `--tools`, bukan melalui preset `default`. Ini juga membatasi alat file bawaan ke [direktori kerja](/docs/id/permissions#working-directories), memuat hanya [pengaturan terkelola](/docs/id/managed-settings) dan `--settings`, menolak [`bypassPermissions`](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode), dan [menolak untuk membuat sesi cloud](/docs/id/errors#cloud-sessions-cannot-be-created-from-a-restricted-session). Memerlukan Claude Code v2.1.248 atau lebih baru | `claude --restricted -p "query"` |

127| `--resume`, `-r` | Lanjutkan sesi tertentu berdasarkan ID atau nama, atau tampilkan pemilih interaktif untuk memilih sesi. Sebagai pengganti ID, Anda dapat melewatkan jalur absolut ke file [transkrip](/docs/id/sessions#where-transcripts-are-stored) `.jsonl` sesi. Pemilih dan pencarian nama mencakup sesi yang menambahkan direktori ini dengan `/add-dir`. Saat Anda melewatkan ID sesi, Claude Code mencari direktori proyek saat ini dan git worktrees-nya, kemudian setiap proyek lain di mesin ini. Sebelum v2.1.223, pencarian ID hanya mencakup direktori proyek saat ini dan git worktrees-nya. [Sesi background](/docs/id/agent-view) muncul di pemilih yang ditandai dengan `bg` | `claude --resume auth-refactor` |127| `--resume`, `-r` | Lanjutkan sesi tertentu berdasarkan ID atau nama, atau tampilkan pemilih interaktif untuk memilih sesi. Sebagai pengganti ID, Anda dapat melewatkan jalur absolut ke file [transkrip](/docs/id/sessions#where-transcripts-are-stored) `.jsonl` sesi. Pemilih dan pencarian nama mencakup sesi yang menambahkan direktori ini dengan `/add-dir`. Ketika Anda melewatkan ID sesi, Claude Code mencari direktori proyek saat ini dan git worktrees-nya, kemudian setiap proyek lain di mesin ini. Sebelum v2.1.223, pencarian ID hanya mencakup direktori proyek saat ini dan git worktrees-nya. [Sesi latar belakang](/docs/id/agent-view) muncul di pemilih yang ditandai dengan `bg` | `claude --resume auth-refactor` |

128| `--safe-mode` | Mulai dengan semua kustomisasi dinonaktifkan untuk memecahkan masalah konfigurasi yang rusak: CLAUDE.md, skills, plugins, hooks, server MCP, perintah dan agen kustom, gaya output, workflows, tema kustom, pintasan keyboard kustom, perintah status line dan file-suggestion, server LSP, dan auto memory tidak dimuat. Autentikasi, pemilihan model, tools bawaan, dan izin bekerja secara normal, yang berbeda dari [`--bare`](/docs/id/headless#start-faster-with-bare-mode). Kebijakan pengaturan terkelola masih berlaku, termasuk hooks yang dikonfigurasi kebijakan, status line, dan perintah file-suggestion; plugins terkelola, skills terkelola, CLAUDE.md terkelola, dan server MCP yang dikonfigurasi kebijakan tidak. Berguna untuk memeriksa apakah kustomisasi adalah apa yang memicu [fallback model otomatis](/docs/id/model-config#automatic-model-fallback). Menetapkan [`CLAUDE_CODE_SAFE_MODE`](/docs/id/env-vars) | `claude --safe-mode` |128| `--safe-mode` | Mulai dengan semua kustomisasi dinonaktifkan untuk memecahkan masalah konfigurasi yang rusak: CLAUDE.md, skills, plugins, hooks, server MCP, perintah dan agen khusus, gaya output, alur kerja, tema khusus, pintasan keyboard khusus, perintah baris status dan saran file, server LSP, dan memori otomatis tidak dimuat. Autentikasi, pemilihan model, alat bawaan, dan izin bekerja secara normal, yang berbeda dari [`--bare`](/docs/id/headless#start-faster-with-bare-mode). Kebijakan pengaturan terkelola masih berlaku, termasuk hook yang dikonfigurasi kebijakan, baris status, dan perintah saran file; plugin terkelola, skills terkelola, CLAUDE.md terkelola, dan server MCP yang dikonfigurasi kebijakan tidak. Berguna untuk memeriksa apakah kustomisasi adalah apa yang memicu [fallback model otomatis](/docs/id/model-config#automatic-model-fallback). Menetapkan [`CLAUDE_CODE_SAFE_MODE`](/docs/id/env-vars) | `claude --safe-mode` |

129| `--session-id` | Gunakan ID sesi tertentu untuk percakapan (harus UUID yang valid) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |129| `--session-id` | Gunakan ID sesi tertentu untuk percakapan (harus UUID yang valid) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

130| `--setting-sources` | Daftar sumber pengaturan yang dipisahkan koma untuk dimuat (`user`, `project`, `local`) | `claude --setting-sources user,project` |130| `--setting-sources` | Daftar sumber pengaturan yang dipisahkan koma untuk dimuat (`user`, `project`, `local`) | `claude --setting-sources user,project` |

131| `--settings` | Jalur ke file JSON pengaturan atau string JSON inline. Nilai yang Anda atur di sini menimpa kunci yang sama dalam file `settings.json` Anda untuk sesi ini. Kunci yang Anda lewatkan mempertahankan nilai berbasis file mereka. File harus berupa file reguler tidak lebih besar dari 2 MiB. Lihat [precedence pengaturan](/docs/id/settings#settings-precedence) | `claude --settings ./settings.json` |131| `--settings` | Jalur ke file JSON pengaturan atau string JSON inline. Nilai yang Anda atur di sini menimpa kunci yang sama dalam file `settings.json` Anda untuk sesi ini. Kunci yang Anda lewatkan menyimpan nilai berbasis file mereka. File harus berupa file biasa tidak lebih besar dari 2 MiB. Lihat [preseden pengaturan](/docs/id/settings#settings-precedence) | `claude --settings ./settings.json` |

132| `--strict-mcp-config` | Hanya gunakan server MCP dari `--mcp-config`, abaikan semua konfigurasi MCP lainnya. Lihat [Kontrol eksklusif dengan managed-mcp.json](/docs/id/managed-mcp#exclusive-control-with-managed-mcp-json) untuk apa yang dilakukan flag di bawah file MCP terkelola | `claude --strict-mcp-config --mcp-config ./mcp.json` |132| `--strict-mcp-config` | Hanya gunakan server MCP dari `--mcp-config`, abaikan semua konfigurasi MCP lainnya. Lihat [Kontrol eksklusif dengan managed-mcp.json](/docs/id/managed-mcp#exclusive-control-with-managed-mcp-json) untuk apa yang dilakukan bendera di bawah file MCP terkelola | `claude --strict-mcp-config --mcp-config ./mcp.json` |

133| `--system-prompt` | Ganti seluruh prompt sistem dengan teks kustom | `claude --system-prompt "You are a Python expert"` |133| `--system-prompt` | Ganti seluruh prompt sistem dengan teks khusus | `claude --system-prompt "You are a Python expert"` |

134| `--system-prompt-file` | Muat prompt sistem dari file, mengganti prompt default | `claude --system-prompt-file ./custom-prompt.txt` |134| `--system-prompt-file` | Muat prompt sistem dari file, mengganti prompt default | `claude --system-prompt-file ./custom-prompt.txt` |

135| `--system-prompt-snapshot` | Lewatkan `off` untuk membangun kembali prompt sistem pada setiap permintaan alih-alih menggunakan kembali prompt [yang dicatat pada permintaan pertama percakapan](#system-prompt-flags-in-resumed-conversations), misalnya saat Anda mengulangi teks `--append-system-prompt` di seluruh run `--continue`. Memerlukan Claude Code v2.1.257 atau lebih baru | `claude --system-prompt-snapshot off` |135| `--system-prompt-snapshot` | Lewatkan `off` untuk membangun kembali prompt sistem pada setiap permintaan alih-alih menggunakan kembali prompt [yang dicatat pada permintaan pertama percakapan](#system-prompt-flags-in-resumed-conversations), misalnya saat Anda mengulangi teks `--append-system-prompt` di seluruh jalankan `--continue`. Memerlukan Claude Code v2.1.257 atau lebih baru | `claude --system-prompt-snapshot off` |

136| `--teleport` | Lanjutkan [sesi web](/docs/id/claude-code-on-the-web) di terminal lokal Anda | `claude --teleport` |136| `--teleport` | Lanjutkan [sesi cloud](/docs/id/claude-code-on-the-web) di terminal lokal Anda | `claude --teleport` |

137| `--teammate-mode` | Atur bagaimana [rekan tim agen](/docs/id/agent-teams) ditampilkan: `in-process` (default), `auto`, `tmux`, atau `iterm2` (ditambahkan di v2.1.186). Menimpa pengaturan [`teammateMode`](/docs/id/settings-reference#teammatemode) untuk sesi ini. Lihat [Pilih mode tampilan](/docs/id/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` |137| `--teammate-mode` | Atur bagaimana [tim agen](/docs/id/agent-teams) rekan kerja ditampilkan: `in-process` (default), `auto`, `tmux`, atau `iterm2` (ditambahkan di v2.1.186). Menimpa pengaturan [`teammateMode`](/docs/id/settings-reference#teammatemode) untuk sesi ini. Lihat [Pilih mode tampilan](/docs/id/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` |

138| `--tmux` | Buat sesi tmux untuk worktree. Memerlukan `--worktree`. Menggunakan pane native iTerm2 saat tersedia; berikan `--tmux=classic` untuk tmux tradisional | `claude -w feature-auth --tmux` |138| `--tmux` | Buat sesi tmux untuk worktree. Memerlukan `--worktree`. Menggunakan panel asli iTerm2 saat tersedia; lewatkan `--tmux=classic` untuk tmux tradisional | `claude -w feature-auth --tmux` |

139| `--tools` | Batasi tools bawaan mana yang dapat digunakan Claude. Gunakan `""` untuk menonaktifkan semua, `"default"` untuk set default, atau nama tools seperti `"Bash,Edit,Read"`. Pada macOS, Linux, dan WSL, set default menghilangkan `Glob` dan `Grep`, seperti yang dijelaskan di bawah [perilaku tool Glob](/docs/id/tools-reference#glob-tool-behavior). Jika Anda menamai salah satu [tools pelacakan tugas](/docs/id/tools-reference#task-tool-availability) di sini, Claude Code juga memilih sesi masuk. Flag tidak mempengaruhi tools MCP; untuk menolak itu juga, gunakan `--disallowedTools "mcp__*"`. Daftar yang menghilangkan [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) tidak menghapusnya; `""` menghapusnya hanya saat tidak ada tools MCP yang tersisa | `claude --tools "Bash,Edit,Read"` |139| `--tools` | Batasi alat bawaan mana yang dapat digunakan Claude. Gunakan `""` untuk menonaktifkan semua, `"default"` untuk set default, atau nama alat seperti `"Bash,Edit,Read"`. Di macOS, Linux, dan WSL, set default menghilangkan `Glob` dan `Grep`, seperti yang dijelaskan di bawah [perilaku alat Glob](/docs/id/tools-reference#glob-tool-behavior). Jika Anda menamai salah satu [alat pelacakan tugas](/docs/id/tools-reference#task-tool-availability) di sini, Claude Code juga memilih sesi masuk. Bendera tidak mempengaruhi alat MCP; untuk menolak mereka juga, gunakan `--disallowedTools "mcp__*"`. Daftar yang menghilangkan [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) tidak menghapusnya; `""` menghapusnya hanya ketika tidak ada alat MCP yang tersisa | `claude --tools "Bash,Edit,Read"` |

140| `--verbose` | Aktifkan logging verbose, menampilkan output putaran penuh. Menimpa pengaturan [`viewMode`](/docs/id/settings-reference#viewmode) untuk sesi ini | `claude --verbose` |140| `--verbose` | Aktifkan logging verbose, menampilkan output putaran penuh. Menimpa pengaturan [`viewMode`](/docs/id/settings-reference#viewmode) untuk sesi ini | `claude --verbose` |

141| `--version`, `-v` | Keluarkan nomor versi | `claude -v` |141| `--version`, `-v` | Output nomor versi | `claude -v` |

142| `--worktree`, `-w` | Mulai Claude dalam [git worktree](/docs/id/worktrees) terisolasi di `<repo>/.claude/worktrees/<name>`. Jika Anda tidak memberikan nama, Claude Code menghasilkan satu. Lewatkan `#<number>`, URL pull request GitHub, atau URL merge request GitLab untuk [mengambil PR atau MR itu dari `origin` dan membuat cabang worktree darinya](/docs/id/worktrees#branch-from-a-pull-request). Membuat cabang dari merge request GitLab memerlukan Claude Code v2.1.233 atau lebih baru | `claude -w feature-auth` |142| `--worktree`, `-w` | Mulai Claude dalam [git worktree](/docs/id/worktrees) terisolasi di `<repo>/.claude/worktrees/<name>`. Jika Anda tidak memberikan nama, Claude Code menghasilkan satu. Lewatkan `#<number>`, URL permintaan tarik GitHub, atau URL permintaan penggabungan GitLab untuk [mengambil PR atau MR itu dari `origin` dan cabang worktree darinya](/docs/id/worktrees#branch-from-a-pull-request). Pencabangan dari permintaan penggabungan GitLab memerlukan Claude Code v2.1.233 atau lebih baru | `claude -w feature-auth` |

143 143 

144<h3 id="system-prompt-flags">144<h3 id="system-prompt-flags">

145 Flag prompt sistem145 Bendera prompt sistem

146</h3>146</h3>

147 147 

148Claude Code menyediakan lima flag untuk menyesuaikan prompt sistem. Empat flag menetapkan teksnya, dan dengan `--system-prompt-snapshot` Anda mengontrol apakah percakapan menyimpan teks yang dimulainya. Kelima flag bekerja dalam mode interaktif dan non-interaktif.148Claude Code menyediakan lima bendera untuk menyesuaikan prompt sistem. Empat menetapkan teksnya, dan dengan `--system-prompt-snapshot` Anda mengontrol apakah percakapan menyimpan teks yang dimulainya. Kelima bendera bekerja dalam mode interaktif dan non-interaktif.

149 149 

150| Flag | Perilaku | Contoh |150| Bendera | Perilaku | Contoh |

151| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------- |151| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------- |

152| `--system-prompt` | Mengganti seluruh prompt default | `claude --system-prompt "You are a Python expert"` |152| `--system-prompt` | Mengganti seluruh prompt default | `claude --system-prompt "You are a Python expert"` |

153| `--system-prompt-file` | Mengganti dengan konten file | `claude --system-prompt-file ./prompts/review.txt` |153| `--system-prompt-file` | Mengganti dengan konten file | `claude --system-prompt-file ./prompts/review.txt` |

154| `--append-system-prompt` | Menambahkan ke prompt default | `claude --append-system-prompt "Always use TypeScript"` |154| `--append-system-prompt` | Menambahkan ke prompt default | `claude --append-system-prompt "Always use TypeScript"` |

155| `--append-system-prompt-file` | Menambahkan konten file ke prompt default | `claude --append-system-prompt-file ./style-rules.txt` |155| `--append-system-prompt-file` | Menambahkan konten file ke prompt default | `claude --append-system-prompt-file ./style-rules.txt` |

156| `--system-prompt-snapshot` | Dengan `off`, membangun kembali prompt pada setiap permintaan. Dengan `on`, default, menggunakan kembali prompt yang dicatat di mana [recording berlaku](#system-prompt-flags-in-resumed-conversations) | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |156| `--system-prompt-snapshot` | Dengan `off`, membangun kembali prompt pada setiap permintaan. Dengan `on`, default, menggunakan kembali prompt yang dicatat di mana [pencatatan berlaku](#system-prompt-flags-in-resumed-conversations) | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |

157 157 

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

159 159 

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

161 161 

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

163 163 

164<h4 id="system-prompt-flags-in-resumed-conversations">164<h4 id="system-prompt-flags-in-resumed-conversations">

165 Flag prompt sistem dalam percakapan yang dilanjutkan165 Bendera prompt sistem dalam percakapan yang dilanjutkan

166</h4>166</h4>

167 167 

168Secara default, Claude Code membangun prompt sistem sekali, pada permintaan pertama percakapan, dengan teks dari flag prompt sistem apa pun yang diterapkan, dan mencatatnya dalam sesi. Hingga percakapan dikompak, setiap permintaan nanti menggunakan prompt yang dicatat itu, termasuk setelah Anda kembali ke percakapan dengan `--resume` atau `--continue`. Jika Anda melewatkan teks flag prompt sistem yang berbeda, atau tidak ada, pada peluncuran nanti, itu berlaku setelah percakapan dikompak atau saat Anda memulai percakapan baru.168Secara default, Claude Code membangun prompt sistem sekali, pada permintaan pertama percakapan, dengan teks dari bendera prompt sistem apa pun yang diterapkan, dan mencatatnya dalam sesi. Sampai percakapan dikompak, setiap permintaan nanti menggunakan prompt yang dicatat, termasuk setelah Anda kembali ke percakapan dengan `--resume` atau `--continue`. Jika Anda melewatkan teks bendera prompt sistem yang berbeda, atau tidak ada, pada peluncuran nanti, itu berlaku setelah percakapan dikompak atau ketika Anda memulai percakapan baru.

169 169 

170Jika Anda memulai Claude Code dalam [bare mode](/docs/id/headless#start-faster-with-bare-mode), dengan melewatkan `--bare` atau menetapkan `CLAUDE_CODE_SIMPLE=1`, recording tetap mati kecuali Anda melewatkan `--system-prompt-snapshot on`. Sebelum v2.1.268, sesi yang tidak [mengambil feature flags](/docs/id/env-vars#features-that-need-feature-flag-fetching), termasuk sesi di Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry, membangun kembali prompt pada setiap permintaan dan `--system-prompt-snapshot` tidak berpengaruh.170Di luar [sesi cloud](/docs/id/cloud-environments), jika Anda memulai Claude Code dalam [mode bare](/docs/id/headless#start-faster-with-bare-mode) dengan melewatkan `--bare` atau menetapkan `CLAUDE_CODE_SIMPLE=1`, pencatatan tetap mati kecuali Anda melewatkan `--system-prompt-snapshot on`. Sebelum v2.1.268, sesi yang tidak [mengambil bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), termasuk sesi di Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry, membangun kembali prompt pada setiap permintaan dan `--system-prompt-snapshot` tidak berpengaruh.

171 171 

172Untuk membangun kembali prompt pada setiap permintaan sebagai gantinya, misalnya saat Anda mengulangi kata-katanya di seluruh run `--continue`, lewatkan `--system-prompt-snapshot off`. Sebelum v2.1.265, melewatkan salah satu flag prompt sistem juga mematikan recording kecuali Anda melewatkan `--system-prompt-snapshot on`.172Untuk membangun kembali prompt pada setiap permintaan sebagai gantinya, misalnya saat Anda mengulangi kata-katanya di seluruh jalankan `--continue`, lewatkan `--system-prompt-snapshot off`. Sebelum v2.1.265, melewatkan salah satu bendera prompt sistem juga mematikan pencatatan kecuali Anda melewatkan `--system-prompt-snapshot on`.

173 173 

174<h2 id="see-also">174<h2 id="see-also">

175 Lihat juga175 Lihat juga

Details

7> Konfigurasi lingkungan cloud untuk sesi Claude Code cloud: tingkat akses jaringan, variabel lingkungan, skrip setup, dan caching lingkungan.7> Konfigurasi lingkungan cloud untuk sesi Claude Code cloud: tingkat akses jaringan, variabel lingkungan, skrip setup, dan caching lingkungan.

8 8 

9<Note>9<Note>

10 Lingkungan cloud memerlukan [Claude Code di web](/docs/id/claude-code-on-the-web), yang sedang dalam penelitian preview untuk pengguna Pro, Max, dan Team, serta untuk pengguna Enterprise dengan [kursi premium atau kursi Chat + Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).10 Lingkungan cloud berlaku untuk [sesi cloud](/docs/id/claude-code-on-the-web), yang sedang dalam penelitian preview untuk pengguna Pro, Max, dan Team, serta untuk pengguna Enterprise dengan [kursi premium atau kursi Chat + Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).

11</Note>11</Note>

12 12 

13Setiap [sesi cloud](/docs/id/claude-code-on-the-web) berjalan di lingkungan cloud. Anda dapat mengonfigurasi lingkungan untuk mengizinkan atau menolak [akses jaringan](#access-levels), [menetapkan variabel lingkungan](#set-environment-variables) untuk sesi, pada paket Pro dan Max menyimpan [kredensial API](#add-api-credentials) yang digunakan sesi tanpa melihatnya, dan menjalankan [skrip setup](#setup-scripts) sebelum Claude mulai bekerja.13Setiap [sesi cloud](/docs/id/claude-code-on-the-web) berjalan di lingkungan cloud. Anda dapat mengonfigurasi lingkungan untuk mengizinkan atau menolak [akses jaringan](#access-levels), [menetapkan variabel lingkungan](#set-environment-variables) untuk sesi, pada paket Pro dan Max menyimpan [kredensial API](#add-api-credentials) yang digunakan sesi tanpa melihatnya, dan menjalankan [skrip setup](#setup-scripts) sebelum Claude mulai bekerja.

14 14 

15Lingkungan yang sama berlaku di mana pun Anda memulai sesi cloud: [Claude Code di web](/docs/id/claude-code-on-the-web), terminal dengan [`claude --cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-web), [Claude Tag](https://claude.com/docs/claude-tag/overview), [routines](/docs/id/routines), [aplikasi mobile Claude](/docs/id/mobile), dan [aplikasi Desktop](/docs/id/desktop). Setiap permukaan ini juga dapat mengarahkan ke [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments). [Ketersediaan dan batasan](/docs/id/self-hosted-environments#availability-and-limitations) mencakup apa yang Claude belum dapat gunakan ketika sesi Claude Tag berjalan di dalamnya.15Lingkungan yang sama berlaku di mana pun Anda memulai sesi cloud: [aplikasi Desktop](/docs/id/desktop), [aplikasi mobile Claude](/docs/id/mobile), browser Anda di [claude.ai/code](https://claude.ai/code), terminal dengan [`claude --cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-cloud), [routines](/docs/id/routines), dan [Claude Tag](https://claude.com/docs/claude-tag/overview). Setiap permukaan ini juga dapat mengarahkan ke [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments). [Ketersediaan dan batasan](/docs/id/self-hosted-environments#availability-and-limitations) mencakup apa yang Claude belum dapat gunakan ketika sesi Claude Tag berjalan di dalamnya.

16 16 

17<Info>17<Info>

18 Sesi [Remote Control](/docs/id/remote-control) menghubungkan antarmuka web dan mobile ke sesi di mesin Anda sendiri, yang menggunakan jaringan dan file mesin Anda, bukan lingkungan cloud. Sesi saluran Claude Tag menggunakan lingkungan tingkat organisasi saja, baik [lingkungan bersama](#organization-shared-environments) atau [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments).18 Sesi [Remote Control](/docs/id/remote-control) menghubungkan antarmuka web dan mobile ke sesi di mesin Anda sendiri, yang menggunakan jaringan dan file mesin Anda, bukan lingkungan cloud. Sesi saluran Claude Tag menggunakan lingkungan tingkat organisasi saja, baik [lingkungan bersama](#organization-shared-environments) atau [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments).


35 35 

36Dengan hanya **Default** yang tersedia, setiap sesi berjalan di dalamnya. Ketika Anda memiliki lebih dari satu lingkungan, sesi memilih satu per permukaan:36Dengan hanya **Default** yang tersedia, setiap sesi berjalan di dalamnya. Ketika Anda memiliki lebih dari satu lingkungan, sesi memilih satu per permukaan:

37 37 

38* Di web, aplikasi Desktop, dan aplikasi mobile, sesi menggunakan lingkungan yang ditampilkan di [pemilih](#configure-your-environment). [Default organisasi](#organization-shared-environments) yang ditetapkan Owner mengisi pilihan ketika Anda belum memilih satu.38* Di aplikasi Desktop, aplikasi mobile, dan di claude.ai/code, sesi yang Anda mulai sendiri menggunakan lingkungan yang ditampilkan di [pemilih](#configure-your-environment). [Default organisasi](#organization-shared-environments) yang ditetapkan Owner mengisi pilihan ketika Anda belum memilih satu. Thread dalam [proyek](/docs/id/claude-projects#project-settings-reference) menggunakan lingkungan yang ditetapkan dalam pengaturan proyek sebagai gantinya.

39* Dari CLI, Claude Code menggunakan pilihan [`/remote-env`](#select-an-environment-from-the-cli) Anda, atau kembali ke lingkungan yang di-host Anthropic ketika daftar Anda memiliki satu, dan sebaliknya ke lingkungan pertama dalam daftar Anda yang bukan lingkungan bridge, entri [Remote Control](/docs/id/remote-control) mendaftarkan untuk mewakili mesin Anda sendiri daripada lingkungan cloud. Untuk [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments), melewatkan `--environment <environment-id>` dengan ID `ccpool_` miliknya [ketika Anda mengirim sesi](/docs/id/self-hosted-environments-testing#run-the-test-loop) menimpa pilihan `/remote-env` dan fallback untuk invokasi itu. Claude Code menolak ID `env_` yang di-host Anthropic yang dilewatkan ke flag, jadi gunakan `/remote-env` untuk menargetkan yang tersebut. Flag memerlukan Claude Code v2.1.224 atau lebih baru.39* Dari CLI, Claude Code menggunakan pilihan [`/remote-env`](#select-an-environment-from-the-cli) Anda, atau kembali ke lingkungan yang di-host Anthropic ketika daftar Anda memiliki satu, dan sebaliknya ke lingkungan pertama dalam daftar Anda yang bukan lingkungan bridge, entri [Remote Control](/docs/id/remote-control) mendaftarkan untuk mewakili mesin Anda sendiri daripada lingkungan cloud. Untuk [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments), melewatkan `--environment <environment-id>` dengan ID `ccpool_` miliknya [ketika Anda mengirim sesi](/docs/id/self-hosted-environments-testing#run-the-test-loop) menimpa pilihan `/remote-env` dan fallback untuk invokasi itu. Claude Code menolak ID `env_` yang di-host Anthropic yang dilewatkan ke flag, jadi gunakan `/remote-env` untuk menargetkan yang tersebut. Flag memerlukan Claude Code v2.1.224 atau lebih baru.

40 40 

41Konfigurasi lingkungan ketika default tidak cukup: ketika Claude perlu menjangkau domain di luar [daftar allowlist default](#default-allowed-domains), memerlukan variabel lingkungan yang ditetapkan untuk sesinya, atau memerlukan dependensi yang diinstal sebelum mulai bekerja.41Konfigurasi lingkungan ketika default tidak cukup: ketika Claude perlu menjangkau domain di luar [daftar allowlist default](#default-allowed-domains), memerlukan variabel lingkungan yang ditetapkan untuk sesinya, atau memerlukan dependensi yang diinstal sebelum mulai bekerja.


80 80 

81Setiap sesi menyalin nilai lingkungan sekali, saat startup, ke dalam variabel lingkungan biasa yang dapat dibaca oleh perintah apa pun yang dijalankan Claude. Karena sesi yang berjalan tidak membaca ulang konfigurasi, mengedit atau menambahkan variabel mempengaruhi sesi yang Anda mulai setelahnya; sesi yang sudah berjalan menyimpan nilai yang mereka mulai.81Setiap sesi menyalin nilai lingkungan sekali, saat startup, ke dalam variabel lingkungan biasa yang dapat dibaca oleh perintah apa pun yang dijalankan Claude. Karena sesi yang berjalan tidak membaca ulang konfigurasi, mengedit atau menambahkan variabel mempengaruhi sesi yang Anda mulai setelahnya; sesi yang sudah berjalan menyimpan nilai yang mereka mulai.

82 82 

83Claude Code di web juga menetapkan beberapa variabel sendiri ketika memulai sesi. Untuk [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/id/claude-code-on-the-web#manage-context), nilai yang ditetapkan Claude Code di web menimpa nilai yang Anda tambahkan di sini, jadi menambahkan kunci itu di sini tidak berpengaruh.83Sesi cloud juga menetapkan beberapa variabel sendiri ketika memulai. Untuk [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/id/claude-code-on-the-web#manage-context), nilai yang ditetapkan sesi menimpa nilai yang Anda tambahkan di sini, jadi menambahkan kunci itu di sini tidak berpengaruh.

84 84 

85Siapa pun yang menggunakan lingkungan dapat membaca nilai. Pada paket Pro dan Max, gunakan [kredensial API](#add-api-credentials) sebagai gantinya untuk kunci yang dapat dilampirkan proxy agen. [Permintaan yang tidak pernah mendapatkan kredensial](#requests-that-never-get-the-credential) tercantum di sana.85Siapa pun yang menggunakan lingkungan dapat membaca nilai. Pada paket Pro dan Max, gunakan [kredensial API](#add-api-credentials) sebagai gantinya untuk kunci yang dapat dilampirkan proxy agen. [Permintaan yang tidak pernah mendapatkan kredensial](#requests-that-never-get-the-credential) tercantum di sana.

86 86 


154 Pilih lingkungan dari CLI154 Pilih lingkungan dari CLI

155</h3>155</h3>

156 156 

157Jalankan `/remote-env` di terminal Anda untuk memilih lingkungan default untuk sesi cloud yang Anda buat dari CLI, seperti [`claude --cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-web). Perintah membuka pemilih lingkungan yang ada dan menyimpan pilihan Anda ke kunci `remote.defaultEnvironmentId` di [pengaturan pengguna](/docs/id/settings#where-settings-live) Anda, sehingga berlaku di setiap proyek di mesin Anda sampai Anda mengubahnya, kecuali kunci yang sama ditetapkan di [lapisan pengaturan](/docs/id/settings#settings-precedence) dengan prioritas lebih tinggi, seperti pengaturan proyek repo.157Jalankan `/remote-env` di terminal Anda untuk memilih lingkungan default untuk sesi cloud yang Anda buat dari CLI, seperti [`claude --cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-cloud). Perintah membuka pemilih lingkungan yang ada dan menyimpan pilihan Anda ke kunci `remote.defaultEnvironmentId` di [pengaturan pengguna](/docs/id/settings#where-settings-live) Anda, sehingga berlaku di setiap proyek di mesin Anda sampai Anda mengubahnya, kecuali kunci yang sama ditetapkan di [lapisan pengaturan](/docs/id/settings#settings-precedence) dengan prioritas lebih tinggi, seperti pengaturan proyek repo.

158 158 

159ID [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments), yang memiliki bentuk `ccpool_...`, mengikuti aturan sumber yang lebih ketat. Lihat [`remote.defaultEnvironmentId`](/docs/id/settings-reference#remote-defaultenvironmentid) untuk lapisan pengaturan yang dihormati Claude Code darinya.159ID [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments), yang memiliki bentuk `ccpool_...`, mengikuti aturan sumber yang lebih ketat. Lihat [`remote.defaultEnvironmentId`](/docs/id/settings-reference#remote-defaultenvironmentid) untuk lapisan pengaturan yang dihormati Claude Code darinya.

160 160 


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

202 202 

203<Note>203<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. Anda mengonfigurasi konektor per sesi atau per routine; hapus yang tidak Anda butuhkan untuk membatasi alat mana yang dapat dijangkau Claude. 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).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.

205</Note>205</Note>

206 206 

207<h3 id="access-levels">207<h3 id="access-levels">


243* **Sesi di lingkungan ini membuka artifact publik organisasi lain**: Claude Code mengambil yang dari host secara langsung, jadi tambahkan ke daftar ini.243* **Sesi di lingkungan ini membuka artifact publik organisasi lain**: Claude Code mengambil yang dari host secara langsung, jadi tambahkan ke daftar ini.

244* **Anda mengonfigurasi CLI lokal atau runner yang di-host sendiri**: pertahankan host dalam allowlist itu. Lihat [persyaratan akses jaringan](/docs/id/network-config#network-access-requirements) dan [persyaratan jaringan](/docs/id/self-hosted-environments-deploy#network-requirements) yang di-host sendiri.244* **Anda mengonfigurasi CLI lokal atau runner yang di-host sendiri**: pertahankan host dalam allowlist itu. Lihat [persyaratan akses jaringan](/docs/id/network-config#network-access-requirements) dan [persyaratan jaringan](/docs/id/self-hosted-environments-deploy#network-requirements) yang di-host sendiri.

245 245 

246Setiap lingkungan memiliki daftar domain yang diizinkan sendiri; tidak ada allowlist tingkat organisasi yang dapat didorong admin ke lingkungan setiap anggota. [Pengaturan yang dikelola server](/docs/id/server-managed-settings) masih berlaku di dalam sesi cloud, tetapi tidak ada yang menambahkan domain ke allowlist jaringan lingkungan.246Setiap lingkungan memiliki daftar domain yang diizinkan sendiri; tidak ada allowlist tingkat organisasi yang dapat didorong admin ke lingkungan setiap anggota. [Pengaturan yang dikelola server](/docs/id/server-managed-settings) masih berlaku di dalam sesi cloud, tetapi tidak ada yang menambahkan domain ke allowlist jaringan lingkungan. Untuk memberikan tim satu daftar standar, Owner dapat membuat [lingkungan bersama organisasi](#organization-shared-environments) dengan akses jaringan **Custom** dan daftar itu.

247 247 

248<h3 id="github-proxy">248<h3 id="github-proxy">

249 Proxy GitHub249 Proxy GitHub


284 Apa yang terbawa dari setup Anda284 Apa yang terbawa dari setup Anda

285</h3>285</h3>

286 286 

287Sesi cloud dimulai dari klon segar repositori Anda. Apa pun yang Anda komitkan ke repo tersedia. Apa pun yang Anda instal atau konfigurasi hanya di mesin Anda sendiri tidak tersedia di sesi. Kebijakan organisasi Anda tiba secara terpisah melalui [pengaturan yang dikelola server](/docs/id/server-managed-settings).287Cloud sessions start from a fresh clone of your repository. Apa pun yang Anda komitkan ke repo tersedia. Apa pun yang Anda instal atau konfigurasi hanya di mesin Anda sendiri tidak tersedia di sesi. Kebijakan organisasi Anda tiba secara terpisah melalui [pengaturan yang dikelola server](/docs/id/server-managed-settings).

288 288 

289| | Tersedia di sesi cloud | Mengapa |289| | Tersedia di sesi cloud | Mengapa |

290| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |290| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

291| `CLAUDE.md` repo Anda | Ya | Bagian dari klon |291| `CLAUDE.md` repo Anda | Ya | Bagian dari klon |

292| Hook `.claude/settings.json` repo Anda | Ya | Bagian dari klon |292| Hook `.claude/settings.json` repo Anda dan aturan izin | Ya, dalam sesi dengan satu repositori | Bagian dari klon. Sesi dengan beberapa repositori, termasuk thread [proyek](/docs/id/claude-projects#what-threads-pick-up-from-your-repositories), dimulai di atas klon dan tidak membacanya |

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

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

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

296| Plugin yang dideklarasikan di `.claude/settings.json` | Ya | Diinstal saat startup sesi dari [marketplace](/docs/id/plugin-marketplaces) yang Anda deklarasikan. Memerlukan akses jaringan untuk menjangkau sumber marketplace |296| Plugin yang dideklarasikan di `.claude/settings.json` | Ya | Diinstal saat startup sesi dari [marketplace](/docs/id/plugin-marketplaces) yang Anda deklarasikan. Memerlukan akses jaringan untuk menjangkau sumber marketplace |


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

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

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

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

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

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

304| Auth interaktif seperti AWS SSO | Tidak | Tidak didukung. SSO memerlukan login berbasis browser yang tidak dapat berjalan di sesi cloud |304| Auth interaktif seperti AWS SSO | Tidak | Tidak didukung. SSO memerlukan login berbasis browser yang tidak dapat berjalan di sesi cloud |


329 329 

330¹ Bun diinstal tetapi memiliki [masalah kompatibilitas proxy](#install-dependencies-with-a-sessionstart-hook) yang diketahui untuk pengambilan paket.330¹ Bun diinstal tetapi memiliki [masalah kompatibilitas proxy](#install-dependencies-with-a-sessionstart-hook) yang diketahui untuk pengambilan paket.

331 331 

332Untuk mendapatkan versi sebagian besar alat dalam tabel ini, minta Claude menjalankan `check-tools` di sesi cloud. Ini adalah perintah shell yang diinstal di VM sesi, bukan perintah slash; Anda meminta Claude karena [Claude menjalankan semua perintah VM untuk Anda](#run-tests-start-services-and-add-packages). Untuk alat yang tidak dilaporkannya, seperti Ruby, PHP, bun, PostgreSQL, atau Redis, minta Claude menjalankan perintah versi alat itu sendiri, misalnya `psql --version`.332Untuk mendapatkan versi sebagian besar alat dalam tabel ini, minta Claude menjalankan `check-tools` di sesi cloud. Ini adalah perintah shell yang diinstal di VM sesi, bukan perintah yang Anda ketik dengan `/`; Anda meminta Claude karena [Claude menjalankan semua perintah VM untuk Anda](#run-tests-start-services-and-add-packages). Untuk alat yang tidak dilaporkannya, seperti Ruby, PHP, bun, PostgreSQL, atau Redis, minta Claude menjalankan perintah versi alat itu sendiri, misalnya `psql --version`.

333 333 

334Versi Node.js diinstal di `/opt/node20`, `/opt/node21`, dan `/opt/node22`, dengan 22 di `PATH` secara default. Untuk bekerja dengan versi berbeda, minta Claude menambahkan direktori `bin` versi itu, seperti `/opt/node20/bin`, ke `PATH`.334Versi Node.js diinstal di `/opt/node20`, `/opt/node21`, dan `/opt/node22`, dengan 22 di `PATH` secara default. Untuk bekerja dengan versi berbeda, minta Claude menambahkan direktori `bin` versi itu, seperti `/opt/node20/bin`, ke `PATH`.

335 335 


358 358 

359Setiap sesi cloud memiliki URL transkrip di claude.ai, dan sesi dapat membaca ID-nya sendiri dari variabel lingkungan `CLAUDE_CODE_REMOTE_SESSION_ID`. Gunakan ini untuk menempatkan tautan yang dapat dilacak di badan PR, pesan komitmen, posting Slack, atau laporan yang dihasilkan sehingga reviewer dapat membuka jalankan yang menghasilkannya.359Setiap sesi cloud memiliki URL transkrip di claude.ai, dan sesi dapat membaca ID-nya sendiri dari variabel lingkungan `CLAUDE_CODE_REMOTE_SESSION_ID`. Gunakan ini untuk menempatkan tautan yang dapat dilacak di badan PR, pesan komitmen, posting Slack, atau laporan yang dihasilkan sehingga reviewer dapat membuka jalankan yang menghasilkannya.

360 360 

361Komitmen yang dibuat Claude di sesi cloud mencakup trailer git `Claude-Session: <url>`, dan badan PR mencakup URL sesi di barisnya sendiri. Ini memerlukan v2.1.179 atau lebih baru. Untuk menghilangkan trailer dan tautan badan PR, atur [`attribution.sessionUrl`](/docs/id/settings-reference#attribution-sessionurl) ke `false`. Pengaturan memerlukan v2.1.182 atau lebih baru.361Komitmen yang dibuat Claude di sesi cloud mencakup trailer git `Claude-Session: <url>`, dan badan PR mencakup URL sesi di barisnya sendiri. Untuk menghilangkan trailer dan tautan badan PR, atur [`attribution.sessionUrl`](/docs/id/settings-reference#attribution-sessionurl) ke `false`.

362 362 

363Untuk menyertakan tautan sesi dalam sesuatu selain komitmen atau PR, seperti pesan Slack yang diposting Claude atau file laporan yang ditulisnya, minta Claude menjalankan perintah berikut dan gunakan outputnya. Perintah mengonversi awalan `cse_` dalam nilai variabel lingkungan ke awalan `session_` yang diharapkan URL transkrip:363Untuk menyertakan tautan sesi dalam sesuatu selain komitmen atau PR, seperti pesan Slack yang diposting Claude atau file laporan yang ditulisnya, minta Claude menjalankan perintah berikut dan gunakan outputnya. Perintah mengonversi awalan `cse_` dalam nilai variabel lingkungan ke awalan `session_` yang diharapkan URL transkrip:

364 364 


524 524 

525Hook SessionStart berperilaku sama di cloud seperti secara lokal, dengan peringatan ini:525Hook SessionStart berperilaku sama di cloud seperti secara lokal, dengan peringatan ini:

526 526 

527* **Tidak ada scoping khusus cloud**: hook berjalan di sesi lokal dan cloud. Untuk melewati eksekusi lokal, periksa variabel lingkungan `CLAUDE_CODE_REMOTE` seperti yang ditunjukkan di atas.527* **Satu repositori per sesi**: sesi dengan beberapa repositori tidak memuat hook dari `.claude/settings.json` repositori apa pun, jadi hook SessionStart yang Anda tentukan di sana tidak berjalan. Instal dependensi untuk sesi tersebut dengan [skrip setup](#setup-scripts) sebagai gantinya.

528* **Tidak ada scoping khusus cloud**: hook berjalan di sesi lokal dan cloud. Untuk melewati eksekusi lokal, keluar lebih awal kecuali variabel lingkungan `CLAUDE_CODE_REMOTE` adalah `true`, cara yang ditunjukkan oleh [skrip instalasi dependensi](#install-dependencies-with-a-sessionstart-hook).

528* **Memerlukan akses jaringan**: perintah instalasi perlu menjangkau registri paket. Jika lingkungan Anda menggunakan akses jaringan **None**, hook ini gagal. [Allowlist default](#default-allowed-domains) di bawah **Trusted** mencakup npm, PyPI, RubyGems, dan crates.io.529* **Memerlukan akses jaringan**: perintah instalasi perlu menjangkau registri paket. Jika lingkungan Anda menggunakan akses jaringan **None**, hook ini gagal. [Allowlist default](#default-allowed-domains) di bawah **Trusted** mencakup npm, PyPI, RubyGems, dan crates.io.

529* **Kompatibilitas proxy**: di lingkungan yang dihosting Anthropic, semua lalu lintas keluar melewati [proxy keamanan](#security-proxy), dan beberapa manajer paket tidak bekerja dengan benar dengannya; Bun adalah contoh yang diketahui. Di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments-deploy#default-deny-egress), lalu lintas keluar melewati batas jaringan Anda sendiri.530* **Kompatibilitas proxy**: di lingkungan yang dihosting Anthropic, semua lalu lintas keluar melewati [proxy keamanan](#security-proxy), dan beberapa manajer paket tidak bekerja dengan benar dengannya; Bun adalah contoh yang diketahui. Di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments-deploy#default-deny-egress), lalu lintas keluar melewati batas jaringan Anda sendiri.

530* **Menambah latensi startup**: hook berjalan setiap kali sesi dimulai atau dilanjutkan, tidak seperti skrip setup yang mendapat manfaat dari [caching lingkungan](#environment-caching). Jaga skrip instalasi cepat dengan memeriksa apakah dependensi sudah ada sebelum menginstal ulang.531* **Menambah latensi startup**: hook berjalan setiap kali sesi dimulai atau dilanjutkan, tidak seperti skrip setup yang mendapat manfaat dari [caching lingkungan](#environment-caching). Jaga skrip instalasi cepat dengan memeriksa apakah dependensi sudah ada sebelum menginstal ulang.


793 Sumber daya terkait794 Sumber daya terkait

794</h2>795</h2>

795 796 

796* [Claude Code di web](/docs/id/claude-code-on-the-web): mulai, kelola, dan bagikan sesi cloud797* [Referensi sesi cloud](/docs/id/claude-code-on-the-web): mulai, kelola, dan bagikan sesi cloud

797* [Quickstart web](/docs/id/web-quickstart): hubungkan GitHub dan mulai sesi cloud pertama Anda798* [Quickstart sesi cloud](/docs/id/web-quickstart): hubungkan GitHub dan mulai sesi cloud pertama Anda

798* [Claude Tag](https://claude.com/docs/claude-tag/overview): sesi yang dimulai Claude dari Slack berjalan di lingkungan yang sama799* [Claude Tag](https://claude.com/docs/claude-tag/overview): sesi yang dimulai Claude dari Slack berjalan di lingkungan yang sama

799* [Routines](/docs/id/routines): jalankan terjadwal menggunakan lingkungan dan tingkat akses jaringan yang sama800* [Routines](/docs/id/routines): jalankan terjadwal menggunakan lingkungan dan tingkat akses jaringan yang sama

800* [Remote Control](/docs/id/remote-control): jalankan sesi di jaringan dan file mesin Anda sendiri sebagai gantinya801* [Remote Control](/docs/id/remote-control): jalankan sesi di jaringan dan file mesin Anda sendiri sebagai gantinya

code-review.md +4 −2

Details

58 58 

59Membalas komentar sebaris tidak mendorong Claude untuk merespons atau memperbarui PR. Untuk bertindak atas temuan, perbaiki kode dan push. Jika PR berlangganan ulasan yang dipicu push, jalankan berikutnya menyelesaikan utas ketika masalah diperbaiki. Untuk meminta ulasan segar tanpa push, komentari `@claude review` sebagai [komentar PR tingkat atas](#manually-trigger-reviews).59Membalas komentar sebaris tidak mendorong Claude untuk merespons atau memperbarui PR. Untuk bertindak atas temuan, perbaiki kode dan push. Jika PR berlangganan ulasan yang dipicu push, jalankan berikutnya menyelesaikan utas ketika masalah diperbaiki. Untuk meminta ulasan segar tanpa push, komentari `@claude review` sebagai [komentar PR tingkat atas](#manually-trigger-reviews).

60 60 

61Untuk menolak temuan tanpa perubahan kode, selesaikan utas; membalas tidak menolaknya.

62 

61<h3 id="check-run-output">63<h3 id="check-run-output">

62 Output jalankan pemeriksaan64 Output jalankan pemeriksaan

63</h3>65</h3>


195 197 

196`REVIEW.md` adalah file di akar repositori Anda yang menyesuaikan Code Review dengan repo Anda. Agen dalam saluran ulasan yang menemukan dan memverifikasi temuan menerima isinya sebagai instruksi ulasan repositori Anda, bersama dengan panduan ulasan default Code Review, dan agen yang menentukan peringkat dan melaporkan temuan berkonsultasi dengannya sebelum menetapkan keparahan dan menulis ulasan.198`REVIEW.md` adalah file di akar repositori Anda yang menyesuaikan Code Review dengan repo Anda. Agen dalam saluran ulasan yang menemukan dan memverifikasi temuan menerima isinya sebagai instruksi ulasan repositori Anda, bersama dengan panduan ulasan default Code Review, dan agen yang menentukan peringkat dan melaporkan temuan berkonsultasi dengannya sebelum menetapkan keparahan dan menulis ulasan.

197 199 

198Agen membaca teks file apa adanya, jadi `REVIEW.md` adalah instruksi biasa: sintaks [`@` import](/docs/id/memory#import-additional-files) tidak diperluas, dan file yang direferensikan tidak dibaca bersama dengannya. Letakkan aturan yang ingin Anda terapkan langsung di file.200Letakkan aturan yang ingin Anda terapkan langsung di `REVIEW.md`.

199 201 

200<h4 id="what-you-can-tune">202<h4 id="what-you-can-tune">

201 Apa yang dapat Anda sesuaikan203 Apa yang dapat Anda sesuaikan


360 </Step>362 </Step>

361</Steps>363</Steps>

362 364 

363Claude melaporkan temuan sebagai teks dalam balasan di kedua lintasan ini, bahkan ketika aplikasi host meminta daftar temuan yang dijelaskan di bawah:365Claude melaporkan temuan sebagai teks dalam balasan di kedua lintasan ini, bahkan ketika aplikasi host meminta daftar temuan:

364 366 

365* Dalam sesi terminal, di mana `/code-review` menjalankan ulasan sebagai [subagent bercabang](/docs/id/skills#run-skills-in-a-subagent)367* Dalam sesi terminal, di mana `/code-review` menjalankan ulasan sebagai [subagent bercabang](/docs/id/skills#run-skills-in-a-subagent)

366* Dalam lintasan `-p` dengan output teks atau JSON368* Dalam lintasan `-p` dengan output teks atau JSON

commands.md +8 −7

Details

28 28 

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

30 30 

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

32 32 

33**Ketika ada yang salah.** `/rewind` mengembalikan kode dan percakapan ke checkpoint, atau merangkum bagian dari percakapan. `/doctor` menjalankan pemeriksaan penyiapan yang mendiagnosis masalah instalasi dan konfigurasi dan dapat memperbaikinya, `/debug` mendiagnosis masalah runtime, dan `/feedback` melaporkan bug dengan konteks sesi terlampir.33**Ketika ada yang salah.** `/rewind` mengembalikan kode dan percakapan ke checkpoint, atau merangkum bagian dari percakapan. `/doctor` menjalankan pemeriksaan penyiapan yang mendiagnosis masalah instalasi dan konfigurasi dan dapat memperbaikinya, `/debug` mendiagnosis masalah runtime, dan `/feedback` melaporkan bug dengan konteks sesi terlampir.

34 34 


59| `/artifacts` | Daftar [artifact](/docs/id/artifacts#find-an-artifact-again) yang Anda miliki atau yang dibagikan dengan Anda, kemudian lampirkan satu ke sesi, buka di browser Anda, atau salin tautannya. Tersedia di mana [artifact](/docs/id/artifacts#availability) tersedia. Memerlukan Claude Code v2.1.208 atau lebih baru; melampirkan dengan `Enter` memerlukan v2.1.216 |59| `/artifacts` | Daftar [artifact](/docs/id/artifacts#find-an-artifact-again) yang Anda miliki atau yang dibagikan dengan Anda, kemudian lampirkan satu ke sesi, buka di browser Anda, atau salin tautannya. Tersedia di mana [artifact](/docs/id/artifacts#availability) tersedia. Memerlukan Claude Code v2.1.208 atau lebih baru; melampirkan dengan `Enter` memerlukan v2.1.216 |

60| `/auto-mode-setup` | [Buat draf entri `autoMode.environment`](/docs/id/auto-mode-config#generate-environment-entries) dari proyek dan sesi terbaru Anda, kemudian tinjau draf dan simpan ke pengaturan pengguna Anda. Memerlukan paket Pro, Max, atau Team dan Claude Code v2.1.228 atau lebih baru. Di Windows asli, memerlukan v2.1.233 atau lebih baru |60| `/auto-mode-setup` | [Buat draf entri `autoMode.environment`](/docs/id/auto-mode-config#generate-environment-entries) dari proyek dan sesi terbaru Anda, kemudian tinjau draf dan simpan ke pengaturan pengguna Anda. Memerlukan paket Pro, Max, atau Team dan Claude Code v2.1.228 atau lebih baru. Di Windows asli, memerlukan v2.1.233 atau lebih baru |

61| `/autocompact [auto\|<tokens>]` | Atur jendela auto-compact: seberapa penuh jendela konteks sebelum Claude Code melakukan pemadatan otomatis. Berikan ukuran seperti `500k`, atau `auto` untuk kembali ke jendela yang disesuaikan untuk model Anda. Claude Code menyimpan nilai ke pengaturan pengguna dan menerapkannya ke sesi saat ini. Lihat [Atur jendela auto-compact](/docs/id/model-config#set-the-auto-compact-window) untuk nilai yang diterima dan apa yang menimpanya. Tanpa argumen, membuka dialog yang menunjukkan jendela saat ini. Memerlukan Claude Code v2.1.221 atau lebih baru |61| `/autocompact [auto\|<tokens>]` | Atur jendela auto-compact: seberapa penuh jendela konteks sebelum Claude Code melakukan pemadatan otomatis. Berikan ukuran seperti `500k`, atau `auto` untuk kembali ke jendela yang disesuaikan untuk model Anda. Claude Code menyimpan nilai ke pengaturan pengguna dan menerapkannya ke sesi saat ini. Lihat [Atur jendela auto-compact](/docs/id/model-config#set-the-auto-compact-window) untuk nilai yang diterima dan apa yang menimpanya. Tanpa argumen, membuka dialog yang menunjukkan jendela saat ini. Memerlukan Claude Code v2.1.221 atau lebih baru |

62| `/autofix-pr [prompt]` | Spawn sesi [Claude Code di web](/docs/id/claude-code-on-the-web#auto-fix-pull-requests) yang memantau PR cabang saat ini dan mendorong perbaikan ketika CI gagal atau pengulas meninggalkan komentar. Mendeteksi PR terbuka dari cabang yang Anda checkout dengan `gh pr view`; untuk memantau PR berbeda, checkout cabangnya terlebih dahulu. Secara default sesi cloud diberitahu untuk memperbaiki setiap kegagalan CI dan komentar ulasan; berikan prompt untuk memberikan instruksi berbeda, misalnya `/autofix-pr only fix lint and type errors`. Memerlukan CLI `gh` dan akses ke [Claude Code di web](/docs/id/claude-code-on-the-web) |62| `/autofix-pr [prompt]` | Spawn sesi [cloud](/docs/id/claude-code-on-the-web#auto-fix-pull-requests) yang memantau PR cabang saat ini dan mendorong perbaikan ketika CI gagal atau pengulas meninggalkan komentar. Mendeteksi PR terbuka dari cabang yang Anda checkout dengan `gh pr view`; untuk memantau PR berbeda, checkout cabangnya terlebih dahulu. Secara default sesi cloud diberitahu untuk memperbaiki setiap kegagalan CI dan komentar ulasan; berikan prompt untuk memberikan instruksi berbeda, misalnya `/autofix-pr only fix lint and type errors`. Memerlukan CLI `gh` dan akses ke [sesi cloud](/docs/id/claude-code-on-the-web) |

63| `/background [prompt]` | Lepaskan sesi saat ini untuk berjalan sebagai [agen latar belakang](/docs/id/agent-view) dan bebaskan terminal ini. Berikan prompt untuk mengirim satu instruksi lagi sebelum melepaskan. Pantau sesi dengan `claude agents`. Untuk menyalin percakapan ke sesi latar belakang baru sementara yang ini terus berjalan, gunakan `/fork`. Alias: `/bg` |63| `/background [prompt]` | Lepaskan sesi saat ini untuk berjalan sebagai [agen latar belakang](/docs/id/agent-view) dan bebaskan terminal ini. Berikan prompt untuk mengirim satu instruksi lagi sebelum melepaskan. Pantau sesi dengan `claude agents`. Untuk menyalin percakapan ke sesi latar belakang baru sementara yang ini terus berjalan, gunakan `/fork`. Alias: `/bg` |

64| `/batch <instruction>` | **[Skill](/docs/id/skills#bundled-skills).** Orkestrasi perubahan skala besar di seluruh basis kode secara paralel. Meneliti basis kode, menguraikan pekerjaan menjadi 5 hingga 30 unit independen, dan menyajikan rencana. Setelah disetujui, spawn satu [subagent latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) per unit dalam [git worktree](/docs/id/worktrees) terisolasi. Setiap subagent mengimplementasikan unitnya, menjalankan tes, dan membuka permintaan tarik. Memerlukan repositori git. Contoh: `/batch migrate src/ from JavaScript to TypeScript` |64| `/batch <instruction>` | **[Skill](/docs/id/skills#bundled-skills).** Orkestrasi perubahan skala besar di seluruh basis kode secara paralel. Meneliti basis kode, menguraikan pekerjaan menjadi 5 hingga 30 unit independen, dan menyajikan rencana. Setelah disetujui, spawn satu [subagent latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) per unit dalam [git worktree](/docs/id/worktrees) terisolasi. Setiap subagent mengimplementasikan unitnya, menjalankan tes, dan membuka permintaan tarik. Memerlukan repositori git. Contoh: `/batch migrate src/ from JavaScript to TypeScript` |

65| `/branch [name]` | Buat cabang percakapan saat ini pada titik ini, sehingga Anda dapat mencoba arah berbeda tanpa kehilangan percakapan seperti adanya. Beralih Anda ke cabang dan menyimpan yang asli, yang dapat Anda kembali dengan `/resume`. Untuk menjalankan salinan sebagai [sesi latar belakang](/docs/id/agent-view) terpisah alih-alih beralih ke dalamnya, gunakan `/fork`; untuk menyerahkan tugas sampingan ke [subagent](/docs/id/sub-agents) yang melaporkan kembali ke percakapan ini, gunakan `/subtask` |65| `/branch [name]` | Buat cabang percakapan saat ini pada titik ini, sehingga Anda dapat mencoba arah berbeda tanpa kehilangan percakapan seperti adanya. Beralih Anda ke cabang dan menyimpan yang asli, yang dapat Anda kembali dengan `/resume`. Untuk menjalankan salinan sebagai [sesi latar belakang](/docs/id/agent-view) terpisah alih-alih beralih ke dalamnya, gunakan `/fork`; untuk menyerahkan tugas sampingan ke [subagent](/docs/id/sub-agents) yang melaporkan kembali ke percakapan ini, gunakan `/subtask` |


72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/id/skills#bundled-skills).** Tinjau diff saat ini, atau nomor PR, cabang, atau jalur yang Anda berikan, untuk bug kebenaran dan peluang pembersihan. Berikan `--fix` untuk menerapkan temuan, `--comment` untuk mempostingnya pada PR GitHub atau permintaan penggabungan GitLab, atau `ultra` untuk menjalankan [ulasan cloud](/docs/id/ultrareview) mendalam. Memposting ke permintaan penggabungan GitLab memerlukan Claude Code v2.1.257 atau lebih baru. Dengan `ultra` pada target PR `github.com`, berikan `--post` untuk pra-memilih [memposting temuan yang selesai ke PR](/docs/id/ultrareview#post-findings-to-the-pull-request) dalam dialog peluncuran; `--post` memerlukan Claude Code v2.1.227 atau lebih baru. Lihat [Tinjau diff secara lokal](/docs/id/code-review#review-a-diff-locally) untuk tingkat upaya, penargetan, dan bagaimana hubungannya dengan `/simplify`. Alias: `/review` |72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/id/skills#bundled-skills).** Tinjau diff saat ini, atau nomor PR, cabang, atau jalur yang Anda berikan, untuk bug kebenaran dan peluang pembersihan. Berikan `--fix` untuk menerapkan temuan, `--comment` untuk mempostingnya pada PR GitHub atau permintaan penggabungan GitLab, atau `ultra` untuk menjalankan [ulasan cloud](/docs/id/ultrareview) mendalam. Memposting ke permintaan penggabungan GitLab memerlukan Claude Code v2.1.257 atau lebih baru. Dengan `ultra` pada target PR `github.com`, berikan `--post` untuk pra-memilih [memposting temuan yang selesai ke PR](/docs/id/ultrareview#post-findings-to-the-pull-request) dalam dialog peluncuran; `--post` memerlukan Claude Code v2.1.227 atau lebih baru. Lihat [Tinjau diff secara lokal](/docs/id/code-review#review-a-diff-locally) untuk tingkat upaya, penargetan, dan bagaimana hubungannya dengan `/simplify`. Alias: `/review` |

73| `/color [color\|default]` | Atur warna bilah prompt untuk sesi saat ini. Warna tersedia: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Gunakan `default` untuk mengatur ulang, atau jalankan tanpa argumen untuk memilih warna acak. Ketika [Remote Control](/docs/id/remote-control) terhubung, warna disinkronkan ke claude.ai/code. Juga tersedia dalam mode non-interaktif (`-p`); memerlukan Claude Code v2.1.205 atau lebih baru |73| `/color [color\|default]` | Atur warna bilah prompt untuk sesi saat ini. Warna tersedia: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Gunakan `default` untuk mengatur ulang, atau jalankan tanpa argumen untuk memilih warna acak. Ketika [Remote Control](/docs/id/remote-control) terhubung, warna disinkronkan ke claude.ai/code. Juga tersedia dalam mode non-interaktif (`-p`); memerlukan Claude Code v2.1.205 atau lebih baru |

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

75| `/config [key=value ...]` | Buka antarmuka [Settings](/docs/id/settings) untuk menyesuaikan tema, model, [gaya output](/docs/id/output-styles), dan preferensi lainnya. Dari v2.1.181, berikan satu atau lebih pasangan `key=value` untuk mengatur pengaturan secara langsung tanpa membuka antarmuka, misalnya `/config thinking=false`. Dari v2.1.182, kunci singkat bernama juga diterima, seperti `/config theme=dark` atau `/config model=sonnet`. Bentuk `key=value` juga berfungsi dalam mode non-interaktif (`-p`) dan dari aplikasi mobile Claude melalui [Remote Control](/docs/id/remote-control). Bentuk `key=value` tidak dapat mengaktifkan pengaturan yang memerlukan konfirmasi Anda di panel, seperti [`autoContinueAtUsageLimit`](/docs/id/interactive-mode#turn-automatic-continue-off), meskipun dapat mengaktifkannya. Jalankan `/config --help` untuk mencantumkan kunci yang diterimanya. Alias: `/settings` |75| `/config [key=value ...]` | Buka antarmuka [Settings](/docs/id/settings) untuk menyesuaikan tema, model, [gaya output](/docs/id/output-styles), dan preferensi lainnya. Berikan satu atau lebih pasangan `key=value` untuk mengatur pengaturan secara langsung tanpa membuka antarmuka, misalnya `/config thinking=false`, `/config theme=dark`, atau `/config model=sonnet`. Bentuk `key=value` juga berfungsi dalam mode non-interaktif (`-p`) dan dari aplikasi mobile Claude melalui [Remote Control](/docs/id/remote-control). Bentuk `key=value` tidak dapat mengaktifkan pengaturan yang memerlukan konfirmasi Anda di panel, seperti [`autoContinueAtUsageLimit`](/docs/id/interactive-mode#turn-automatic-continue-off), meskipun dapat mematikannya. Jalankan `/config --help` untuk mencantumkan kunci yang diterimanya. Alias: `/settings` |

76| `/context [all]` | Visualisasikan penggunaan konteks saat ini sebagai grid berwarna. Menunjukkan saran optimasi untuk alat yang berat konteks, bloat memori, dan peringatan kapasitas. Ketika percakapan melebihi jendela konteks, output mencakup [peringatan](/docs/id/errors#context-exceeds-the-token-limit) yang menunjukkan seberapa jauh Anda melampaui batas dan perintah mana yang membebaskan ruang. Dalam [mode layar penuh](/docs/id/fullscreen), `/context` meruntuhkan rincian per-item untuk menjaga grid tetap terlihat. Berikan `all` untuk meluaskannya |76| `/context [all]` | Visualisasikan penggunaan konteks saat ini sebagai grid berwarna. Menunjukkan saran optimasi untuk alat yang berat konteks, bloat memori, dan peringatan kapasitas. Ketika percakapan melebihi jendela konteks, output mencakup [peringatan](/docs/id/errors#context-exceeds-the-token-limit) yang menunjukkan seberapa jauh Anda melampaui batas dan perintah mana yang membebaskan ruang. Dalam [mode layar penuh](/docs/id/fullscreen), `/context` meruntuhkan rincian per-item untuk menjaga grid tetap terlihat. Berikan `all` untuk meluaskannya |

77| `/copy [N]` | Salin respons asisten terakhir ke clipboard. Berikan angka `N` untuk menyalin respons ke-N terbaru: `/copy 2` menyalin yang kedua terakhir. Ketika blok kode ada, menunjukkan pemilih interaktif untuk memilih blok individual atau respons lengkap. Tekan `w` di pemilih untuk menulis pilihan ke file alih-alih clipboard, yang berguna melalui SSH |77| `/copy [N]` | Salin respons asisten terakhir ke clipboard. Berikan angka `N` untuk menyalin respons ke-N terbaru: `/copy 2` menyalin yang kedua terakhir. Ketika blok kode ada, menunjukkan pemilih interaktif untuk memilih blok individual atau respons lengkap. Tekan `w` di pemilih untuk menulis pilihan ke file alih-alih clipboard, yang berguna melalui SSH |

78| `/cost` | Alias untuk `/usage` |78| `/cost` | Alias untuk `/usage` |


112| `/memory` | Edit file `CLAUDE.md`, aktifkan atau nonaktifkan [memori otomatis](/docs/id/memory#auto-memory), dan lihat entri memori otomatis |112| `/memory` | Edit file `CLAUDE.md`, aktifkan atau nonaktifkan [memori otomatis](/docs/id/memory#auto-memory), dan lihat entri memori otomatis |

113| `/mobile` | Tampilkan kode QR untuk mengunduh aplikasi mobile Claude. Alias: `/ios`, `/android` |113| `/mobile` | Tampilkan kode QR untuk mengunduh aplikasi mobile Claude. Alias: `/ios`, `/android` |

114| `/model [model]` | Alihkan model AI dan simpan sebagai default Anda untuk sesi baru. Untuk model yang mendukungnya, gunakan panah kiri/kanan untuk [menyesuaikan tingkat upaya](/docs/id/model-config#adjust-effort-level). Tanpa argumen, membuka pemilih; tekan `s` pada baris untuk beralih hanya untuk sesi saat ini. Lihat [kapan Claude Code meminta Anda untuk mengonfirmasi switch](/docs/id/prompt-caching#switching-models). Setelah Anda mengonfirmasi switch, jika Claude Code bertanya, Claude Code menerapkan perubahan tanpa menunggu respons saat ini selesai. Sebelum v2.1.242, Claude Code memutuskan dari bendera fitur yang diambilnya dari Anthropic apakah akan menjalankan perintah di tengah giliran atau mengantrikannya sampai giliran selesai, dan selalu mengantrikannya dalam sesi yang tidak [mengambil bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), seperti di [penyedia pihak ketiga](/docs/id/third-party-integrations). Juga tersedia dalam mode non-interaktif (`-p`) dengan argumen model alih-alih pemilih, di mana ia berlaku hanya untuk sesi saat ini dan tidak disimpan sebagai default Anda; memerlukan Claude Code v2.1.205 atau lebih baru |114| `/model [model]` | Alihkan model AI dan simpan sebagai default Anda untuk sesi baru. Untuk model yang mendukungnya, gunakan panah kiri/kanan untuk [menyesuaikan tingkat upaya](/docs/id/model-config#adjust-effort-level). Tanpa argumen, membuka pemilih; tekan `s` pada baris untuk beralih hanya untuk sesi saat ini. Lihat [kapan Claude Code meminta Anda untuk mengonfirmasi switch](/docs/id/prompt-caching#switching-models). Setelah Anda mengonfirmasi switch, jika Claude Code bertanya, Claude Code menerapkan perubahan tanpa menunggu respons saat ini selesai. Sebelum v2.1.242, Claude Code memutuskan dari bendera fitur yang diambilnya dari Anthropic apakah akan menjalankan perintah di tengah giliran atau mengantrikannya sampai giliran selesai, dan selalu mengantrikannya dalam sesi yang tidak [mengambil bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), seperti di [penyedia pihak ketiga](/docs/id/third-party-integrations). Juga tersedia dalam mode non-interaktif (`-p`) dengan argumen model alih-alih pemilih, di mana ia berlaku hanya untuk sesi saat ini dan tidak disimpan sebagai default Anda; memerlukan Claude Code v2.1.205 atau lebih baru |

115| `/output-style [style]` | Daftar [gaya output](/docs/id/output-styles) atau beralih ke satu, misalnya `/output-style concise`. Lihat [Ubah gaya output Anda](/docs/id/output-styles#change-your-output-style). Memerlukan Claude Code v2.1.269 atau lebih baru |

115| `/passes` | Bagikan minggu gratis Claude Code dengan teman. Hanya terlihat jika akun Anda memenuhi syarat |116| `/passes` | Bagikan minggu gratis Claude Code dengan teman. Hanya terlihat jika akun Anda memenuhi syarat |

116| `/permissions` | Kelola aturan izin allow, ask, dan deny untuk izin alat. Membuka dialog interaktif di mana Anda dapat melihat aturan berdasarkan cakupan, menambah atau menghapus aturan, mengelola direktori kerja, dan meninjau [penolakan mode otomatis terbaru](/docs/id/auto-mode-config#review-denials). Anda juga dapat melihat dan mengedit [aturan pengklasifikasi mode otomatis](/docs/id/auto-mode-config#edit-rules-from-permissions) dari tab **Mode otomatis** dialog. Ketika Anda menjalankannya saat Claude merespons, Claude Code membuka dialog segera dan menerapkan perubahan Anda mulai dari panggilan alat berikutnya Claude dalam giliran yang sama. Sebelum v2.1.234, Claude Code mengantrikan perintah sampai giliran selesai. Alias: `/allowed-tools` |117| `/permissions` | Kelola aturan izin allow, ask, dan deny untuk izin alat. Membuka dialog interaktif di mana Anda dapat melihat aturan berdasarkan cakupan, menambah atau menghapus aturan, mengelola direktori kerja, dan meninjau [penolakan mode otomatis terbaru](/docs/id/auto-mode-config#review-denials). Anda juga dapat melihat dan mengedit [aturan pengklasifikasi mode otomatis](/docs/id/auto-mode-config#edit-rules-from-permissions) dari tab **Mode otomatis** dialog. Ketika Anda menjalankannya saat Claude merespons, Claude Code membuka dialog segera dan menerapkan perubahan Anda mulai dari panggilan alat berikutnya Claude dalam giliran yang sama. Sebelum v2.1.234, Claude Code mengantrikan perintah sampai giliran selesai. Alias: `/allowed-tools` |

117| `/plan [description]` | Masukkan mode rencana langsung dari prompt. Berikan deskripsi opsional untuk memasukkan mode rencana dan segera mulai dengan tugas itu, misalnya `/plan fix the auth bug` |118| `/plan [description]` | Masukkan mode rencana langsung dari prompt. Berikan deskripsi opsional untuk memasukkan mode rencana dan segera mulai dengan tugas itu, misalnya `/plan fix the auth bug` |


126| `/reload-plugins [--force]` | Muat ulang semua [plugin](/docs/id/plugins) aktif untuk menerapkan perubahan yang tertunda tanpa memulai ulang. Laporan hitungan untuk setiap komponen yang dimuat ulang dan menandai kesalahan pemuatan apa pun. Ketika pemuatan ulang akan mengubah alat MCP mana yang dimuat dan membatalkan cache prompt, perintah memperingatkan dan melewati kecuali Anda berikan `--force`. Juga tersedia dalam mode non-interaktif (`-p`), Agent SDK, dan aplikasi desktop, di mana ia berjalan hanya pada input yang diketik langsung ke dalam sesi dan tidak menerapkan perubahan server MCP plugin; memerlukan Claude Code v2.1.260 atau lebih baru. Lihat [Terapkan perubahan plugin tanpa memulai ulang](/docs/id/discover-plugins#apply-plugin-changes-without-restarting) |127| `/reload-plugins [--force]` | Muat ulang semua [plugin](/docs/id/plugins) aktif untuk menerapkan perubahan yang tertunda tanpa memulai ulang. Laporan hitungan untuk setiap komponen yang dimuat ulang dan menandai kesalahan pemuatan apa pun. Ketika pemuatan ulang akan mengubah alat MCP mana yang dimuat dan membatalkan cache prompt, perintah memperingatkan dan melewati kecuali Anda berikan `--force`. Juga tersedia dalam mode non-interaktif (`-p`), Agent SDK, dan aplikasi desktop, di mana ia berjalan hanya pada input yang diketik langsung ke dalam sesi dan tidak menerapkan perubahan server MCP plugin; memerlukan Claude Code v2.1.260 atau lebih baru. Lihat [Terapkan perubahan plugin tanpa memulai ulang](/docs/id/discover-plugins#apply-plugin-changes-without-restarting) |

127| `/reload-skills` | Pindai ulang direktori [skill](/docs/id/skills) dan perintah sehingga skill yang ditambahkan atau diubah di disk selama sesi menjadi tersedia tanpa memulai ulang. Laporan berapa banyak skill yang tersedia dan berapa banyak yang ditambahkan atau dihapus |128| `/reload-skills` | Pindai ulang direktori [skill](/docs/id/skills) dan perintah sehingga skill yang ditambahkan atau diubah di disk selama sesi menjadi tersedia tanpa memulai ulang. Laporan berapa banyak skill yang tersedia dan berapa banyak yang ditambahkan atau dihapus |

128| `/remote-control` | Buat sesi ini tersedia untuk [Remote Control](/docs/id/remote-control) dari claude.ai. Menjalankannya saat keluar mencetak bahwa Remote Control memerlukan langganan claude.ai dan memberi tahu Anda cara masuk; sebelum v2.1.206 itu melaporkan `Unknown command: /remote-control`. Alias: `/rc` |129| `/remote-control` | Buat sesi ini tersedia untuk [Remote Control](/docs/id/remote-control) dari claude.ai. Menjalankannya saat keluar mencetak bahwa Remote Control memerlukan langganan claude.ai dan memberi tahu Anda cara masuk; sebelum v2.1.206 itu melaporkan `Unknown command: /remote-control`. Alias: `/rc` |

129| `/remote-env` | Pilih lingkungan default untuk [agen cloud](/docs/id/cloud-environments#select-an-environment-from-the-cli) |130| `/remote-env` | Pilih lingkungan cloud default untuk [sesi cloud](/docs/id/cloud-environments#select-an-environment-from-the-cli) yang Anda mulai dari CLI |

130| `/rename [name]` | Ubah nama sesi saat ini dan tampilkan nama di bilah prompt. Tanpa nama, auto-generate satu dari riwayat percakapan. Juga tersedia dalam mode non-interaktif (`-p`); memerlukan Claude Code v2.1.205 atau lebih baru. Dari setiap permukaan rename, termasuk claude.ai dan aplikasi desktop, Claude Code mengganti karakter kontrol dan tidak terlihat dalam nama baru dengan spasi dan membatasi nama pada 200 karakter. Jika nama kosong setelah karakter tidak terlihat dihapus, Claude Code menolaknya dan menunjukkan `That name is empty once invisible characters are removed. Usage: /rename <name>`. Penggantian karakter dan batas panjang memerlukan Claude Code v2.1.221 atau lebih baru. Jika sesi langsung lain di mesin ini sudah menggunakan nama yang Anda berikan, Claude Code menerapkan [varian darinya](/docs/id/sessions#name-your-sessions) sebagai gantinya |131| `/rename [name]` | Ubah nama sesi saat ini dan tampilkan nama di bilah prompt. Tanpa nama, auto-generate satu dari riwayat percakapan. Juga tersedia dalam mode non-interaktif (`-p`); memerlukan Claude Code v2.1.205 atau lebih baru. Dari setiap permukaan rename, termasuk claude.ai dan aplikasi desktop, Claude Code mengganti karakter kontrol dan tidak terlihat dalam nama baru dengan spasi dan membatasi nama pada 200 karakter. Jika nama kosong setelah karakter tidak terlihat dihapus, Claude Code menolaknya dan menunjukkan `That name is empty once invisible characters are removed. Usage: /rename <name>`. Penggantian karakter dan batas panjang memerlukan Claude Code v2.1.221 atau lebih baru. Jika sesi langsung lain di mesin ini sudah menggunakan nama yang Anda berikan, Claude Code menerapkan [varian darinya](/docs/id/sessions#name-your-sessions) sebagai gantinya |

131| `/resume [session]` | Lanjutkan percakapan berdasarkan ID atau nama, atau buka pemilih sesi. [Sesi latar belakang](/docs/id/agent-view) muncul di pemilih ditandai dengan `bg`; satu yang masih berjalan tidak dapat dilanjutkan di sini, jadi lampirkan dari `claude agents` atau hentikan di sana terlebih dahulu. Alias: `/continue` |132| `/resume [session]` | Lanjutkan percakapan berdasarkan ID atau nama, atau buka pemilih sesi. [Sesi latar belakang](/docs/id/agent-view) muncul di pemilih ditandai dengan `bg`; satu yang masih berjalan tidak dapat dilanjutkan di sini, jadi lampirkan dari `claude agents` atau hentikan di sana terlebih dahulu. Alias: `/continue` |

132| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | Alias dari [`/code-review`](/docs/id/code-review#review-a-diff-locally): meninjau diff saat ini, atau nomor PR, cabang, atau jalur yang Anda berikan, seperti `/review 1234`, dan mengambil tingkat upaya dan bendera yang sama. Tanpa level yang diberikan, ulasan menggunakan kembali tingkat `low` hingga `max` terakhir yang Anda ketik; lihat [Tinjau diff secara lokal](/docs/id/code-review#review-a-diff-locally) untuk aturan yang tepat. Untuk ulasan cloud mendalam, gunakan [`/code-review ultra`](/docs/id/ultrareview). Sebelum v2.1.223, `/review` adalah perintah terpisah yang menjalankan ulasan satu-pass, baca-saja dari nomor permintaan tarik GitHub, mencantumkan PR terbuka untuk dipilih saat dijalankan tanpa argumen; dari v2.1.186 melalui v2.1.201, itu menjalankan mesin multi-agen yang sama seperti `/code-review medium` |133| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | Alias dari [`/code-review`](/docs/id/code-review#review-a-diff-locally): meninjau diff saat ini, atau nomor PR, cabang, atau jalur yang Anda berikan, seperti `/review 1234`, dan mengambil tingkat upaya dan bendera yang sama. Tanpa level yang diberikan, ulasan menggunakan kembali tingkat `low` hingga `max` terakhir yang Anda ketik; lihat [Tinjau diff secara lokal](/docs/id/code-review#review-a-diff-locally) untuk aturan yang tepat. Untuk ulasan cloud mendalam, gunakan [`/code-review ultra`](/docs/id/ultrareview). Sebelum v2.1.223, `/review` adalah perintah terpisah yang menjalankan ulasan satu-pass, baca-saja dari nomor permintaan tarik GitHub, mencantumkan PR terbuka untuk dipilih saat dijalankan tanpa argumen; dari v2.1.186 melalui v2.1.201, itu menjalankan mesin multi-agen yang sama seperti `/code-review medium` |


150| `/subtask <task>` | Spawn [subagent bercabang](/docs/id/sub-agents#fork-the-current-conversation): subagent latar belakang yang mewarisi percakapan lengkap dan bekerja pada tugas saat Anda terus bekerja. Hasilnya kembali ke percakapan ini ketika selesai. Untuk menyalin percakapan ke sesi latar belakang terpisah sebagai gantinya, gunakan `/fork`. Memerlukan Claude Code v2.1.212 atau lebih baru; di v2.1.161 melalui v2.1.211 perintah ini adalah `/fork`. Ketika [tampilan agen dimatikan](/docs/id/agent-view#turn-off-agent-view), `/subtask` tidak tersedia dan `/fork` mempertahankan perilaku subagent bercabang |151| `/subtask <task>` | Spawn [subagent bercabang](/docs/id/sub-agents#fork-the-current-conversation): subagent latar belakang yang mewarisi percakapan lengkap dan bekerja pada tugas saat Anda terus bekerja. Hasilnya kembali ke percakapan ini ketika selesai. Untuk menyalin percakapan ke sesi latar belakang terpisah sebagai gantinya, gunakan `/fork`. Memerlukan Claude Code v2.1.212 atau lebih baru; di v2.1.161 melalui v2.1.211 perintah ini adalah `/fork`. Ketika [tampilan agen dimatikan](/docs/id/agent-view#turn-off-agent-view), `/subtask` tidak tersedia dan `/fork` mempertahankan perilaku subagent bercabang |

151| `/tasks` | Lihat dan kelola pekerjaan latar belakang dalam sesi saat ini, termasuk subagent yang telah selesai. Juga tersedia sebagai `/bashes` |152| `/tasks` | Lihat dan kelola pekerjaan latar belakang dalam sesi saat ini, termasuk subagent yang telah selesai. Juga tersedia sebagai `/bashes` |

152| `/team-onboarding` | Hasilkan panduan onboarding tim dari riwayat penggunaan Claude Code Anda. Claude menganalisis sesi, perintah, dan penggunaan server MCP Anda dari 30 hari terakhir dan menghasilkan panduan markdown yang dapat ditempel rekan kerja sebagai pesan pertama untuk pengaturan cepat. Untuk pelanggan claude.ai di paket Pro, Max, Team, dan Enterprise, juga mengembalikan tautan bagikan yang dapat dibuka rekan kerja langsung di Claude Code |153| `/team-onboarding` | Hasilkan panduan onboarding tim dari riwayat penggunaan Claude Code Anda. Claude menganalisis sesi, perintah, dan penggunaan server MCP Anda dari 30 hari terakhir dan menghasilkan panduan markdown yang dapat ditempel rekan kerja sebagai pesan pertama untuk pengaturan cepat. Untuk pelanggan claude.ai di paket Pro, Max, Team, dan Enterprise, juga mengembalikan tautan bagikan yang dapat dibuka rekan kerja langsung di Claude Code |

153| `/teleport` | Tarik sesi [Claude Code di web](/docs/id/claude-code-on-the-web#from-web-to-terminal) ke terminal ini. Membuka pemilih, kemudian mengambil cabang dan percakapan. Juga tersedia sebagai `/tp`. Memerlukan langganan claude.ai |154| `/teleport` | Tarik sesi [cloud](/docs/id/claude-code-on-the-web#from-cloud-to-terminal) ke terminal ini. Membuka pemilih, kemudian mengambil cabang dan percakapan. Juga tersedia sebagai `/tp`. Memerlukan langganan claude.ai |

154| `/terminal-setup` | [Instal pintasan keyboard Shift+Enter untuk baris baru](/docs/id/terminal-config#enter-multiline-prompts) di VS Code, Cursor, Devin Desktop, Alacritty, atau Zed. Di Apple Terminal, [aktifkan Option+Enter untuk baris baru dan matikan bel audibel](/docs/id/terminal-config#enable-option-key-shortcuts-on-macos) sebagai gantinya. Di iTerm2, [aktifkan akses clipboard sehingga `/copy` berfungsi](/docs/id/terminal-config#enable-option-key-shortcuts-on-macos) |155| `/terminal-setup` | [Instal pintasan keyboard Shift+Enter untuk baris baru](/docs/id/terminal-config#enter-multiline-prompts) di VS Code, Cursor, Devin Desktop, Alacritty, atau Zed. Di Apple Terminal, [aktifkan Option+Enter untuk baris baru dan matikan bel audibel](/docs/id/terminal-config#enable-option-key-shortcuts-on-macos) sebagai gantinya. Di iTerm2, [aktifkan akses clipboard sehingga `/copy` berfungsi](/docs/id/terminal-config#enable-option-key-shortcuts-on-macos) |

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

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

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

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

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

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


162| `/verify` | **[Skill](/docs/id/skills#bundled-skills).** Konfirmasi perubahan kode melakukan apa yang seharusnya dengan membangun aplikasi proyek Anda, menjalankannya, dan mengamati hasilnya, daripada mengandalkan tes atau pemeriksaan tipe. Lihat [Jalankan dan verifikasi aplikasi Anda](/docs/id/skills#run-and-verify-your-app) |163| `/verify` | **[Skill](/docs/id/skills#bundled-skills).** Konfirmasi perubahan kode melakukan apa yang seharusnya dengan membangun aplikasi proyek Anda, menjalankannya, dan mengamati hasilnya, daripada mengandalkan tes atau pemeriksaan tipe. Lihat [Jalankan dan verifikasi aplikasi Anda](/docs/id/skills#run-and-verify-your-app) |

163| `/vim` | Dihapus di v2.1.92. Untuk beralih antara mode pengeditan Vim dan Normal, gunakan `/config` → Editor mode |164| `/vim` | Dihapus di v2.1.92. Untuk beralih antara mode pengeditan Vim dan Normal, gunakan `/config` → Editor mode |

164| `/voice [hold\|tap\|off]` | Alihkan [dikte suara](/docs/id/voice-dictation), atau aktifkan dalam mode tertentu. Memerlukan akun Claude.ai |165| `/voice [hold\|tap\|off]` | Alihkan [dikte suara](/docs/id/voice-dictation), atau aktifkan dalam mode tertentu. Memerlukan akun Claude.ai |

165| `/web-setup` | Hubungkan akun GitHub Anda ke [Claude Code di web](/docs/id/web-quickstart#connect-from-your-terminal) menggunakan kredensial CLI `gh` lokal Anda |166| `/web-setup` | Hubungkan akun GitHub Anda ke [sesi cloud](/docs/id/web-quickstart#connect-from-your-terminal) menggunakan kredensial CLI `gh` lokal Anda |

166| `/workflow-authoring` | **[Skill](/docs/id/skills#bundled-skills).** Muat referensi untuk menulis skrip [dynamic workflow](/docs/id/workflows): API skrip, perilaku resume, pola kualitas, dan contoh yang dikerjakan. Claude biasanya memuatnya sendiri sebelum menulis skrip; jalankan sendiri sebelum [mengedit skrip yang disimpan dengan tangan](/docs/id/workflows#edit-a-saved-script). Tersedia ketika alur kerja dinamis diaktifkan, dan memerlukan Claude Code v2.1.248 atau lebih baru |167| `/workflow-authoring` | **[Skill](/docs/id/skills#bundled-skills).** Muat referensi untuk menulis skrip [dynamic workflow](/docs/id/workflows): API skrip, perilaku resume, pola kualitas, dan contoh yang dikerjakan. Claude biasanya memuatnya sendiri sebelum menulis skrip; jalankan sendiri sebelum [mengedit skrip yang disimpan dengan tangan](/docs/id/workflows#edit-a-saved-script). Tersedia ketika alur kerja dinamis diaktifkan, dan memerlukan Claude Code v2.1.248 atau lebih baru |

167| `/workflows` | Buka tampilan [workflow](/docs/id/workflows#watch-the-run) untuk menonton, menjeda, melanjutkan, atau menyimpan alur kerja yang berjalan dan selesai |168| `/workflows` | Buka tampilan [workflow](/docs/id/workflows#watch-the-run) untuk menonton, menjeda, melanjutkan, atau menyimpan alur kerja yang berjalan dan selesai |

168 169 

Details

1586 1586 

1587Sesi ini menjelaskan alur kerja yang realistis dengan jumlah token yang representatif:1587Sesi ini menjelaskan alur kerja yang realistis dengan jumlah token yang representatif:

1588 1588 

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

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

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

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


1598Ketika sesi panjang dipadatkan, Claude Code merangkum riwayat percakapan agar sesuai dengan jendela konteks. Mulai dari v2.1.198, permintaan perangkuman mewarisi konfigurasi [extended thinking](/docs/id/model-config#extended-thinking) sesi Anda, sehingga ia bernalar dengan pemikiran diaktifkan ketika sesi Anda memilikinya diaktifkan dan tetap mati sebaliknya. Pemikiran hanya mempengaruhi cara ringkasan diproduksi; pengaturan sesi Anda tidak berubah setelahnya. Apa yang terjadi pada setiap jenis konten tergantung pada cara konten tersebut dimuat:1598Ketika sesi panjang dipadatkan, Claude Code merangkum riwayat percakapan agar sesuai dengan jendela konteks. Mulai dari v2.1.198, permintaan perangkuman mewarisi konfigurasi [extended thinking](/docs/id/model-config#extended-thinking) sesi Anda, sehingga ia bernalar dengan pemikiran diaktifkan ketika sesi Anda memilikinya diaktifkan dan tetap mati sebaliknya. Pemikiran hanya mempengaruhi cara ringkasan diproduksi; pengaturan sesi Anda tidak berubah setelahnya. Apa yang terjadi pada setiap jenis konten tergantung pada cara konten tersebut dimuat:

1599 1599 

1600| Mekanisme | Setelah pemadatan |1600| Mekanisme | Setelah pemadatan |

1601| :---------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------- |1601| :-------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------- |

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

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

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


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

1608| File yang dibaca atau diedit Claude | Claude Code membaca ulang hingga lima, yang paling baru dimodifikasi terlebih dahulu |1608| File yang dibaca atau diedit Claude | Claude Code membaca ulang hingga lima, yang paling baru dimodifikasi terlebih dahulu |

1609| Badan skill yang dipanggil | Disuntikkan kembali, dibatasi pada 5.000 token per skill dan 25.000 token total; yang tertua dijatuhkan terlebih dahulu |1609| Badan skill yang dipanggil | Disuntikkan kembali, dibatasi pada 5.000 token per skill dan 25.000 token total; yang tertua dijatuhkan terlebih dahulu |

1610| [Background commands](/docs/id/interactive-mode#background-bash-commands) dan background [subagents](/docs/id/sub-agents#run-subagents-in-foreground-or-background) | Terus berjalan. Claude Code mengingatkan Claude yang mana yang masih berjalan sehingga tidak memulai duplikat |

1610| Konteks yang ditambahkan hooks sebelumnya | Dirangkum dengan sisa percakapan |1611| Konteks yang ditambahkan hooks sebelumnya | Dirangkum dengan sisa percakapan |

1611| [SessionStart hooks](/docs/id/hooks-guide#re-inject-context-after-compaction) yang cocok dengan sumber `compact` | Claude Code menjalankannya dan menambahkan output mereka ke konteks yang dipadatkan |1612| [SessionStart hooks](/docs/id/hooks-guide#re-inject-context-after-compaction) yang cocok dengan sumber `compact` | Claude Code menjalankannya dan menambahkan output mereka ke konteks yang dipadatkan |

1612 1613 

1613Aturan dengan cakupan jalur dan file CLAUDE.md bersarang dimuat ke dalam riwayat pesan ketika file pemicunya dibaca, sehingga pemadatan merangkum mereka bersama dengan semua yang lain. Segera setelah pemadatan, Claude Code membaca ulang hingga lima file yang telah dibaca atau diedit Claude dalam sesi, memilih yang dimodifikasi paling baru, dan memuat ulang aturan dan file CLAUDE.md bersarang yang berlaku untuk file tersebut. File yang lebih dari 5.000 token kembali sebagai referensi jalur tanpa kontennya, ditampilkan sebagai `Referenced file` bukan `Read`. Aturannya masih dimuat ulang. Jika aturan harus bertahan di seluruh pemadatan, hapus frontmatter `paths:` atau pindahkan ke CLAUDE.md akar proyek.1614Segera setelah pemadatan, Claude Code membaca ulang hingga lima file yang telah dibaca atau diedit Claude dalam sesi, memilih yang dimodifikasi paling baru. File yang lebih dari 5.000 token kembali sebagai referensi jalur tanpa kontennya, ditampilkan sebagai `Referenced file` bukan `Read`.

1615 

1616Aturan dengan cakupan jalur dan file CLAUDE.md bersarang dimuat ke dalam riwayat pesan ketika file pemicunya dibaca, sehingga pemadatan merangkum mereka bersama dengan semua yang lain. Jika aturan harus bertahan di seluruh pemadatan, hapus frontmatter `paths:` atau pindahkan ke CLAUDE.md akar proyek.

1614 1617 

1615Badan skill disuntikkan kembali setelah pemadatan, tetapi skill besar dipotong agar sesuai dengan batas per-skill, dan skill yang paling lama dipanggil dijatuhkan setelah anggaran total terlampaui. Pemotongan menjaga awal file, jadi letakkan instruksi paling penting di dekat bagian atas `SKILL.md`.1618Badan skill disuntikkan kembali setelah pemadatan, tetapi skill besar dipotong agar sesuai dengan batas per-skill, dan skill yang paling lama dipanggil dijatuhkan setelah anggaran total terlampaui. Pemotongan menjaga awal file, jadi letakkan instruksi paling penting di dekat bagian atas `SKILL.md`.

1616 1619 

Details

10 10 

11`CLAUDE_CODE_PROCESS_WRAPPER` memulai setiap proses yang diluncurkan Claude Code dari binernya sendiri melalui peluncur Anda: layanan latar belakang, setiap sesi yang dihosting dalam [tampilan agen](/docs/id/agent-view), dan peluncuran ulang Claude Code setelah pembaruan. Atur ke jalur absolut peluncur Anda, dan Claude Code menjalankan peluncur dengan perintah Claude Code sebagai argumennya.11`CLAUDE_CODE_PROCESS_WRAPPER` memulai setiap proses yang diluncurkan Claude Code dari binernya sendiri melalui peluncur Anda: layanan latar belakang, setiap sesi yang dihosting dalam [tampilan agen](/docs/id/agent-view), dan peluncuran ulang Claude Code setelah pembaruan. Atur ke jalur absolut peluncur Anda, dan Claude Code menjalankan peluncur dengan perintah Claude Code sebagai argumennya.

12 12 

13Peluncur yang membungkus perintah `claude` pada `PATH` Anda tidak dapat menjangkau proses-proses ini, karena mereka dimulai dari jalur langsung biner tanpa mencari `claude`.13Peluncur yang membungkus perintah `claude` pada `PATH` Anda tidak dapat menjangkau layanan latar belakang atau sesi yang dihosting, karena mereka dimulai dari jalur langsung biner tanpa mencari `claude`.

14 14 

15<Note>15<Note>

16 `CLAUDE_CODE_PROCESS_WRAPPER` memerlukan Claude Code v2.1.208 atau lebih baru. Versi sebelumnya mengabaikan variabel dan memulai setiap proses tanpa pembungkus. Pengaturan [`processWrapper`](/docs/id/settings-reference#processwrapper) yang setara memerlukan v2.1.210 atau lebih baru. Versi sebelumnya mengabaikannya sebagai kunci yang tidak dikenal, tidak menerapkan peluncur, dan tidak melaporkan kesalahan.16 `CLAUDE_CODE_PROCESS_WRAPPER` memerlukan Claude Code v2.1.208 atau lebih baru. Versi sebelumnya mengabaikan variabel dan memulai setiap proses tanpa pembungkus. Pengaturan [`processWrapper`](/docs/id/settings-reference#processwrapper) yang setara memerlukan v2.1.210 atau lebih baru. Versi sebelumnya mengabaikannya sebagai kunci yang tidak dikenal, tidak menerapkan peluncur, dan tidak melaporkan kesalahan.


40Proses berikut tidak dimulai melalui launcher:40Proses berikut tidak dimulai melalui launcher:

41 41 

42* Sebuah [layanan latar belakang yang terpasang](/docs/id/agent-view#the-supervisor-process) yang unitnya ditulis sebelum launcher dikonfigurasi: `launchd` atau `systemd` memulai proses itu dari file unitnya. `/status` dan `claude daemon status` memperingatkan saat layanan yang berjalan dan launcher yang dikonfigurasi tidak cocok, dan sesi yang dimulai layanan masih dimulai melalui launcher setelah layanan dimulai ulang dengan variabel di pengaturannya.42* Sebuah [layanan latar belakang yang terpasang](/docs/id/agent-view#the-supervisor-process) yang unitnya ditulis sebelum launcher dikonfigurasi: `launchd` atau `systemd` memulai proses itu dari file unitnya. `/status` dan `claude daemon status` memperingatkan saat layanan yang berjalan dan launcher yang dikonfigurasi tidak cocok, dan sesi yang dimulai layanan masih dimulai melalui launcher setelah layanan dimulai ulang dengan variabel di pengaturannya.

43* Sesi yang Anda mulai sendiri di terminal, yang berjalan sesuai cara Anda menjalankannya. Untuk mencakup sesi ini, letakkan skrip bernama `claude` di direktori lebih awal di `PATH` yang menjalankan launcher Anda dengan biner asli; jangan ganti symlink yang dikelola. Self-spawn tidak berkonsultasi dengan `PATH`, jadi dua launcher tidak pernah bertumpuk.43* Sesi yang Anda mulai sendiri di terminal, yang berjalan sesuai cara Anda menjalankannya. Untuk mencakup sesi ini, letakkan skrip bernama `claude` di direktori lebih awal di `PATH` yang menjalankan launcher Anda dengan biner asli; jangan ganti symlink yang dikelola. Layanan latar belakang dan sesinya dimulai tanpa pencarian `PATH`, jadi dua launcher tidak bertumpuk di sana.

44* Proses pertama dari deep link `claude-cli://`, yang dimulai langsung oleh penanganan protokol sistem operasi. Semua yang dimulai sesi itu di latar belakang setelahnya berjalan melalui launcher. Untuk menutup jalur ini sepenuhnya, [cegah pendaftaran penanganan](/docs/id/deep-links#registration-and-supported-platforms) dengan pengaturan `disableDeepLinkRegistration`.44* Proses pertama dari deep link `claude-cli://`, yang dimulai langsung oleh penanganan protokol sistem operasi. Semua yang dimulai sesi itu di latar belakang setelahnya berjalan melalui launcher. Untuk menutup jalur ini sepenuhnya, [cegah pendaftaran penanganan](/docs/id/deep-links#registration-and-supported-platforms) dengan pengaturan `disableDeepLinkRegistration`.

45* Peluncuran kembali yang dilakukan `--worktree` dikombinasikan dengan `--tmux`: multiplexer terminal memulai pane itu, bukan biner Claude Code.45* Peluncuran kembali yang dilakukan `--worktree` dikombinasikan dengan `--tmux`: multiplexer terminal memulai pane itu, bukan biner Claude Code.

46* Host native-messaging yang didaftarkan oleh [Claude in Chrome](/docs/id/chrome): browser memulainya, bukan biner Claude Code.46* Host native-messaging yang didaftarkan oleh [Claude in Chrome](/docs/id/chrome): browser memulainya, bukan biner Claude Code.

costs.md +1 −1

Details

146 </Step>146 </Step>

147 147 

148 <Step title="Tulis pengaturannya">148 <Step title="Tulis pengaturannya">

149 Atur `multiplier` untuk diskon persentase datar dari harga daftar, daftarkan empat tarif per-token setiap model di bawah `overrides`, atau lakukan keduanya. Entri [`modelPricing`](/docs/id/settings-reference#modelpricing) memiliki bentuk dan contoh siap tempel.149 Atur `multiplier` di bawah 1 untuk diskon datar atau di atas 1 untuk markup, daftarkan empat tarif per-token setiap model di bawah `overrides`, atau lakukan keduanya. Markup memerlukan Claude Code v2.1.271 atau lebih baru. Entri [`modelPricing`](/docs/id/settings-reference#modelpricing) memiliki bentuk dan contoh siap tempel.

150 </Step>150 </Step>

151 151 

152 <Step title="Terapkan melalui pengaturan terkelola">152 <Step title="Terapkan melalui pengaturan terkelola">

Details

240 240 

241Di luar mengedit file pengaturan, Anda dapat memilih nilai dalam baris `/config` **Messages from your other sessions**. Claude Code menulis nilai yang Anda pilih ke pengaturan pengguna Anda. Baris memerlukan Claude Code v2.1.232 atau lebih baru dan tidak muncul saat pengaturan terkelola atau bendera `--settings` menetapkan kunci, karena nilai pengaturan pengguna tidak akan berlaku kemudian. Claude Code menolak shorthand `/config crossSessionInbound=value` untuk kunci ini.241Di luar mengedit file pengaturan, Anda dapat memilih nilai dalam baris `/config` **Messages from your other sessions**. Claude Code menulis nilai yang Anda pilih ke pengaturan pengguna Anda. Baris memerlukan Claude Code v2.1.232 atau lebih baru dan tidak muncul saat pengaturan terkelola atau bendera `--settings` menetapkan kunci, karena nilai pengaturan pengguna tidak akan berlaku kemudian. Claude Code menolak shorthand `/config crossSessionInbound=value` untuk kunci ini.

242 242 

243Untuk melihat nilai mana yang berlaku, ikuti aturan prioritas `crossSessionInbound` dalam [referensi pengaturan](/docs/id/settings-reference#crosssessioninbound). Ketika tidak ada nilai yang berlaku, Claude Code memutuskan per pesan dari mode izin dua sesi. Ini mengelompokkan sesi yang [melewati prompt izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) ke dalam satu kelas, dan setiap sesi lain ke kelas lain. Plan mode dihitung sebagai melewati dalam sesi dengan izin bypass tersedia, dan [auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), `acceptEdits`, dan `dontAsk` dihitung sebagai prompting:243Untuk melihat nilai mana yang berlaku, ikuti aturan prioritas `crossSessionInbound` dalam [referensi pengaturan](/docs/id/settings-reference#crosssessioninbound).

244 

245Ketika tidak ada nilai yang berlaku, Claude Code memutuskan per pesan dari mode izin dua sesi. Ini mengelompokkan sesi yang [melewati prompt izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) ke dalam satu kelas, dan setiap sesi lain ke kelas lain. Plan mode dihitung sebagai melewati dalam sesi terminal interaktif dengan izin bypass tersedia, dan [auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), `acceptEdits`, dan `dontAsk` dihitung sebagai prompting:

244 246 

245* **Sesi penerima meminta izin**: Claude Code mengirimkan setiap pesan. Ini menahan satu untuk persetujuan Anda hanya ketika sesi pengirim mengidentifikasi dirinya sebagai melewati prompt izin.247* **Sesi penerima meminta izin**: Claude Code mengirimkan setiap pesan. Ini menahan satu untuk persetujuan Anda hanya ketika sesi pengirim mengidentifikasi dirinya sebagai melewati prompt izin.

246* **Sesi penerima melewati prompt izin**: Claude Code menahan setiap pesan untuk persetujuan Anda. Ini mengirimkan satu hanya ketika sesi pengirim juga mengidentifikasi dirinya sebagai melewati.248* **Sesi penerima melewati prompt izin**: Claude Code menahan setiap pesan untuk persetujuan Anda. Ini mengirimkan satu hanya ketika sesi pengirim juga mengidentifikasi dirinya sebagai melewati.


254* Jika kelas mode izin sesi ini berubah saat pesan ditahan, Claude Code menerapkan kembali aturan inbound, mengirimkan pesan yang sekarang diterima, dan menunjukkan pemberitahuan.256* Jika kelas mode izin sesi ini berubah saat pesan ditahan, Claude Code menerapkan kembali aturan inbound, mengirimkan pesan yang sekarang diterima, dan menunjukkan pemberitahuan.

255* Jika perubahan pengaturan membuat `refuse` berlaku saat pesan ditahan, Claude Code menjatuhkan setiap pesan yang ditahan dan melaporkan penolakan ke setiap pengirim yang dapat dijangkaunya.257* Jika perubahan pengaturan membuat `refuse` berlaku saat pesan ditahan, Claude Code menjatuhkan setiap pesan yang ditahan dan melaporkan penolakan ke setiap pengirim yang dapat dijangkaunya.

256 258 

257Ketika pengirim adalah sesi interaktif di mesin yang sama, Claude Code menunjukkan pemberitahuan di sana ketika penerima menahan pesan, dan tindak lanjut ketika penerima kemudian mengirimkan, menolak, atau kedaluwarsa. Jika penerima menolaknya, Claude Code menunjukkan pemberitahuan di sana bahwa penerima tidak menerima pesan cross-session dan memberi tahu Claude pengirim untuk tidak menunggu atau mengirim ulang.259Ketika pengirim adalah sesi di mesin yang sama, Claude Code mengirimkan pemberitahuan kembali ke sana ketika penerima menahan pesan, dan tindak lanjut ketika penerima kemudian mengirimkan, menolak, atau kedaluwarsa. Pemberitahuan mencapai Claude pengirim, jadi tahu tidak perlu terus menunggu pesan yang sesi lain belum baca.

260 

261Dalam sesi pengirim interaktif, pemberitahuan muncul dalam transkrip. Pengirim [`claude -p`](/docs/id/headless) menerima dalam [streamed output](/docs/id/headless#stream-responses) sebagai [informational `system` message](/docs/id/agent-sdk/typescript#sdkinformationalmessage). Pemberitahuan ke pengirim `claude -p` memerlukan Claude Code v2.1.271 atau lebih baru.

262 

263Jika penerima menolak pesan, pemberitahuan pengirim mengatakan penerima tidak menerima pesan cross-session dan memberi tahu Claude pengirim untuk tidak menunggu atau mengirim ulang.

258 264 

259Claude Code menahan paling banyak 100 pesan, terpisah dari antrian pengiriman, dan melampaui itu menjatuhkan yang tertua.265Claude Code menahan paling banyak 100 pesan, terpisah dari antrian pengiriman, dan melampaui itu menjatuhkan yang tertua.

260 266 

data-usage.md +1 −1

Details

108 Eksekusi cloud: Alur data dan dependensi108 Eksekusi cloud: Alur data dan dependensi

109</h3>109</h3>

110 110 

111Saat menggunakan [Claude Code di web](/docs/id/claude-code-on-the-web), sesi berjalan di mesin virtual yang dikelola Anthropic secara default alih-alih secara lokal. Sesi yang organisasi Anda arahkan ke [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) berjalan pada infrastruktur yang Anda kontrol; untuk apa yang tetap berada di mesin Anda dan apa yang masih pergi ke Anthropic, lihat [Apa yang tetap berada di infrastruktur Anda](/docs/id/self-hosted-environments#what-stays-on-your-infrastructure). Dalam sesi cloud yang di-host Anthropic:111[Sesi cloud](/docs/id/claude-code-on-the-web) berjalan di mesin virtual yang dikelola Anthropic secara default alih-alih secara lokal. Sesi yang organisasi Anda arahkan ke [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) berjalan pada infrastruktur yang Anda kontrol; untuk apa yang tetap berada di mesin Anda dan apa yang masih pergi ke Anthropic, lihat [Apa yang tetap berada di infrastruktur Anda](/docs/id/self-hosted-environments#what-stays-on-your-infrastructure). Dalam sesi cloud yang di-host Anthropic:

112 112 

113* **Penyimpanan kode dan data:** Repositori Anda diklon ke VM terisolasi. Kode dan data sesi tunduk pada kebijakan retensi dan penggunaan untuk jenis akun Anda (lihat bagian Retensi data di atas)113* **Penyimpanan kode dan data:** Repositori Anda diklon ke VM terisolasi. Kode dan data sesi tunduk pada kebijakan retensi dan penggunaan untuk jenis akun Anda (lihat bagian Retensi data di atas)

114* **Kredensial:** Autentikasi GitHub ditangani melalui proxy aman; kredensial GitHub Anda tidak pernah memasuki sandbox114* **Kredensial:** Autentikasi GitHub ditangani melalui proxy aman; kredensial GitHub Anda tidak pernah memasuki sandbox

Details

105Sebagian besar kejutan konfigurasi dapat dilacak kembali ke serangkaian kecil aturan lokasi dan sintaks. Periksa ini sebelum menganggap bug:105Sebagian besar kejutan konfigurasi dapat dilacak kembali ke serangkaian kecil aturan lokasi dan sintaks. Periksa ini sebelum menganggap bug:

106 106 

107| Gejala | Penyebab | Perbaikan |107| Gejala | Penyebab | Perbaikan |

108| :---------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |108| :---------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

109| Hook tidak pernah aktif | `matcher` adalah array JSON bukan string | Gunakan string tunggal dengan `\|` untuk mencocokkan beberapa alat, misalnya `"Edit\|Write"`. Lihat [pola matcher](/docs/id/hooks#matcher-patterns). |109| Hook tidak pernah aktif | `matcher` adalah array JSON bukan string | Gunakan string tunggal dengan `\|` untuk mencocokkan beberapa alat, misalnya `"Edit\|Write"`. Lihat [pola matcher](/docs/id/hooks#matcher-patterns). |

110| Hook tidak pernah aktif | `matcher` menggunakan `,` sebagai pemisah pada versi sebelum v2.1.191 | Claude Code v2.1.191 atau lebih baru memperlakukan `,` sebagai pemisah daftar seperti `\|`. Versi sebelumnya mengevaluasi koma sebagai karakter literal, jadi `"Edit,Write"` tidak cocok dengan apa pun. Gunakan `\|` sebagai gantinya, atau tingkatkan Claude Code. |110| Hook tidak pernah aktif | `matcher` menggunakan `,` sebagai pemisah pada versi sebelum v2.1.191 | Claude Code v2.1.191 atau lebih baru memperlakukan `,` sebagai pemisah daftar seperti `\|`. Versi sebelumnya mengevaluasi koma sebagai karakter literal, jadi `"Edit,Write"` tidak cocok dengan apa pun. Gunakan `\|` sebagai gantinya, atau tingkatkan Claude Code. |

111| Hook tidak pernah aktif | Nilai `matcher` adalah huruf kecil, misalnya `"bash"` | Pencocokan peka huruf besar-kecil. Nama alat dikapitalisasi: `Bash`, `Edit`, `Write`, `Read`. |111| Hook tidak pernah aktif | Nilai `matcher` adalah huruf kecil, misalnya `"bash"` | Pencocokan peka huruf besar-kecil. Nama alat dikapitalisasi: `Bash`, `Edit`, `Write`, `Read`. |


115| Skill tidak muncul di `/skills` | File skill berada di `.claude/skills/name.md` bukan dalam folder | Gunakan folder dengan `SKILL.md` di dalamnya: `.claude/skills/name/SKILL.md`. |115| Skill tidak muncul di `/skills` | File skill berada di `.claude/skills/name.md` bukan dalam folder | Gunakan folder dengan `SKILL.md` di dalamnya: `.claude/skills/name/SKILL.md`. |

116| Skill muncul di `/skills` tetapi Claude tidak pernah menginvokasinya | Skill memiliki `disable-model-invocation: true` di frontmatter-nya, atau deskripsinya tidak cocok dengan cara Anda merumuskan permintaan | Periksa lencana di `/skills`: label "user-only" berarti Claude tidak akan memicunya sendiri. Lihat [skill invocation](/docs/id/skills). |116| Skill muncul di `/skills` tetapi Claude tidak pernah menginvokasinya | Skill memiliki `disable-model-invocation: true` di frontmatter-nya, atau deskripsinya tidak cocok dengan cara Anda merumuskan permintaan | Periksa lencana di `/skills`: label "user-only" berarti Claude tidak akan memicunya sendiri. Lihat [skill invocation](/docs/id/skills). |

117| Instruksi `CLAUDE.md` subdirektori tampak diabaikan | File subdirektori dimuat sesuai permintaan, bukan pada awal sesi | Mereka dimuat ketika Claude membaca file di direktori itu dengan alat Read, bukan saat peluncuran dan bukan saat menulis atau membuat file di sana. Lihat [bagaimana file CLAUDE.md dimuat](/docs/id/memory#how-claude-md-files-load). |117| Instruksi `CLAUDE.md` subdirektori tampak diabaikan | File subdirektori dimuat sesuai permintaan, bukan pada awal sesi | Mereka dimuat ketika Claude membaca file di direktori itu dengan alat Read, bukan saat peluncuran dan bukan saat menulis atau membuat file di sana. Lihat [bagaimana file CLAUDE.md dimuat](/docs/id/memory#how-claude-md-files-load). |

118| Subagent mengabaikan instruksi `CLAUDE.md` | Agen Explore dan Plan bawaan melewati `CLAUDE.md`. Subagent kustom memuatnya dengan cara yang sama seperti percakapan utama | Untuk Explore atau Plan, nyatakan kembali instruksi dalam prompt delegasi Anda. Untuk subagent kustom, letakkan instruksi penting di badan file agen, yang menjadi system prompt agen. Lihat [apa yang dimuat saat startup](/docs/id/sub-agents#what-loads-at-startup). |118| Subagent mengabaikan instruksi `CLAUDE.md` | Agen Explore dan Plan bawaan melewati `CLAUDE.md`. Subagent kustom memuatnya dengan cara yang sama seperti percakapan utama, kecuali definisinya menetapkan [`omitClaudeMd`](/docs/id/sub-agents#supported-frontmatter-fields) | Untuk Explore atau Plan, nyatakan kembali instruksi dalam prompt delegasi Anda. Untuk subagent yang menetapkan `omitClaudeMd`, hapus bidang tersebut. Untuk subagent kustom lainnya, letakkan instruksi penting di badan file agen, yang menjadi system prompt agen. Lihat [apa yang dimuat saat startup](/docs/id/sub-agents#what-loads-at-startup). |

119| Logika pembersihan tidak pernah berjalan di akhir sesi | Tidak ada hook `SessionEnd` yang dikonfigurasi | Tambahkan hook `SessionEnd` di `settings.json`. Lihat [daftar acara hook](/docs/id/hooks#hook-events). |119| Logika pembersihan tidak pernah berjalan di akhir sesi | Tidak ada hook `SessionEnd` yang dikonfigurasi | Tambahkan hook `SessionEnd` di `settings.json`. Lihat [daftar acara hook](/docs/id/hooks#hook-events). |

120| Server MCP di `.mcp.json` tidak pernah dimuat | File berada di bawah `.claude/`, atau servernya berada di bawah kunci `servers` tingkat atas, seperti dalam `mcp.json` VS Code, bukan `mcpServers` | Konfigurasi MCP proyek berada di akar repositori sebagai `.mcp.json`, bukan di dalam `.claude/`, dengan server di bawah kunci `mcpServers`. Lihat [konfigurasi MCP](/docs/id/mcp). |120| Server MCP di `.mcp.json` tidak pernah dimuat | File berada di bawah `.claude/`, atau servernya berada di bawah kunci `servers` tingkat atas, seperti dalam `mcp.json` VS Code, bukan `mcpServers` | Konfigurasi MCP proyek berada di akar repositori sebagai `.mcp.json`, bukan di dalam `.claude/`, dengan server di bawah kunci `mcpServers`. Lihat [konfigurasi MCP](/docs/id/mcp). |

121| Server MCP ditambahkan di bawah `mcpServers` di `settings.json` tidak pernah muncul | `settings.json` tidak membaca kunci `mcpServers` | Tentukan server proyek di `.mcp.json` di akar repositori, atau jalankan `claude mcp add --scope user` untuk server berscopepengguna. Lihat [konfigurasi MCP](/docs/id/mcp). |121| Server MCP ditambahkan di bawah `mcpServers` di `settings.json` tidak pernah muncul | `settings.json` tidak membaca kunci `mcpServers` | Tentukan server proyek di `.mcp.json` di akar repositori, atau jalankan `claude mcp add --scope user` untuk server berscopepengguna. Lihat [konfigurasi MCP](/docs/id/mcp). |

desktop.md +29 −19

Details

36* Biarkan Claude [memeriksa, mengirim pesan, atau mengarsipkan sesi lain Anda](#work-across-sessions)36* Biarkan Claude [memeriksa, mengirim pesan, atau mengarsipkan sesi lain Anda](#work-across-sessions)

37* [Menghubungkan alat eksternal](#connect-external-tools) seperti GitHub, Slack, dan Linear37* [Menghubungkan alat eksternal](#connect-external-tools) seperti GitHub, Slack, dan Linear

38* Biarkan Claude [membuka aplikasi dan mengontrol layar Anda](#let-claude-use-your-computer)38* Biarkan Claude [membuka aplikasi dan mengontrol layar Anda](#let-claude-use-your-computer)

39* Jalankan di mesin Anda, di [cloud](#run-long-running-tasks-remotely), atau melalui [SSH](#ssh-sessions)39* Jalankan di mesin Anda, di [cloud](#run-long-running-tasks-in-the-cloud), atau melalui [SSH](#ssh-sessions)

40 40 

41Untuk [pekerjaan berulang terjadwal](/docs/id/desktop-scheduled-tasks), [pintasan keyboard](#keyboard-shortcuts), atau [mengirim tugas dari ponsel Anda](#sessions-from-dispatch), lihat halaman dan bagian yang ditautkan. Jika Anda sudah menggunakan CLI berbasis terminal, lihat [perbandingan CLI](#coming-from-the-cli) untuk apa yang berlanjut.41Untuk [pekerjaan berulang terjadwal](/docs/id/desktop-scheduled-tasks), [pintasan keyboard](#keyboard-shortcuts), atau [mengirim tugas dari ponsel Anda](#sessions-from-dispatch), lihat halaman dan bagian yang ditautkan. Jika Anda sudah menggunakan CLI berbasis terminal, lihat [perbandingan CLI](#coming-from-the-cli) untuk apa yang berlanjut.

42 42 


47Sebelum Anda mengirim pesan pertama, konfigurasikan empat hal di area prompt:47Sebelum Anda mengirim pesan pertama, konfigurasikan empat hal di area prompt:

48 48 

49* **Environment**: pilih di mana Claude berjalan. Pilih **Local** untuk mesin Anda, **Cloud** untuk [sesi cloud](#cloud-sessions) yang berlanjut setelah Anda menutup aplikasi, [**koneksi SSH**](#ssh-sessions) untuk mesin jarak jauh yang Anda kelola, atau di Windows [**distribusi WSL**](/docs/id/desktop-wsl). Lihat [konfigurasi lingkungan](#environment-configuration).49* **Environment**: pilih di mana Claude berjalan. Pilih **Local** untuk mesin Anda, **Cloud** untuk [sesi cloud](#cloud-sessions) yang berlanjut setelah Anda menutup aplikasi, [**koneksi SSH**](#ssh-sessions) untuk mesin jarak jauh yang Anda kelola, atau di Windows [**distribusi WSL**](/docs/id/desktop-wsl). Lihat [konfigurasi lingkungan](#environment-configuration).

50* **Project folder**: pilih folder atau repositori tempat Claude bekerja. Untuk sesi cloud, Anda dapat menambahkan [beberapa repositori](#run-long-running-tasks-remotely).50* **Project folder**: pilih folder atau repositori tempat Claude bekerja. Untuk sesi cloud, Anda dapat menambahkan [beberapa repositori](#run-long-running-tasks-in-the-cloud).

51* **Model**: pilih [model](/docs/id/model-config#available-models) dari dropdown di sebelah tombol kirim. Anda dapat mengubah ini selama sesi.51* **Model**: pilih [model](/docs/id/model-config#available-models) dari dropdown di sebelah tombol kirim. Anda dapat mengubah ini selama sesi.

52* **Permission mode**: pilih berapa banyak otonomi yang dimiliki Claude dari [pemilih mode](#choose-a-permission-mode). Anda dapat mengubah ini selama sesi.52* **Permission mode**: pilih berapa banyak otonomi yang dimiliki Claude dari [pemilih mode](#choose-a-permission-mode). Anda dapat mengubah ini selama sesi.

53 53 


207 207 

208Tab Code dibangun di sekitar pane yang dapat Anda atur dalam tata letak apa pun: chat, diff, browser, terminal, file, plan, tasks, dan subagent, bersama dengan [iOS Simulator](/docs/id/desktop-ios-simulator) di macOS. Seret pane dengan headernya untuk memposisikan ulang, atau seret tepi pane untuk mengubah ukurannya. Tekan **Cmd+\\** di macOS atau **Ctrl+\\** di Windows untuk menutup pane yang fokus. Buka pane tambahan dari menu **Views** di toolbar sesi.208Tab Code dibangun di sekitar pane yang dapat Anda atur dalam tata letak apa pun: chat, diff, browser, terminal, file, plan, tasks, dan subagent, bersama dengan [iOS Simulator](/docs/id/desktop-ios-simulator) di macOS. Seret pane dengan headernya untuk memposisikan ulang, atau seret tepi pane untuk mengubah ukurannya. Tekan **Cmd+\\** di macOS atau **Ctrl+\\** di Windows untuk menutup pane yang fokus. Buka pane tambahan dari menu **Views** di toolbar sesi.

209 209 

210Untuk bekerja di seluruh layar, keluarkan pane seperti diff atau terminal ke jendela tersendiri, dan doknya kembali ketika Anda selesai. Claude terus bekerja di jendela utama.

211 

210<Note>212<Note>

211 Tata letak pane, terminal, editor file, dan view modes di bagian ini memerlukan Claude Desktop v1.2581.0 atau lebih baru. Buka **Claude → Check for Updates** di macOS atau **Help → Check for Updates** di Windows untuk memperbarui.213 Tata letak pane, terminal, editor file, dan view modes di bagian ini memerlukan Claude Desktop v1.2581.0 atau lebih baru. Buka **Claude → Check for Updates** di macOS atau **Help → Check for Updates** di Windows untuk memperbarui.

212</Note>214</Note>


240 Alihkan view modes242 Alihkan view modes

241</h3>243</h3>

242 244 

243View modes mengontrol berapa banyak detail yang muncul di transkrip chat. Alihkan mode dari dropdown **Transcript view** di sebelah tombol kirim, atau tekan **Ctrl+O** di macOS atau Windows untuk bersiklus melaluinya.245View modes mengontrol berapa banyak detail yang muncul di transkrip chat. Alihkan mode dari dropdown **Transcript view** di sebelah tombol kirim, atau tekan **Ctrl+O** di macOS atau Windows untuk bersiklus melaluinya. Mode Thinking muncul di dropdown hanya setelah Claude telah menghasilkan thinking di sesi yang Anda lihat.

244 246 

245| Mode | Apa yang ditampilkan |247| Mode | Apa yang ditampilkan |

246| ----------- | ---------------------------------------------------------------------- |248| ------------ | ------------------------------------------------------------------------------------------------ |

247| **Normal** | Tool calls yang diciutkan menjadi ringkasan, dengan respons teks penuh |249| **Normal** | Tool calls yang diciutkan menjadi ringkasan, dengan respons teks penuh |

248| **Verbose** | Setiap tool call, file read, dan langkah perantara yang diambil Claude |250| **Thinking** | Tool calls yang diciutkan menjadi ringkasan, ditambah thinking Claude |

249| **Summary** | Hanya respons final Claude dan perubahan yang dibuatnya |251| **Verbose** | Setiap tool call, file read, dan langkah perantara yang diambil Claude, ditambah thinking Claude |

250 252 

251Gunakan Verbose saat men-debug mengapa Claude mengambil tindakan tertentu. Gunakan Summary ketika Anda menjalankan beberapa sesi dan ingin memindai hasil dengan cepat.253Gunakan Thinking untuk mengikuti penalaran Claude dengan tool calls masih diciutkan. Gunakan Verbose saat men-debug mengapa Claude mengambil tindakan tertentu. Versi Claude Desktop sebelum 1.46388.1 juga mencantumkan mode Summary, dan sesi yang masih diatur ke Summary terbuka di Normal setelah Anda memperbarui.

252 254 

253<h3 id="keyboard-shortcuts">255<h3 id="keyboard-shortcuts">

254 Keyboard shortcuts256 Keyboard shortcuts


296 298 

297Computer use dimatikan secara default. [Aktifkan di Settings](#enable-computer-use) sebelum Claude dapat mengontrol layar Anda. Di macOS, Anda juga perlu memberikan izin Accessibility dan Screen Recording.299Computer use dimatikan secara default. [Aktifkan di Settings](#enable-computer-use) sebelum Claude dapat mengontrol layar Anda. Di macOS, Anda juga perlu memberikan izin Accessibility dan Screen Recording.

298 300 

301Pada macOS, computer use juga dapat berjalan di latar belakang: Claude bekerja di aplikasi yang telah Anda setujui sementara Anda terus bekerja.

302 

299<Warning>303<Warning>

300 Tidak seperti [alat Bash yang disandbox](/docs/id/sandboxing), computer use berjalan di desktop aktual Anda dengan akses ke apa pun yang Anda setujui. Claude memeriksa setiap tindakan dan menandai potensi prompt injection dari konten di layar, tetapi batas kepercayaan berbeda. Lihat [panduan keamanan computer use](https://support.claude.com/en/articles/14128542) untuk praktik terbaik.304 Tidak seperti [alat Bash yang disandbox](/docs/id/sandboxing), computer use berjalan di desktop aktual Anda dengan akses ke apa pun yang Anda setujui. Claude memeriksa setiap tindakan dan menandai potensi prompt injection dari konten di layar, tetapi batas kepercayaan berbeda. Lihat [panduan keamanan computer use](https://support.claude.com/en/articles/14128542) untuk praktik terbaik.

301</Warning>305</Warning>


360Anda dapat mengonfigurasi dua pengaturan di **Settings > General** (di bawah **Desktop app**):364Anda dapat mengonfigurasi dua pengaturan di **Settings > General** (di bawah **Desktop app**):

361 365 

362* **Denied apps**: tambahkan aplikasi di sini untuk menolaknya tanpa meminta. Claude mungkin masih mempengaruhi aplikasi yang ditolak secara tidak langsung melalui tindakan di aplikasi yang diizinkan, tetapi tidak dapat berinteraksi dengan aplikasi yang ditolak secara langsung.366* **Denied apps**: tambahkan aplikasi di sini untuk menolaknya tanpa meminta. Claude mungkin masih mempengaruhi aplikasi yang ditolak secara tidak langsung melalui tindakan di aplikasi yang diizinkan, tetapi tidak dapat berinteraksi dengan aplikasi yang ditolak secara langsung.

363* **Unhide apps when Claude finishes**: saat Claude bekerja, jendela lain Anda disembunyikan sehingga hanya berinteraksi dengan aplikasi yang disetujui. Ketika Claude selesai, jendela yang disembunyikan dipulihkan kecuali Anda mematikan pengaturan ini.367* **Unhide apps when Claude finishes**: saat computer use tidak berjalan di latar belakang, Claude menyembunyikan jendela lain Anda saat bekerja sehingga hanya berinteraksi dengan aplikasi yang disetujui. Ketika Claude selesai, jendela yang disembunyikan dipulihkan kecuali Anda mematikan pengaturan ini.

364 368 

365<h2 id="manage-sessions">369<h2 id="manage-sessions">

366 Kelola sesi370 Kelola sesi


388 392 

389Untuk memeriksa penggunaan konteks, lihat [Check usage](#check-usage). Ketika konteks penuh, Claude secara otomatis merangkum percakapan dan terus bekerja. Anda juga dapat mengetik `/compact` untuk memicu perangkuman lebih awal dan membebaskan ruang konteks. Lihat [jendela konteks](/docs/id/how-claude-code-works#the-context-window) untuk detail tentang cara pemadatan bekerja.393Untuk memeriksa penggunaan konteks, lihat [Check usage](#check-usage). Ketika konteks penuh, Claude secara otomatis merangkum percakapan dan terus bekerja. Anda juga dapat mengetik `/compact` untuk memicu perangkuman lebih awal dan membebaskan ruang konteks. Lihat [jendela konteks](/docs/id/how-claude-code-works#the-context-window) untuk detail tentang cara pemadatan bekerja.

390 394 

391Aplikasi desktop mengirimkan notifikasi OS ketika sesi Code menyelesaikan tugas dan Anda tidak sedang melihat sesi tersebut.395Aplikasi desktop mengirimkan notifikasi OS ketika sesi Code menyelesaikan tugas dan Anda tidak sedang melihat sesi tersebut. Untuk sesi yang termasuk dalam [proyek](/docs/id/claude-projects#see-what-needs-you-in-overview), Anda mendapatkan notifikasi proyek sebagai gantinya.

392 396 

393<h3 id="ask-a-side-question-without-derailing-the-session">397<h3 id="ask-a-side-question-without-derailing-the-session">

394 Tanyakan pertanyaan sampingan tanpa menggoyahkan sesi398 Tanyakan pertanyaan sampingan tanpa menggoyahkan sesi


427 431 

428Claude juga dapat menyarankan sesi baru. Ketika Claude memperhatikan sesuatu yang layak diperbaiki yang berada di luar cakupan tugas saat ini, Claude menawarkan pekerjaan sebagai chip tugas di chat. Klik chip untuk memulai pekerjaan itu di sesi baru dengan worktree-nya sendiri; Claude melanjutkan sesi saat ini Anda tanpa gangguan.432Claude juga dapat menyarankan sesi baru. Ketika Claude memperhatikan sesuatu yang layak diperbaiki yang berada di luar cakupan tugas saat ini, Claude menawarkan pekerjaan sebagai chip tugas di chat. Klik chip untuk memulai pekerjaan itu di sesi baru dengan worktree-nya sendiri; Claude melanjutkan sesi saat ini Anda tanpa gangguan.

429 433 

430<h3 id="run-long-running-tasks-remotely">434<h3 id="run-long-running-tasks-in-the-cloud">

431 Jalankan tugas jangka panjang dari jarak jauh435 Jalankan tugas jangka panjang di cloud

432</h3>436</h3>

433 437 

434Untuk refaktor besar, suite pengujian, migrasi, atau tugas jangka panjang lainnya, pilih **Cloud** alih-alih **Local** saat memulai sesi. Sesi cloud berjalan pada infrastruktur yang dikelola Anthropic secara default dan terus berjalan bahkan jika Anda menutup aplikasi atau mematikan komputer. Periksa kembali kapan saja untuk melihat kemajuan atau mengarahkan Claude ke arah yang berbeda. Anda juga dapat memantau sesi cloud dari [claude.ai/code](https://claude.ai/code) atau [aplikasi Claude mobile](/docs/id/mobile).438Untuk refaktor besar, suite pengujian, migrasi, atau tugas jangka panjang lainnya, pilih **Cloud** alih-alih **Local** saat memulai sesi. Sesi cloud berjalan pada infrastruktur yang dikelola Anthropic secara default dan terus berjalan bahkan jika Anda menutup aplikasi atau mematikan komputer. Periksa kembali kapan saja untuk melihat kemajuan atau mengarahkan Claude ke arah yang berbeda. Anda juga dapat memantau sesi cloud dari [claude.ai/code](https://claude.ai/code) atau [aplikasi Claude mobile](/docs/id/mobile).

435 439 

436Sesi cloud juga mendukung beberapa repositori. Setelah memilih lingkungan cloud, klik tombol **+** di sebelah pil repo untuk menambahkan repositori tambahan ke sesi. Setiap repo mendapatkan pemilih cabang sendiri. Ini berguna untuk tugas yang mencakup beberapa basis kode, seperti memperbarui perpustakaan bersama dan konsumennya.440Sesi cloud juga mendukung beberapa repositori. Setelah memilih lingkungan cloud, klik tombol **+** di sebelah repositori yang dipilih untuk menambahkan repositori tambahan ke sesi. Setiap repo mendapatkan pemilih cabang sendiri. Ini berguna untuk tugas yang mencakup beberapa basis kode, seperti memperbarui perpustakaan bersama dan konsumennya.

437 441 

438Lihat [Claude Code di web](/docs/id/claude-code-on-the-web) untuk informasi lebih lanjut tentang cara kerja sesi cloud.442Lihat [Gunakan Claude Code di cloud](/docs/id/claude-code-on-the-web) untuk informasi lebih lanjut tentang cara kerja sesi cloud. Ketika satu badan pekerjaan memerlukan banyak sesi cloud, pilih **Projects** di sidebar untuk membuat [proyek](/docs/id/claude-projects), di mana Claude memulai dan melacak sesi untuk Anda dari satu percakapan.

439 443 

440<h3 id="continue-in-another-surface">444<h3 id="continue-in-another-surface">

441 Lanjutkan di permukaan lain445 Lanjutkan di permukaan lain


443 447 

444Menu **Continue in**, dapat diakses dari ikon VS Code di kanan bawah toolbar sesi, memungkinkan Anda memindahkan sesi ke permukaan lain:448Menu **Continue in**, dapat diakses dari ikon VS Code di kanan bawah toolbar sesi, memungkinkan Anda memindahkan sesi ke permukaan lain:

445 449 

446* **Claude Code on the Web**: mengirim sesi lokal Anda untuk terus berjalan dari jarak jauh. Desktop mendorong cabang Anda, menghasilkan ringkasan percakapan, dan membuat sesi cloud baru dengan konteks lengkap. Anda kemudian dapat memilih untuk mengarsipkan sesi lokal atau menyimpannya. Ini memerlukan pohon kerja yang bersih, dan tidak tersedia untuk sesi SSH.450* **Claude Code on the Web**: mengirim sesi lokal Anda untuk terus berjalan di cloud. Desktop mendorong cabang Anda, menghasilkan ringkasan percakapan, dan membuat sesi cloud baru dengan konteks lengkap. Anda kemudian dapat memilih untuk mengarsipkan sesi lokal atau menyimpannya. Ini memerlukan pohon kerja yang bersih, dan tidak tersedia untuk sesi SSH.

447* **Your IDE**: membuka proyek Anda di IDE yang didukung di direktori kerja saat ini.451* **Your IDE**: membuka proyek Anda di IDE yang didukung di direktori kerja saat ini.

448 452 

449<h3 id="sessions-from-dispatch">453<h3 id="sessions-from-dispatch">


468 472 

469Hubungkan layanan eksternal, tambahkan alur kerja yang dapat digunakan kembali, sesuaikan perilaku Claude, dan konfigurasikan server pratinjau. Untuk mengelola connectors, skills, dan plugins di satu tempat, klik **Customize** di sidebar. Tab [Cowork](https://claude.com/product/cowork) di aplikasi Desktop bersumber skills, plugins, dan connectors dari konfigurasi Customize ini, yang disinkronkan melalui akun claude.ai Anda, bukan dari direktori `~/.claude` CLI.473Hubungkan layanan eksternal, tambahkan alur kerja yang dapat digunakan kembali, sesuaikan perilaku Claude, dan konfigurasikan server pratinjau. Untuk mengelola connectors, skills, dan plugins di satu tempat, klik **Customize** di sidebar. Tab [Cowork](https://claude.com/product/cowork) di aplikasi Desktop bersumber skills, plugins, dan connectors dari konfigurasi Customize ini, yang disinkronkan melalui akun claude.ai Anda, bukan dari direktori `~/.claude` CLI.

470 474 

475Claude Code juga memuat skills dan plugins yang diaktifkan untuk akun claude.ai Anda dalam sesi terminal di mana Anda masuk dengan akun yang sama. Lihat [Skills synced from claude.ai](/docs/id/skills#how-synced-skills-behave) dan [Plugins synced from claude.ai](/docs/id/plugins-reference#synced-plugins).

476 

471<h3 id="connect-external-tools">477<h3 id="connect-external-tools">

472 Hubungkan alat eksternal478 Hubungkan alat eksternal

473</h3>479</h3>


488 494 

489Anda dapat mengirim perintah saat Claude sedang bekerja, sama seperti pesan lainnya, dan sesi kembali ke idle setelah giliran selesai. Sebelum v2.1.206, perintah yang dikirim di tengah giliran dapat membuat sesi tetap menampilkan sebagai berjalan dan pesan yang Anda kirim setelahnya tidak terkirim.495Anda dapat mengirim perintah saat Claude sedang bekerja, sama seperti pesan lainnya, dan sesi kembali ke idle setelah giliran selesai. Sebelum v2.1.206, perintah yang dikirim di tengah giliran dapat membuat sesi tetap menampilkan sebagai berjalan dan pesan yang Anda kirim setelahnya tidak terkirim.

490 496 

491Personal skills di `~/.claude/skills/` berlaku untuk sesi lokal; sesi [SSH](#ssh-sessions) membaca `~/.claude/skills/` dari direktori home host jarak jauh, bukan dari mesin Anda. Sesi cloud memuat skills yang diaktifkan untuk akun claude.ai Anda sebagai gantinya. Lihat [Skills in Cowork and cloud sessions](/docs/id/skills#skills-in-cowork-and-cloud-sessions).497Sesi lokal memuat personal skills Anda dari `~/.claude/skills/`. Sesi [SSH](#ssh-sessions) membaca `~/.claude/skills/` dari direktori home host jarak jauh, bukan dari mesin Anda.

498 

499Sesi lokal dan cloud juga memuat skills yang diaktifkan untuk akun claude.ai Anda. Sesi cloud memuatnya alih-alih `~/.claude/skills/`, seperti yang dijelaskan dalam [Skills in Cowork and cloud sessions](/docs/id/skills#skills-in-cowork-and-cloud-sessions).

492 500 

493<h3 id="install-plugins">501<h3 id="install-plugins">

494 Instal plugins502 Instal plugins


565| `port` | number | Port yang didengarkan server Anda. Default ke 3000 |573| `port` | number | Port yang didengarkan server Anda. Default ke 3000 |

566| `cwd` | string | Direktori kerja relatif terhadap root proyek Anda. Default ke root proyek. Gunakan `${workspaceFolder}` untuk mereferensikan root proyek secara eksplisit |574| `cwd` | string | Direktori kerja relatif terhadap root proyek Anda. Default ke root proyek. Gunakan `${workspaceFolder}` untuk mereferensikan root proyek secara eksplisit |

567| `env` | object | Variabel lingkungan tambahan sebagai pasangan kunci-nilai, seperti `{ "NODE_ENV": "development" }`. Jangan letakkan rahasia di sini karena file ini dilakukan commit ke repo Anda. Untuk meneruskan rahasia ke dev server Anda, aturlah di [local environment editor](#local-sessions) sebagai gantinya. |575| `env` | object | Variabel lingkungan tambahan sebagai pasangan kunci-nilai, seperti `{ "NODE_ENV": "development" }`. Jangan letakkan rahasia di sini karena file ini dilakukan commit ke repo Anda. Untuk meneruskan rahasia ke dev server Anda, aturlah di [local environment editor](#local-sessions) sebagai gantinya. |

568| `autoPort` | boolean | Cara menangani konflik port. Lihat di bawah |576| `autoPort` | boolean | Cara menangani konflik port. Lihat [Port conflicts](#port-conflicts) |

569| `program` | string | Skrip untuk dijalankan dengan `node`. Lihat [when to use `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |577| `program` | string | Skrip untuk dijalankan dengan `node`. Lihat [when to use `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |

570| `args` | string\[] | Argumen yang dilewatkan ke `program`. Hanya digunakan ketika `program` diatur |578| `args` | string\[] | Argumen yang dilewatkan ke `program`. Hanya digunakan ketika `program` diatur |

571| `url` | string | Alamat yang dibuka pratinjau alih-alih `http://localhost:<port>`. Lihat [open the preview at a specific URL](#open-the-preview-at-a-specific-url) |579| `url` | string | Alamat yang dibuka pratinjau alih-alih `http://localhost:<port>`. Lihat [open the preview at a specific URL](#open-the-preview-at-a-specific-url) |


822Pengaturan ini dikonfigurasi melalui [konsol pengaturan admin](https://claude.ai/admin-settings/claude-code):830Pengaturan ini dikonfigurasi melalui [konsol pengaturan admin](https://claude.ai/admin-settings/claude-code):

823 831 

824* **Code in the desktop**: kontrol apakah pengguna di organisasi Anda dapat mengakses Claude Code di aplikasi desktop832* **Code in the desktop**: kontrol apakah pengguna di organisasi Anda dapat mengakses Claude Code di aplikasi desktop

825* **Code in the web**: aktifkan atau nonaktifkan [web sessions](/docs/id/claude-code-on-the-web) untuk organisasi Anda833* **Code in the web**: aktifkan atau nonaktifkan [cloud sessions](/docs/id/claude-code-on-the-web) untuk organisasi Anda

826* **Remote Control**: aktifkan atau nonaktifkan [Remote Control](/docs/id/remote-control) untuk organisasi Anda834* **Remote Control**: aktifkan atau nonaktifkan [Remote Control](/docs/id/remote-control) untuk organisasi Anda

827* **Disable Bypass permissions mode**: cegah pengguna di organisasi Anda dari mengaktifkan bypass permissions mode835* **Disable Bypass permissions mode**: cegah pengguna di organisasi Anda dari mengaktifkan bypass permissions mode

828 836 


949 Datang dari CLI?957 Datang dari CLI?

950</h2>958</h2>

951 959 

952Jika Anda sudah menggunakan CLI Claude Code, Desktop menjalankan mesin yang sama dengan antarmuka grafis. Anda dapat menjalankan keduanya secara bersamaan di mesin yang sama, bahkan di proyek yang sama. Masing-masing mempertahankan riwayat sesi terpisah, tetapi mereka berbagi konfigurasi dan memori proyek melalui file CLAUDE.md.960Jika Anda sudah menggunakan CLI Claude Code, Desktop menjalankan mesin yang sama dengan antarmuka grafis. Anda dapat menjalankan keduanya secara bersamaan di mesin yang sama, bahkan di proyek yang sama. Masing-masing mempertahankan daftar sesi terpisah, dan Anda dapat membawa sesi CLI ke Desktop. Mereka berbagi konfigurasi dan memori proyek melalui file CLAUDE.md.

953 961 

954Untuk memindahkan sesi CLI ke Desktop, jalankan `/desktop` di terminal. Claude menyimpan sesi Anda dan membukanya di aplikasi desktop, kemudian keluar dari CLI. Perintah ini tersedia di macOS dan Windows x64 ketika Anda masuk dengan langganan Claude. Perintah ini tidak tersedia dengan autentikasi kunci API atau di Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry.962Untuk memindahkan sesi CLI ke Desktop, jalankan `/desktop` di terminal. Claude menyimpan sesi Anda dan membukanya di aplikasi desktop, kemudian keluar dari CLI. Perintah ini tersedia di macOS dan Windows x64 ketika Anda masuk dengan langganan Claude. Perintah ini tidak tersedia dengan autentikasi kunci API atau di Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry.

955 963 

964Untuk mengambil sesi CLI dari dalam Desktop, ketik `/resume` di kotak prompt. Desktop menampilkan daftar sesi yang Anda mulai dari CLI, dan Anda dapat mencarinya berdasarkan judul, folder, atau cabang serta melihat pratinjau di mana masing-masing sesi berhenti. Pilih sesi dan sesi akan berlanjut di aplikasi dengan percakapan dan konteks lengkapnya.

965 

956<Tip>966<Tip>

957 Kapan menggunakan Desktop vs CLI: gunakan Desktop ketika Anda ingin mengelola sesi paralel di satu jendela, mengatur pane berdampingan, atau meninjau perubahan secara visual. Gunakan CLI ketika Anda memerlukan scripting, otomasi, atau lebih suka alur kerja terminal.967 Kapan menggunakan Desktop vs CLI: gunakan Desktop ketika Anda ingin mengelola sesi paralel di satu jendela, mengatur pane berdampingan, atau meninjau perubahan secara visual. Gunakan CLI ketika Anda memerlukan scripting, otomasi, atau lebih suka alur kerja terminal.

958</Tip>968</Tip>


966| CLI | Setara Desktop |976| CLI | Setara Desktop |

967| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |977| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

968| `--model sonnet` | Dropdown model di sebelah tombol kirim |978| `--model sonnet` | Dropdown model di sebelah tombol kirim |

969| `--resume`, `--continue` | Klik sesi di sidebar |979| `--resume`, `--continue` | Klik sesi di sidebar, atau ketik `/resume` di kotak prompt untuk mengambil sesi yang Anda mulai dari CLI |

970| `--permission-mode` | Pemilih mode di sebelah tombol kirim |980| `--permission-mode` | Pemilih mode di sebelah tombol kirim |

971| `--dangerously-skip-permissions` | Bypass permissions mode. Di paket Pro dan Max, aktifkan di Settings → Claude Code → "Allow bypass permissions mode"; di paket Team dan Enterprise, kebijakan organisasi mengontrolnya |981| `--dangerously-skip-permissions` | Bypass permissions mode. Di paket Pro dan Max, aktifkan di Settings → Claude Code → "Allow bypass permissions mode"; di paket Team dan Enterprise, kebijakan organisasi mengontrolnya |

972| `--add-dir` | Tambahkan beberapa repo dengan tombol **+** di sesi cloud |982| `--add-dir` | Tambahkan beberapa repo dengan tombol **+** di sesi cloud |

Details

29 Di halaman ini, "perangkat" mengacu pada iPhone atau iPad yang disimulasikan, salah satu dari perangkat simulator yang sama yang Anda kelola di Xcode di bawah **Window → Devices and Simulators**, bukan perangkat keras fisik.29 Di halaman ini, "perangkat" mengacu pada iPhone atau iPad yang disimulasikan, salah satu dari perangkat simulator yang sama yang Anda kelola di Xcode di bawah **Window → Devices and Simulators**, bukan perangkat keras fisik.

30</Note>30</Note>

31 31 

32Pane simulator tersedia hanya dalam sesi lokal. Dalam sesi [cloud](/docs/id/desktop#run-long-running-tasks-remotely) dan [SSH](/docs/id/desktop#ssh-sessions), Claude berjalan di mesin yang tidak dapat menjangkau simulator di Mac Anda.32Pane simulator tersedia hanya dalam sesi lokal. Dalam sesi [cloud](/docs/id/desktop#run-long-running-tasks-in-the-cloud) dan [SSH](/docs/id/desktop#ssh-sessions), Claude berjalan di mesin yang tidak dapat menjangkau simulator di Mac Anda.

33 33 

34<h2 id="run-your-app-in-the-simulator">34<h2 id="run-your-app-in-the-simulator">

35 Jalankan aplikasi Anda di simulator35 Jalankan aplikasi Anda di simulator

Details

70 70 

71 Anda juga dapat memilih:71 Anda juga dapat memilih:

72 72 

73 * **Cloud**: Jalankan sesi di cloud yang terus berlanjut bahkan jika Anda menutup aplikasi. Sesi cloud menggunakan infrastruktur yang sama dengan [Claude Code di web](/docs/id/claude-code-on-the-web).73 * **Cloud**: Jalankan sesi di cloud yang terus berlanjut bahkan jika Anda menutup aplikasi. Lihat [Use Claude Code in the cloud](/docs/id/claude-code-on-the-web) untuk mengetahui cara kerja sesi cloud.

74 * **SSH**: Terhubung ke mesin jarak jauh melalui SSH, seperti server Anda sendiri, cloud VM, atau dev container. Desktop secara otomatis menginstal Claude Code di mesin jarak jauh saat pertama kali Anda terhubung.74 * **SSH**: Terhubung ke mesin jarak jauh melalui SSH, seperti server Anda sendiri, cloud VM, atau dev container. Desktop secara otomatis menginstal Claude Code di mesin jarak jauh saat pertama kali Anda terhubung.

75 * **WSL** (Windows): Jalankan sesi di dalam [distribusi WSL 2](/docs/id/desktop-wsl); Claude Code, tools, dan git berjalan di sisi Linux dengan path asli.75 * **WSL** (Windows): Jalankan sesi di dalam [distribusi WSL 2](/docs/id/desktop-wsl); Claude Code, tools, dan git berjalan di sisi Linux dengan path asli.

76 </Step>76 </Step>


134 134 

135**Letakkan Claude sesuai jadwal.** Atur [scheduled tasks](/docs/id/desktop-scheduled-tasks) untuk menjalankan Claude secara otomatis secara berulang: tinjauan kode harian setiap pagi, audit dependensi mingguan, atau briefing yang menarik dari alat yang terhubung Anda.135**Letakkan Claude sesuai jadwal.** Atur [scheduled tasks](/docs/id/desktop-scheduled-tasks) untuk menjalankan Claude secara otomatis secara berulang: tinjauan kode harian setiap pagi, audit dependensi mingguan, atau briefing yang menarik dari alat yang terhubung Anda.

136 136 

137**Skalakan ketika Anda siap.** Buka [parallel sessions](/docs/id/desktop#work-in-parallel-with-sessions) dari sidebar untuk mengerjakan beberapa tugas sekaligus, masing-masing di worktree Git-nya sendiri, dan buka [tasks pane](/docs/id/desktop#watch-background-tasks) untuk menonton subagents dan perintah latar belakang yang sedang dijalankan sesi. Buka [side chat](/docs/id/desktop#ask-a-side-question-without-derailing-the-session) untuk mengajukan pertanyaan tanpa mengganggu thread utama. Kirim [long-running work to the cloud](/docs/id/desktop#run-long-running-tasks-remotely) sehingga terus berjalan bahkan jika Anda menutup aplikasi, atau [continue a session on the web or in your IDE](/docs/id/desktop#continue-in-another-surface) jika tugas memakan waktu lebih lama dari yang diharapkan. [Connect external tools](/docs/id/desktop#extend-claude-code) seperti GitHub, Slack, dan Linear untuk menyatukan alur kerja Anda.137**Skalakan ketika Anda siap.** Buka [parallel sessions](/docs/id/desktop#work-in-parallel-with-sessions) dari sidebar untuk mengerjakan beberapa tugas sekaligus, masing-masing di worktree Git-nya sendiri, dan buka [tasks pane](/docs/id/desktop#watch-background-tasks) untuk menonton subagents dan perintah latar belakang yang sedang dijalankan sesi. Buka [side chat](/docs/id/desktop#ask-a-side-question-without-derailing-the-session) untuk mengajukan pertanyaan tanpa mengganggu thread utama. Kirim [long-running work to the cloud](/docs/id/desktop#run-long-running-tasks-in-the-cloud) sehingga terus berjalan bahkan jika Anda menutup aplikasi, atau [continue a session on the web or in your IDE](/docs/id/desktop#continue-in-another-surface) jika tugas memakan waktu lebih lama dari yang diharapkan. [Connect external tools](/docs/id/desktop#extend-claude-code) seperti GitHub, Slack, dan Linear untuk menyatukan alur kerja Anda.

138 138 

139<h2 id="what’s-next">139<h2 id="what’s-next">

140 Apa selanjutnya140 Apa selanjutnya

devcontainer.md +1 −1

Details

138 138 

139`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` juga menonaktifkan evaluasi bendera fitur yang [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching) bergantung, jadi sesi di kontainer tidak dapat menggunakannya.139`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` juga menonaktifkan evaluasi bendera fitur yang [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching) bergantung, jadi sesi di kontainer tidak dapat menggunakannya.

140 140 

141Dev Container Feature selalu menginstal rilis Claude Code terbaru. Untuk menentukan versi Claude Code tertentu untuk build yang dapat direproduksi, instal dari Dockerfile Anda dengan `npm install -g @anthropic-ai/claude-code@X.Y.Z` daripada menggunakan fitur, dan atur `DISABLE_AUTOUPDATER` seperti yang ditunjukkan di atas.141Dev Container Feature selalu menginstal rilis Claude Code terbaru. Untuk menentukan versi Claude Code tertentu untuk build yang dapat direproduksi, instal dari Dockerfile Anda dengan `npm install -g @anthropic-ai/claude-code@X.Y.Z` daripada menggunakan fitur, dan atur `DISABLE_AUTOUPDATER` ke `1` di `containerEnv`.

142 142 

143Untuk daftar lengkap kontrol kebijakan termasuk aturan izin, pembatasan alat, dan allowlist server MCP, lihat [Atur Claude Code untuk organisasi Anda](/docs/id/admin-setup).143Untuk daftar lengkap kontrol kebijakan termasuk aturan izin, pembatasan alat, dan allowlist server MCP, lihat [Atur Claude Code untuk organisasi Anda](/docs/id/admin-setup).

144 144 

Details

8 8 

9Plugin memperluas Claude Code dengan skills, agen, hooks, dan MCP servers. Plugin marketplace adalah katalog yang membantu Anda menemukan dan menginstal ekstensi ini tanpa membuatnya sendiri.9Plugin memperluas Claude Code dengan skills, agen, hooks, dan MCP servers. Plugin marketplace adalah katalog yang membantu Anda menemukan dan menginstal ekstensi ini tanpa membuatnya sendiri.

10 10 

11Anda juga dapat mengaktifkan plugin di claude.ai, untuk diri sendiri atau melalui organisasi Anda. Claude Code menyinkronkan plugin tersebut ke dalam sesi Anda tanpa perlu instalasi marketplace, seperti yang dijelaskan di [Plugins synced from claude.ai](/docs/id/plugins-reference#synced-plugins).

12 

11Mencari cara membuat dan mendistribusikan marketplace Anda sendiri? Lihat [Buat dan distribusikan plugin marketplace](/docs/id/plugin-marketplaces).13Mencari cara membuat dan mendistribusikan marketplace Anda sendiri? Lihat [Buat dan distribusikan plugin marketplace](/docs/id/plugin-marketplaces).

12 14 

13<h2 id="how-marketplaces-work">15<h2 id="how-marketplaces-work">


78Anda juga dapat [membuat plugin LSP Anda sendiri](/docs/id/plugins-reference#lsp-servers) untuk bahasa lain.80Anda juga dapat [membuat plugin LSP Anda sendiri](/docs/id/plugins-reference#lsp-servers) untuk bahasa lain.

79 81 

80<Note>82<Note>

81 Jika Anda melihat `Executable not found in $PATH` di tab `/plugin` Errors setelah menginstal plugin, instal binary yang diperlukan dari tabel di atas.83 Jika Anda melihat `Executable not found in $PATH` di tab `/plugin` Errors setelah menginstal plugin, instal binary yang diperlukan dari tabel [code intelligence](#code-intelligence) di atas.

82</Note>84</Note>

83 85 

84<h4 id="what-claude-gains-from-code-intelligence-plugins">86<h4 id="what-claude-gains-from-code-intelligence-plugins">


237* **Git URLs**: URL repositori git apa pun, termasuk GitLab, Bitbucket, dan server self-hosted239* **Git URLs**: URL repositori git apa pun, termasuk GitLab, Bitbucket, dan server self-hosted

238* **Local paths**: direktori atau jalur langsung ke file `marketplace.json`240* **Local paths**: direktori atau jalur langsung ke file `marketplace.json`

239* **Remote URLs**: URL langsung ke file `marketplace.json` yang dihosting241* **Remote URLs**: URL langsung ke file `marketplace.json` yang dihosting

242* **claude.ai**: marketplace yang dihosting di claude.ai untuk akun Anda, seperti perpustakaan plugin organisasi Anda, yang Anda [tambahkan berdasarkan nama dari tab **Marketplaces** atau shell Anda](#add-from-claude-ai) daripada berdasarkan sumber

240 243 

241<h3 id="add-from-github">244<h3 id="add-from-github">

242 Tambahkan dari GitHub245 Tambahkan dari GitHub


314 Marketplace berbasis URL memiliki beberapa keterbatasan dibandingkan dengan marketplace berbasis Git. Jika instalasi plugin dari marketplace berbasis URL gagal, lihat [Troubleshooting](/docs/id/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).317 Marketplace berbasis URL memiliki beberapa keterbatasan dibandingkan dengan marketplace berbasis Git. Jika instalasi plugin dari marketplace berbasis URL gagal, lihat [Troubleshooting](/docs/id/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).

315</Note>318</Note>

316 319 

320<h3 id="add-from-claude-ai">

321 Tambahkan dari claude.ai

322</h3>

323 

324Dalam sesi terminal di mana [plugin disinkronkan dari akun claude.ai Anda](/docs/id/plugins-reference#synced-plugins), claude.ai juga dapat mencantumkan marketplace untuk Anda, seperti perpustakaan plugin organisasi Anda dan unggahan claude.ai Anda sendiri. `claude plugin marketplace list` mencetaknya dalam bagian `From claude.ai:`, dan tab **Marketplaces** `/plugin` mencantumkannya. Pilih salah satu di sana untuk menambahkannya. Menambahkan marketplace dari claude.ai memerlukan Claude Code v2.1.273 atau lebih baru.

325 

326Untuk menambahkan satu dari shell Anda, jalankan `claude plugin marketplace add` dengan flag `--claudeai` dan nama yang ditampilkan dalam daftar:

327 

328```bash theme={null}

329claude plugin marketplace add --claudeai claudeai-organization-library

330```

331 

332Claude Code mendaftarkan marketplace dengan nama lokal yang dimulai dengan `claudeai-`, berasal dari nama yang claude.ai cantumkan di bawahnya: marketplace yang dicantumkan sebagai "Organization library" terdaftar sebagai `claudeai-organization-library`. Instal pluginnya dengan nama itu, misalnya dengan `claude plugin install <plugin>@claudeai-organization-library`.

333 

334Jika Anda keluar atau masuk dengan akun yang berbeda, marketplace tetap dikonfigurasi tetapi tidak menampilkan plugin apa pun, dan plugin yang sudah Anda instal darinya terus dimuat.

335 

336Bagian `From claude.ai:` juga dapat mencantumkan marketplace berbasis git yang dibagikan melalui claude.ai. Anda menambahkannya dengan perintah `marketplace add` biasa, menggunakan sumber yang dicetak daftar.

337 

317<h2 id="install-plugins">338<h2 id="install-plugins">

318 Instal plugin339 Instal plugin

319</h2>340</h2>

320 341 

321Setelah Anda menambahkan marketplace, Anda dapat menginstal plugin berdasarkan nama:342Setelah Anda menambahkan marketplace, Anda dapat menginstal plugin berdasarkan nama. Untuk marketplace yang belum Anda tambahkan, Anda dapat [menambahkannya dan menginstal dalam satu perintah](#add-a-marketplace-and-install-in-one-command).

343 

344Untuk menginstal berdasarkan nama:

322 345 

323```shell theme={null}346```shell theme={null}

324/plugin install plugin-name@marketplace-name347/plugin install plugin-name@marketplace-name


360 Pastikan Anda mempercayai plugin sebelum menginstalnya. Anthropic tidak mengontrol apa yang MCP servers, file, atau perangkat lunak lain yang disertakan dalam plugin dan tidak dapat memverifikasi bahwa mereka bekerja seperti yang dimaksudkan. Periksa homepage setiap plugin untuk informasi lebih lanjut.383 Pastikan Anda mempercayai plugin sebelum menginstalnya. Anthropic tidak mengontrol apa yang MCP servers, file, atau perangkat lunak lain yang disertakan dalam plugin dan tidak dapat memverifikasi bahwa mereka bekerja seperti yang dimaksudkan. Periksa homepage setiap plugin untuk informasi lebih lanjut.

361</Warning>384</Warning>

362 385 

386<h3 id="add-a-marketplace-and-install-in-one-command">

387 Tambahkan marketplace dan instal dalam satu perintah

388</h3>

389 

390Untuk menginstal plugin dari marketplace yang belum Anda tambahkan, beri nama sumber marketplace dengan `--marketplace`. Memerlukan Claude Code v2.1.275 atau lebih baru.

391 

392```shell theme={null}

393/plugin install quality-review-plugin --marketplace your-org/plugins

394```

395 

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

397 

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

399 

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

364 Kelola plugin yang diinstal401 Kelola plugin yang diinstal

365</h2>402</h2>


372* ketik untuk memfilter berdasarkan nama atau deskripsi plugin409* ketik untuk memfilter berdasarkan nama atau deskripsi plugin

373* tekan Enter untuk membuka tampilan detail plugin dan mengaktifkan, menonaktifkan, atau menghapusnya410* tekan Enter untuk membuka tampilan detail plugin dan mengaktifkan, menonaktifkan, atau menghapusnya

374 411 

412Claude Code juga mencantumkan [plugin yang disinkronkan dari akun claude.ai Anda](/docs/id/plugins-reference#synced-plugins) dalam tab **Installed**, dengan `synced` sebagai sumbernya. Anda dapat mengaktifkan atau menonaktifkan satu di sana kecuali organisasi Anda menandainya sebagai wajib. Untuk menghapus satu, matikan di claude.ai. Plugin yang disinkronkan muncul dalam sesi terminal di Claude Code v2.1.273 atau lebih baru.

413 

375Ketika Anda menghapus plugin yang diaktifkan oleh `.claude/settings.json` proyek, Claude Code menanyakan cakupan mana yang Anda maksud: nonaktifkan untuk Anda saja, yang menulis penggantian ke `.claude/settings.local.json` Anda dan membiarkan plugin tetap diinstal untuk proyek, atau hapus untuk semua orang, yang menghapusnya dari `.claude/settings.json` bersama.414Ketika Anda menghapus plugin yang diaktifkan oleh `.claude/settings.json` proyek, Claude Code menanyakan cakupan mana yang Anda maksud: nonaktifkan untuk Anda saja, yang menulis penggantian ke `.claude/settings.local.json` Anda dan membiarkan plugin tetap diinstal untuk proyek, atau hapus untuk semua orang, yang menghapusnya dari `.claude/settings.json` bersama.

376 415 

377Tampilan detail menunjukkan komponen yang disumbangkan plugin: perintah, skills, agen, hooks, server MCP, dan server LSP. Inventaris yang sama tersedia dari baris perintah dengan `claude plugin details`.416Tampilan detail menunjukkan komponen yang disumbangkan plugin: perintah, skills, agen, hooks, server MCP, dan server LSP. Inventaris yang sama tersedia dari baris perintah dengan `claude plugin details`.


444* Perintah `claude plugin` yang Anda jalankan di terminal lain483* Perintah `claude plugin` yang Anda jalankan di terminal lain

445* Edit ke plugin yang Anda muat dengan [`--plugin-dir`](/docs/id/plugins#test-your-plugins-locally) saat Anda mengembangkannya484* Edit ke plugin yang Anda muat dengan [`--plugin-dir`](/docs/id/plugins#test-your-plugins-locally) saat Anda mengembangkannya

446* Plugin [auto-update](#configure-auto-updates) yang notifikasinya meminta Anda untuk reload485* Plugin [auto-update](#configure-auto-updates) yang notifikasinya meminta Anda untuk reload

486* [Sinkronisasi dari akun claude.ai Anda](/docs/id/plugins-reference#synced-plugins) yang menambah, memperbarui, atau menghapus plugin dan menampilkan notifikasi yang meminta Anda untuk reload

447* Perubahan dalam folder [`--plugin-dir`](/docs/id/plugins#test-your-plugins-locally) yang Claude Code tahan karena menerapkannya akan membatalkan prompt cache487* Perubahan dalam folder [`--plugin-dir`](/docs/id/plugins#test-your-plugins-locally) yang Claude Code tahan karena menerapkannya akan membatalkan prompt cache

448 488 

449Sebelum v2.1.268, plugin yang Anda aktifkan, nonaktifkan, atau hapus di menu, dan instalasi yang tidak diaktifkan selama instalasi, tetap tertunda sampai Anda menjalankan `/reload-plugins`.489Sebelum v2.1.268, plugin yang Anda aktifkan, nonaktifkan, atau hapus di menu, dan instalasi yang tidak diaktifkan selama instalasi, tetap tertunda sampai Anda menjalankan `/reload-plugins`.


5213. Pilih marketplace dari daftar5613. Pilih marketplace dari daftar

5224. Pilih **Enable auto-update** atau **Disable auto-update**5624. Pilih **Enable auto-update** atau **Disable auto-update**

523 563 

524`claude-plugins-official` dan sebagian besar marketplace resmi Anthropic lainnya memiliki auto-update diaktifkan secara default. Marketplace pihak ketiga dan pengembangan lokal memiliki auto-update dinonaktifkan secara default.564`claude-plugins-official`, sebagian besar marketplace resmi Anthropic lainnya, dan [marketplace yang ditambahkan dari claude.ai](#add-from-claude-ai) memiliki auto-update diaktifkan secara default. Marketplace pihak ketiga lainnya dan marketplace pengembangan lokal memiliki auto-update dinonaktifkan secara default.

525 565 

526Administrator juga dapat mengatur `"autoUpdate": true` pada setiap entri [`extraKnownMarketplaces`](/docs/id/settings-reference#extraknownmarketplaces) dalam pengaturan terkelola untuk mengaktifkan auto-update untuk marketplace organisasi tanpa memerlukan setiap pengguna untuk mengalihkannya.566Administrator juga dapat mengatur `"autoUpdate": true` pada setiap entri [`extraKnownMarketplaces`](/docs/id/settings-reference#extraknownmarketplaces) dalam pengaturan terkelola untuk mengaktifkan auto-update untuk marketplace organisasi tanpa memerlukan setiap pengguna untuk mengalihkannya.

527 567 

env-vars.md +198 −189

Details

142</Note>142</Note>

143 143 

144| Variabel | Tujuan |144| Variabel | Tujuan |

145| :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |145| :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

146| `ANTHROPIC_API_KEY` | Kunci API yang dikirim sebagai header `X-Api-Key`. Ketika diatur, kunci ini digunakan sebagai pengganti langganan Claude Pro, Max, Team, atau Enterprise Anda bahkan jika Anda sudah masuk. Dalam mode non-interaktif (`-p`), kunci selalu digunakan saat ada. Dalam mode interaktif, Anda diminta untuk menyetujui kunci sekali sebelum mengganti langganan Anda. Untuk menggunakan langganan Anda sebagai gantinya, jalankan `unset ANTHROPIC_API_KEY` |146| `ANTHROPIC_API_KEY` | Kunci API yang dikirim sebagai header `X-Api-Key`. Ketika diatur, kunci ini digunakan sebagai pengganti langganan Claude Pro, Max, Team, atau Enterprise Anda bahkan jika Anda sudah masuk. Dalam mode non-interaktif (`-p`), kunci selalu digunakan saat ada. Dalam mode interaktif, Anda diminta untuk menyetujui kunci sekali sebelum mengganti langganan Anda. Untuk menggunakan langganan Anda sebagai gantinya, jalankan `unset ANTHROPIC_API_KEY` |

147| `ANTHROPIC_AUTH_TOKEN` | Nilai kustom untuk header `Authorization` (nilai yang Anda atur di sini akan diawali dengan `Bearer `) |147| `ANTHROPIC_AUTH_TOKEN` | Nilai khusus untuk header `Authorization` (nilai yang Anda atur di sini akan diawali dengan `Bearer `) |

148| `ANTHROPIC_AWS_API_KEY` | Kunci API Workspace untuk [Claude Platform on AWS](/docs/id/claude-platform-on-aws), dihasilkan di AWS Console. Dikirim sebagai `x-api-key` dan mengambil prioritas atas AWS SigV4 |148| `ANTHROPIC_AWS_API_KEY` | Kunci API Workspace untuk [Claude Platform on AWS](/docs/id/claude-platform-on-aws), dihasilkan di AWS Console. Dikirim sebagai `x-api-key` dan mengambil prioritas di atas AWS SigV4 |

149| `ANTHROPIC_AWS_BASE_URL` | Ganti URL endpoint [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Gunakan untuk wilayah kustom atau saat merutekan melalui [gateway LLM](/docs/id/llm-gateway). Default ke `https://aws-external-anthropic.{region}.api.aws`. Claude Code menyelesaikan wilayah dengan [prioritas yang sama seperti di Amazon Bedrock](/docs/id/amazon-bedrock#3-configure-claude-code) |149| `ANTHROPIC_AWS_BASE_URL` | Ganti URL endpoint [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Gunakan untuk wilayah khusus atau saat merutekan melalui [gateway LLM](/docs/id/llm-gateway). Default ke `https://aws-external-anthropic.{region}.api.aws`. Claude Code menyelesaikan wilayah dengan [prioritas yang sama seperti di Amazon Bedrock](/docs/id/amazon-bedrock#3-configure-claude-code) |

150| `ANTHROPIC_AWS_WORKSPACE_ID` | Diperlukan untuk [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Dikirim pada setiap permintaan sebagai header `anthropic-workspace-id` |150| `ANTHROPIC_AWS_WORKSPACE_ID` | Diperlukan untuk [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Dikirim pada setiap permintaan sebagai header `anthropic-workspace-id` |

151| `ANTHROPIC_BASE_URL` | Ganti endpoint API untuk merutekan permintaan melalui proxy atau gateway. Ketika diatur ke host non-pihak pertama, [pencarian alat MCP](/docs/id/mcp#scale-with-mcp-tool-search) dinonaktifkan secara default. Atur `ENABLE_TOOL_SEARCH=true` jika proxy Anda meneruskan blok `tool_reference`. Mulai dari v2.1.196, [Remote Control](/docs/id/remote-control#requirements) dinonaktifkan ketika ini menunjuk ke host selain `api.anthropic.com`, sesuai dengan perilakunya di Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry |151| `ANTHROPIC_BASE_URL` | Ganti endpoint API untuk merutekan permintaan melalui proxy atau gateway. Ketika diatur ke host non-pihak pertama, [pencarian alat MCP](/docs/id/mcp#scale-with-mcp-tool-search) dinonaktifkan secara default. Atur `ENABLE_TOOL_SEARCH=true` jika proxy Anda meneruskan blok `tool_reference`. Mulai dari v2.1.196, [Remote Control](/docs/id/remote-control#requirements) dinonaktifkan ketika ini menunjuk ke host selain `api.anthropic.com`, sesuai dengan perilakunya di Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry |

152| `ANTHROPIC_BEDROCK_BASE_URL` | Ganti URL endpoint Amazon Bedrock. Gunakan untuk endpoint Amazon Bedrock kustom 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`) Claude Code mencoba 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` | Amazon Bedrock [tingkat layanan](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) (`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](/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) |

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 kustom 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 di mana pemeriksaan berjalan. Nilai yang menetapkan header kredensial, org atau tenant, perutean, atau 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 kustom 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) |

159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Deskripsi tampilan untuk entri model kustom di pemilih `/model`. Default ke `Custom model (<model-id>)` ketika tidak diatur |159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Deskripsi tampilan untuk entri model khusus di pemilih `/model`. Default ke `Custom model (<model-id>)` ketika tidak diatur |

160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nama tampilan untuk entri model kustom di pemilih `/model`. Ketika tidak diatur, entri menampilkan nama model jika Claude Code [mengenali ID](/docs/id/model-config#customize-pinned-model-display-and-capabilities), dan ID model sebaliknya |160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nama tampilan untuk entri model khusus di pemilih `/model`. Ketika tidak diatur, entri menampilkan nama model jika Claude Code [mengenali ID](/docs/id/model-config#customize-pinned-model-display-and-capabilities), dan ID model sebaliknya |

161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Daftar [kemampuan](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang dipisahkan koma yang didukung model kustom, misalnya `effort,thinking`. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Daftar [kemampuan](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang dipisahkan koma yang didukung model khusus, misalnya `effort,thinking`. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID Model yang alias `fable` selesaikan, dan ID yang Claude Code kenali sebagai model Fable untuk [fallback model otomatis](/docs/id/model-config#automatic-model-fallback) pada penyedia pihak ketiga. Lihat [Konfigurasi Model](/docs/id/model-config#environment-variables) |162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID Model yang alias `fable` selesaikan, dan ID yang Claude Code kenali sebagai model Fable untuk [fallback model otomatis](/docs/id/model-config#automatic-model-fallback) di penyedia pihak ketiga. Lihat [Konfigurasi Model](/docs/id/model-config#environment-variables) |

163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Deskripsi tampilan untuk model Fable yang disematkan di pemilih `/model`. Ketika tidak diatur, baris menampilkan deskripsi default yang dimulai dengan `Custom Fable model`. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Deskripsi tampilan untuk model Fable yang disematkan di pemilih `/model`. Ketika tidak diatur, baris menampilkan deskripsi default yang dimulai dengan `Custom Fable model`. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nama tampilan untuk model Fable yang disematkan di pemilih `/model`. Ketika tidak diatur, baris menampilkan nama model jika Claude Code mengenali ID yang disematkan, dan ID yang disematkan sebaliknya. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nama tampilan untuk model Fable yang disematkan di pemilih `/model`. Ketika tidak diatur, baris menampilkan nama model jika Claude Code mengenali ID yang disematkan, dan ID yang disematkan sebaliknya. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Daftar [kemampuan](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang dipisahkan koma yang didukung model Fable yang disematkan, misalnya `effort,thinking`. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Daftar [kemampuan](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang dipisahkan koma yang didukung model Fable yang disematkan, misalnya `effort,thinking`. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |


176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Deskripsi tampilan untuk model Sonnet yang disematkan di pemilih `/model`. Ketika tidak diatur, baris menampilkan deskripsi default yang dimulai dengan `Custom Sonnet model`. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Deskripsi tampilan untuk model Sonnet yang disematkan di pemilih `/model`. Ketika tidak diatur, baris menampilkan deskripsi default yang dimulai dengan `Custom Sonnet model`. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nama tampilan untuk model Sonnet yang disematkan di pemilih `/model`. Ketika tidak diatur, baris menampilkan nama model jika Claude Code mengenali ID yang disematkan, dan ID yang disematkan sebaliknya. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nama tampilan untuk model Sonnet yang disematkan di pemilih `/model`. Ketika tidak diatur, baris menampilkan nama model jika Claude Code mengenali ID yang disematkan, dan ID yang disematkan sebaliknya. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Daftar [kemampuan](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang dipisahkan koma yang didukung model Sonnet yang disematkan, misalnya `effort,thinking`. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Daftar [kemampuan](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang dipisahkan koma yang didukung model Sonnet yang disematkan, misalnya `effort,thinking`. Lihat [Konfigurasi Model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

179| `ANTHROPIC_FEDERATION_RULE_ID` | ID aturan federasi untuk [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Ketika Anda menetapkannya bersama dengan `ANTHROPIC_ORGANIZATION_ID`, Claude Code memilih kredensial federasi, yang menempati peringkat di atas kredensial `/login` Anda. Lihat [prioritas autentikasi](/docs/id/authentication#authentication-precedence) |179| `ANTHROPIC_FEDERATION_RULE_ID` | ID aturan federasi untuk [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Ketika Anda menetapkannya bersama dengan `ANTHROPIC_ORGANIZATION_ID`, Claude Code memilih kredensial federasi, yang berada di atas kredensial `/login` Anda. Lihat [prioritas autentikasi](/docs/id/authentication#authentication-precedence) |

180| `ANTHROPIC_FOUNDRY_API_KEY` | Kunci API untuk autentikasi Microsoft Foundry (lihat [Microsoft Foundry](/docs/id/microsoft-foundry)) |180| `ANTHROPIC_FOUNDRY_API_KEY` | Kunci API untuk autentikasi Microsoft Foundry (lihat [Microsoft Foundry](/docs/id/microsoft-foundry)) |

181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Token pembawa untuk autentikasi Microsoft Foundry, seperti token akses Microsoft Entra. Claude Code mengirimnya sebagai header `Authorization: Bearer`. Mengambil prioritas atas `ANTHROPIC_FOUNDRY_API_KEY` dan rantai kredensial default Azure. Lihat [Microsoft Foundry](/docs/id/microsoft-foundry). Memerlukan Claude Code v2.1.203 atau lebih baru |181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Token pembawa untuk autentikasi Microsoft Foundry, seperti token akses Microsoft Entra. Claude Code mengirimnya sebagai header `Authorization: Bearer`. Mengambil prioritas di atas `ANTHROPIC_FOUNDRY_API_KEY` dan di atas rantai kredensial default Azure. Lihat [Microsoft Foundry](/docs/id/microsoft-foundry). Memerlukan Claude Code v2.1.203 atau lebih baru |

182| `ANTHROPIC_FOUNDRY_BASE_URL` | URL dasar lengkap untuk sumber daya Microsoft Foundry (misalnya, `https://my-resource.services.ai.azure.com/anthropic`). Alternatif untuk `ANTHROPIC_FOUNDRY_RESOURCE` (lihat [Microsoft Foundry](/docs/id/microsoft-foundry)) |182| `ANTHROPIC_FOUNDRY_BASE_URL` | URL dasar lengkap untuk sumber daya Microsoft Foundry (misalnya, `https://my-resource.services.ai.azure.com/anthropic`). Alternatif untuk `ANTHROPIC_FOUNDRY_RESOURCE` (lihat [Microsoft Foundry](/docs/id/microsoft-foundry)) |

183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nama sumber daya Microsoft Foundry (misalnya, `my-resource`). Diperlukan jika `ANTHROPIC_FOUNDRY_BASE_URL` tidak diatur (lihat [Microsoft Foundry](/docs/id/microsoft-foundry)) |183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nama sumber daya Microsoft Foundry (misalnya, `my-resource`). Diperlukan jika `ANTHROPIC_FOUNDRY_BASE_URL` tidak diatur (lihat [Microsoft Foundry](/docs/id/microsoft-foundry)) |

184| `ANTHROPIC_MODEL` | Nama pengaturan model yang akan digunakan (lihat [Konfigurasi Model](/docs/id/model-config#environment-variables)) |184| `ANTHROPIC_MODEL` | Nama pengaturan model yang akan digunakan (lihat [Konfigurasi Model](/docs/id/model-config#environment-variables)) |

185| `ANTHROPIC_ORGANIZATION_ID` | ID Organisasi untuk [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Atur bersama dengan `ANTHROPIC_FEDERATION_RULE_ID`. Lihat [prioritas autentikasi](/docs/id/authentication#authentication-precedence) |185| `ANTHROPIC_ORGANIZATION_ID` | ID Organisasi untuk [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Atur bersama dengan `ANTHROPIC_FEDERATION_RULE_ID`. Lihat [prioritas autentikasi](/docs/id/authentication#authentication-precedence) |

186| `ANTHROPIC_PROFILE` | Nama profil Anthropic untuk autentikasi, seperti yang dibuat oleh [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) atau dengan [masuk ke akun Console tanpa kunci API](/docs/id/authentication#sign-in-without-an-api-key). Lihat [prioritas autentikasi](/docs/id/authentication#authentication-precedence) |186| `ANTHROPIC_PROFILE` | Nama profil Anthropic untuk autentikasi, seperti yang dibuat oleh [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) atau dengan [masuk ke akun Console tanpa kunci API](/docs/id/authentication#sign-in-without-an-api-key). Lihat [prioritas autentikasi](/docs/id/authentication#authentication-precedence) |

187| `ANTHROPIC_SMALL_FAST_MODEL` | \[DEPRECATED] Nama [model kelas Haiku untuk tugas latar belakang](/docs/id/costs) |187| `ANTHROPIC_SMALL_FAST_MODEL` | \[DEPRECATED] Nama [model kelas Haiku untuk tugas latar belakang](/docs/id/costs) |

188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Ganti wilayah AWS untuk model kelas Haiku saat menggunakan Amazon Bedrock atau Amazon Bedrock Mantle. Di Amazon Bedrock, ini hanya berlaku ketika `ANTHROPIC_DEFAULT_HAIKU_MODEL` atau `ANTHROPIC_SMALL_FAST_MODEL` yang sudah usang juga diatur, karena Amazon Bedrock sebaliknya menjalankan tugas latar belakang pada [model Sonnet default atau model utama](/docs/id/amazon-bedrock#4-pin-model-versions) di wilayah sesi |188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Ganti wilayah AWS untuk model kelas Haiku saat menggunakan Amazon Bedrock atau Amazon Bedrock Mantle. Di Amazon Bedrock, ini hanya berlaku ketika `ANTHROPIC_DEFAULT_HAIKU_MODEL` atau `ANTHROPIC_SMALL_FAST_MODEL` yang sudah usang juga diatur, karena Amazon Bedrock sebaliknya menjalankan tugas latar belakang di [model Sonnet default atau model utama](/docs/id/amazon-bedrock#4-pin-model-versions) di wilayah sesi |

189| `ANTHROPIC_VERTEX_BASE_URL` | Ganti URL endpoint Google Cloud's Agent Platform. Gunakan untuk endpoint Google Cloud's Agent Platform kustom atau saat merutekan melalui [gateway LLM](/docs/id/llm-gateway). Lihat [Google Cloud's Agent Platform](/docs/id/google-vertex-ai) |189| `ANTHROPIC_VERTEX_BASE_URL` | Ganti URL endpoint Google Cloud's Agent Platform. Gunakan untuk endpoint Google Cloud's Agent Platform khusus atau saat merutekan melalui [gateway LLM](/docs/id/llm-gateway). Lihat [Google Cloud's Agent Platform](/docs/id/google-vertex-ai) |

190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID proyek GCP untuk permintaan Google Cloud's Agent Platform. Ditimpa oleh `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT`, atau proyek dalam file kredensial `GOOGLE_APPLICATION_CREDENTIALS` Anda. Lihat [Google Cloud's Agent Platform](/docs/id/google-vertex-ai) |190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID proyek GCP yang permintaan Google Cloud's Agent Platform ditujukan. Lihat [Konfigurasi kredensial GCP](/docs/id/google-vertex-ai#3-configure-gcp-credentials) |

191| `ANTHROPIC_WORKSPACE_ID` | ID Workspace untuk [federasi identitas beban kerja](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Atur ini ketika aturan federasi Anda mencakup lebih dari satu workspace sehingga pertukaran token tahu workspace mana yang ditargetkan |191| `ANTHROPIC_WORKSPACE_ID` | ID Workspace untuk [federasi identitas beban kerja](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Atur ini ketika aturan federasi Anda mencakup lebih dari satu workspace sehingga pertukaran token tahu workspace mana yang ditargetkan |

192| `API_FORCE_IDLE_TIMEOUT` | Ganti timeout idle badan 5 menit yang menghentikan respons model streaming ketika tidak ada byte yang tiba. Atur ke `0` untuk menonaktifkan timeout, misalnya ketika [gateway](/docs/id/llm-gateway) lambat atau model lokal berhenti lebih lama dari 5 menit antara chunk, atau `1` untuk menjaganya tetap aktif untuk setiap penyedia. Ketika tidak diatur, timeout aktif pada penyedia selain API Anthropic langsung dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws). [Watchdog aliran](/docs/id/network-config#streaming-idle-watchdogs) berjalan independen darinya dan menghentikan jeda senyap yang panjang bahkan ketika Anda menetapkan `0` di sini |192| `API_FORCE_IDLE_TIMEOUT` | Ganti timeout idle badan 5 menit yang menghentikan respons model streaming ketika tidak ada byte yang tiba. Atur ke `0` untuk menonaktifkan timeout, misalnya ketika [gateway](/docs/id/llm-gateway) lambat atau model lokal berhenti lebih lama dari 5 menit antara chunk, atau `1` untuk menyimpannya untuk setiap penyedia. Ketika tidak diatur, timeout aktif di penyedia selain API Anthropic langsung dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws). [Watchdog aliran](/docs/id/network-config#streaming-idle-watchdogs) berjalan independen darinya dan menghentikan jeda senyap yang panjang bahkan ketika Anda menetapkan `0` di sini |

193| `API_TIMEOUT_MS` | Timeout untuk permintaan API dalam milidetik (default: 600000, atau 10 menit; maksimum: 2147483647). Tingkatkan ini ketika permintaan timeout pada jaringan lambat atau saat merutekan melalui proxy. Nilai di atas maksimum meluap timer yang mendasar dan menyebabkan permintaan gagal segera |193| `API_TIMEOUT_MS` | Timeout untuk permintaan API dalam milidetik (default: 600000, atau 10 menit; maksimum: 2147483647). Tingkatkan ini ketika permintaan timeout di jaringan lambat atau saat merutekan melalui proxy. Nilai di atas maksimum meluap timer yang mendasar dan menyebabkan permintaan gagal segera |

194| `AWS_BEARER_TOKEN_BEDROCK` | Kunci API Amazon Bedrock untuk autentikasi (lihat [Kunci API Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |194| `AWS_BEARER_TOKEN_BEDROCK` | Kunci API Amazon Bedrock untuk autentikasi (lihat [Kunci API Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

195| `BASH_DEFAULT_TIMEOUT_MS` | Timeout default untuk perintah bash yang berjalan lama (default: 120000, atau 2 menit) |195| `BASH_DEFAULT_TIMEOUT_MS` | Timeout default untuk perintah bash yang berjalan lama (default: 120000, atau 2 menit) |

196| `BASH_MAX_OUTPUT_LENGTH` | Jumlah maksimum karakter output bash yang Claude Code baca kembali ke hasil perintah (default: 30000; maksimum: 150000). Jika Anda menetapkan pengaturan [`bashOutputMaxChars`](/docs/id/settings-reference#bashoutputmaxchars), Claude Code mengabaikan variabel ini. Lihat [Batas output](/docs/id/tools-reference#output-limits) |196| `BASH_MAX_OUTPUT_LENGTH` | Jumlah maksimum karakter output bash yang Claude Code baca kembali ke hasil perintah (default: 30000; maksimum: 150000). Jika Anda menetapkan pengaturan [`bashOutputMaxChars`](/docs/id/settings-reference#bashoutputmaxchars), Claude Code mengabaikan variabel ini. Lihat [Batas Output](/docs/id/tools-reference#output-limits) |

197| `BASH_MAX_TIMEOUT_MS` | Timeout maksimum yang dapat ditetapkan model untuk perintah bash yang berjalan lama (default: 600000, atau 10 menit). Batas efektif adalah yang lebih besar dari ini dan `BASH_DEFAULT_TIMEOUT_MS` |197| `BASH_MAX_TIMEOUT_MS` | Timeout maksimum yang dapat ditetapkan model untuk perintah bash yang berjalan lama (default: 600000, atau 10 menit). Batas efektif adalah yang lebih besar dari ini dan `BASH_DEFAULT_TIMEOUT_MS` |

198| `BETA_TRACING_ENDPOINT` | Endpoint OTLP untuk [pelacakan beta terperinci](/docs/id/monitoring-usage#traces-beta): dengan `ENABLE_BETA_TRACING_DETAILED=1`, log dan jejak pergi ke sana sebagai pengganti pengekspor yang dikonfigurasi. Atur di shell, pengaturan pengguna, atau pengaturan yang dikelola. Diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |198| `BETA_TRACING_ENDPOINT` | Endpoint OTLP untuk [pelacakan beta terperinci](/docs/id/monitoring-usage#traces-beta): dengan `ENABLE_BETA_TRACING_DETAILED=1`, log dan jejak pergi ke sana sebagai pengganti pengekspor yang dikonfigurasi. 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) |

199| `CCR_FORCE_BUNDLE` | Atur ke `1` untuk memaksa [`claude --cloud`](/docs/id/claude-code-on-the-web#send-local-repositories-without-github) untuk membundel dan mengunggah repositori lokal Anda bahkan ketika akses GitHub tersedia |199| `CCR_FORCE_BUNDLE` | Atur ke `1` untuk memaksa [`claude --cloud`](/docs/id/claude-code-on-the-web#send-local-repositories-without-github) untuk membundel dan mengunggah repositori lokal Anda sebagai pengganti kloning dari remote-nya |

200| `CLAUDECODE` | Atur ke `1` dalam subproses Claude Code yang dihasilkan (alat Bash dan PowerShell, sesi tmux, perintah [hook](/docs/id/hooks), perintah [status line](/docs/id/statusline), subproses [server MCP](/docs/id/mcp) stdio). Ekstensi IDE juga menetapkan ini di terminal terintegrasi mereka. Gunakan untuk mendeteksi ketika skrip berjalan di dalam subproses yang dihasilkan oleh Claude Code. Untuk memeriksa apakah proses saat ini dihasilkan langsung oleh panggilan alat atau hook, daripada di dalam server MCP stdio yang Claude Code mulai, gunakan `CLAUDE_CODE_CHILD_SESSION` sebagai gantinya |200| `CLAUDECODE` | Atur ke `1` di subproses yang Claude Code luncurkan (alat Bash dan PowerShell, sesi tmux, perintah [hook](/docs/id/hooks), perintah [status line](/docs/id/statusline), subproses [server MCP](/docs/id/mcp) stdio). Ekstensi IDE juga menetapkan ini di terminal terintegrasi mereka. Gunakan untuk mendeteksi ketika skrip berjalan di dalam subproses yang diluncurkan oleh Claude Code. Untuk memeriksa apakah proses saat ini diluncurkan langsung oleh panggilan alat atau hook, daripada di dalam server MCP stdio yang Claude Code mulai, gunakan `CLAUDE_CODE_CHILD_SESSION` sebagai gantinya |

201| `CLAUDE_AFK_COUNTDOWN_MS` | Berapa banyak milidetik sebelum auto-continue hitungan mundur di layar muncul pada dialog [`AskUserQuestion`](/docs/id/tools-reference) yang belum dijawab. Default `20000` (20 detik), dibatasi pada timeout auto-continue. Tidak berpengaruh kecuali auto-continue aktif; lihat pengaturan [`askUserQuestionTimeout`](/docs/id/settings-reference#askuserquestiontimeout) dan `CLAUDE_AFK_TIMEOUT_MS`. Memerlukan Claude Code v2.1.198 atau lebih baru |201| `CLAUDE_AFK_COUNTDOWN_MS` | Berapa milidetik sebelum lanjut otomatis hitungan mundur di layar muncul di dialog [`AskUserQuestion`](/docs/id/tools-reference) yang belum dijawab. Default `20000` (20 detik), dibatasi pada timeout lanjut otomatis. Tidak berpengaruh kecuali lanjut otomatis aktif; lihat pengaturan [`askUserQuestionTimeout`](/docs/id/settings-reference#askuserquestiontimeout) dan `CLAUDE_AFK_TIMEOUT_MS`. Memerlukan Claude Code v2.1.198 atau lebih baru |

202| `CLAUDE_AFK_TIMEOUT_MS` | Berapa banyak milidetik waktu idle sebelum dialog [`AskUserQuestion`](/docs/id/tools-reference) yang belum dijawab auto-continue tanpa Anda. Auto-continue dimatikan secara default; pilih dengan pengaturan [`askUserQuestionTimeout`](/docs/id/settings-reference#askuserquestiontimeout). Variabel ini adalah pengganti untuk demo dan tes otomatis: ketika diatur, itu mengambil prioritas atas pengaturan itu dan mengaktifkan auto-continue bahkan ketika pengaturan tidak diatur atau `never`. Menetapkan `0` tidak menonaktifkan timeout; itu menutup dialog segera. Di v2.1.198 dan v2.1.199, auto-continue aktif secara default dengan timeout `60000` (60 detik). Memerlukan Claude Code v2.1.198 atau lebih baru |202| `CLAUDE_AFK_TIMEOUT_MS` | Berapa milidetik waktu idle sebelum dialog [`AskUserQuestion`](/docs/id/tools-reference) yang belum dijawab lanjut otomatis tanpa Anda. Lanjut otomatis dimatikan secara default; pilih dengan pengaturan [`askUserQuestionTimeout`](/docs/id/settings-reference#askuserquestiontimeout). Variabel ini adalah pengganti untuk demo dan tes otomatis: ketika diatur, itu mengambil prioritas di atas pengaturan itu dan mengaktifkan lanjut otomatis bahkan ketika pengaturan tidak diatur atau `never`. Menetapkan `0` tidak menonaktifkan timeout; itu menutup dialog segera. Di v2.1.198 dan v2.1.199, lanjut otomatis aktif secara default dengan timeout `60000` (60 detik). Memerlukan Claude Code v2.1.198 atau lebih baru |

203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Atur ke `1` untuk menonaktifkan semua tipe [subagent](/docs/id/sub-agents) bawaan seperti Explore dan Plan. Hanya berlaku dalam mode non-interaktif (flag `-p`). Berguna untuk pengguna SDK yang menginginkan papan kosong. Ini juga menghapus `general-purpose`, subagent yang Claude Code jalankan ketika panggilan alat Agent menghilangkan `subagent_type`. Panggilan seperti itu kemudian gagal dengan [`subagent_type is required`](/docs/id/errors#subagent-type-is-required) |203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Atur ke `1` untuk menonaktifkan semua jenis [subagent](/docs/id/sub-agents) bawaan seperti Explore dan Plan. Hanya berlaku dalam mode non-interaktif (flag `-p`). Berguna untuk pengguna SDK yang menginginkan papan tulis kosong. Ini juga menghapus `general-purpose`, subagent yang Claude Code jalankan ketika panggilan alat Agent menghilangkan `subagent_type`. Panggilan seperti itu kemudian gagal dengan [`subagent_type is required`](/docs/id/errors#subagent-type-is-required) |

204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Atur ke `1` untuk melewati awalan `mcp__<server>__` pada nama alat dari server MCP yang dibuat SDK. Alat menggunakan nama asli mereka. Penggunaan SDK saja |204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Atur ke `1` untuk melewati awalan `mcp__<server>__` pada nama alat dari server MCP yang dibuat SDK. Alat menggunakan nama asli mereka. Penggunaan SDK saja |

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Timeout stall dalam milidetik untuk subagent. Default `600000` (10 menit); jika Anda menaikkan `CLAUDE_STREAM_IDLE_TIMEOUT_MS` saat watchdog aliran aktif, default naik dengannya, seperti yang dijelaskan [Handle slow or stalled API responses](/docs/id/agent-sdk/typescript#handle-slow-or-stalled-api-responses). Timer direset pada setiap acara kemajuan streaming; jika tidak ada kemajuan yang tiba dalam jendela, Claude Code menghentikan subagent dan melaporkan stall ke induk |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Timeout stall dalam milidetik untuk subagent. Default `600000` (10 menit); jika Anda menaikkan `CLAUDE_STREAM_IDLE_TIMEOUT_MS` saat watchdog aliran aktif, default naik dengannya, seperti [Tangani respons API lambat atau terhenti](/docs/id/agent-sdk/typescript#handle-slow-or-stalled-api-responses) menjelaskan. Timer direset pada setiap acara kemajuan streaming; jika tidak ada kemajuan yang tiba dalam jendela, Claude Code menghentikan subagent dan melaporkan stall ke induk |

206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Atur persentase (1-100) dari jendela auto-compact di mana auto-compaction dipicu. Gunakan nilai lebih rendah seperti `50` untuk compact lebih awal; variabel tidak dapat menaikkan ambang, jadi nilai di atas persentase default diabaikan. Ini hanya berlaku dalam sesi yang [compact sebelum batas konteks model](/docs/id/model-config#context-window-and-auto-compaction). Berlaku untuk percakapan utama dan subagent |206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Atur persentase (1-100) dari jendela auto-compact di mana auto-compaction dipicu. Gunakan nilai lebih rendah seperti `50` untuk compact lebih awal; variabel tidak dapat menaikkan ambang, jadi nilai di atas persentase default diabaikan. Ini hanya berlaku di sesi yang [compact sebelum batas konteks model](/docs/id/model-config#context-window-and-auto-compaction). Berlaku untuk percakapan utama dan subagent |

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Atur ke `1` untuk memaksa-mengaktifkan backgrounding otomatis dari tugas agent yang berjalan lama. Ketika diaktifkan, subagent dipindahkan ke latar belakang setelah berjalan selama sekitar dua menit. Juga mengaktifkan [backgrounding otomatis dari panggilan alat MCP yang panjang](/docs/id/mcp#automatic-backgrounding-of-long-tool-calls) dalam mode non-interaktif pada Claude Code v2.1.212 atau lebih baru |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Atur ke `1` untuk memaksa-mengaktifkan backgrounding otomatis dari tugas agent yang berjalan lama. Ketika diaktifkan, subagent dipindahkan ke latar belakang setelah berjalan selama sekitar dua menit. Juga mengaktifkan [backgrounding otomatis dari panggilan alat MCP yang panjang](/docs/id/mcp#automatic-backgrounding-of-long-tool-calls) dalam mode non-interaktif di Claude Code v2.1.212 atau lebih baru |

208| `CLAUDE_AX_PREPARK_MS` | Dalam [mode pembaca layar](/docs/id/accessibility#what-your-screen-reader-hears), berapa banyak milidetik Claude Code menunggu, dengan kursor di awal baris, sebelum menulis baris baru atau berubah. Default `50`. Atur `0` untuk menulis segera. Claude Code membatasi tunggu pada `5000`. Memerlukan Claude Code v2.1.233 atau lebih baru |208| `CLAUDE_AX_PREPARK_MS` | Dalam [mode pembaca layar](/docs/id/accessibility#what-your-screen-reader-hears), berapa milidetik Claude Code menunggu, dengan kursor di awal baris, sebelum menulis baris baru atau berubah. Default `50`. Atur `0` untuk menulis segera. Claude Code membatasi tunggu pada `5000`. Memerlukan Claude Code v2.1.233 atau lebih baru |

209| `CLAUDE_AX_SCREEN_READER` | Atur ke `1` untuk merender output ramah pembaca layar: teks datar tanpa batas dekoratif atau animasi. Atur ke `0` untuk memaksa mode pembaca layar mati bahkan ketika [`axScreenReader`](/docs/id/settings-reference#axscreenreader) adalah `true`. Flag [`--ax-screen-reader`](/docs/id/cli-reference#cli-flags) mengambil prioritas. Memerlukan Claude Code v2.1.181 atau lebih baru |209| `CLAUDE_AX_SCREEN_READER` | Atur ke `1` untuk merender output ramah pembaca layar: teks datar tanpa batas dekoratif atau animasi. Atur ke `0` untuk memaksa mode pembaca layar mati bahkan ketika [`axScreenReader`](/docs/id/settings-reference#axscreenreader) adalah `true`. Flag [`--ax-screen-reader`](/docs/id/cli-reference#cli-flags) mengambil prioritas. Memerlukan Claude Code v2.1.181 atau lebih baru |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | Dalam [mode pembaca layar](/docs/id/accessibility), berapa banyak milidetik Claude Code menahan render antarmuka pertama setelah baris konfirmasi startup, sehingga pembaca layar Anda dapat berbicara baris secara penuh sebelum output baru mengganggu. Default `3000`. Atur `0` untuk merender segera. Claude Code membatasi tahan pada `600000` (10 menit). Keystroke pertama Anda mengakhiri tahan lebih awal. Memerlukan Claude Code v2.1.217 atau lebih baru |210| `CLAUDE_AX_STARTUP_QUIET_MS` | Dalam [mode pembaca layar](/docs/id/accessibility), berapa milidetik Claude Code menahan render antarmuka pertama setelah baris konfirmasi startup, sehingga pembaca layar Anda dapat berbicara baris secara penuh sebelum output baru mengganggu. Default `3000`. Atur `0` untuk merender segera. Claude Code membatasi tahan pada `600000` (10 menit). Keystroke pertama Anda mengakhiri tahan lebih awal. Memerlukan Claude Code v2.1.217 atau lebih baru |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Kembali ke direktori kerja asli setelah setiap perintah Bash atau PowerShell dalam sesi utama |211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Kembali ke direktori kerja asli setelah setiap perintah Bash atau PowerShell di sesi utama |

212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Timeout dalam milidetik untuk watchdog idle streaming tingkat byte; ketika diatur, itu mengambil prioritas atas `CLAUDE_STREAM_IDLE_TIMEOUT_MS` untuk watchdog itu dan meninggalkan watchdog tingkat acara tidak berubah. Claude Code menjepit variabel ini antara 10 detik dan 30 menit. Memerlukan Claude Code v2.1.210 atau lebih baru |212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Timeout dalam milidetik untuk watchdog idle streaming tingkat byte; ketika diatur, itu mengambil prioritas di atas `CLAUDE_STREAM_IDLE_TIMEOUT_MS` untuk watchdog itu dan meninggalkan watchdog tingkat acara tidak berubah. Claude Code menjepit variabel ini antara 10 detik dan 30 menit. Memerlukan Claude Code v2.1.210 atau lebih baru |

213| `CLAUDE_CLIENT_PRESENCE_FILE` | Path ke file yang alat eksternal, seperti pendengar kunci layar, buat ketika Anda membuka kunci layar dan hapus ketika Anda menguncinya. Saat file ada, Claude Code melewati [notifikasi push mobile Remote Control](/docs/id/remote-control#mobile-push-notifications), jadi Anda berhenti mendapatkan push saat Anda secara aktif menggunakan komputer. Ketika file tidak ada atau tidak dapat dibaca, notifikasi dikirim seperti biasa. Claude Code memeriksa file sekali per acara pemicu push daripada menyelidiki. Memerlukan Claude Code v2.1.181 atau lebih baru |213| `CLAUDE_CLIENT_PRESENCE_FILE` | Path ke file yang alat eksternal, seperti pendengar kunci layar, buat ketika Anda membuka kunci layar dan hapus ketika Anda menguncinya. Saat file ada, Claude Code melewati [pemberitahuan push mobile Remote Control](/docs/id/remote-control#mobile-push-notifications), jadi Anda berhenti mendapatkan push saat Anda secara aktif menggunakan komputer. Ketika file tidak ada atau tidak dapat dibaca, pemberitahuan dikirim seperti biasa. Claude Code memeriksa file sekali per acara pemicu push daripada menyelidiki. Memerlukan Claude Code v2.1.181 atau lebih baru |

214| `CLAUDE_CODE_ACCESSIBILITY` | Atur ke `1` untuk menjaga kursor terminal asli terlihat dan menonaktifkan indikator kursor teks terbalik. Memungkinkan pembesar layar seperti macOS Zoom untuk melacak posisi kursor |214| `CLAUDE_CODE_ACCESSIBILITY` | Atur ke `1` untuk menjaga kursor terminal asli tetap terlihat dan menonaktifkan indikator kursor teks terbalik. Memungkinkan pembesar layar seperti macOS Zoom untuk melacak posisi kursor |

215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Atur ke `1` untuk memuat file memori dari direktori yang ditentukan dengan `--add-dir`. Memuat `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, dan `CLAUDE.local.md`. Secara default, direktori tambahan tidak memuat file memori |215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Atur ke `1` untuk memuat file memori dari direktori yang ditentukan dengan `--add-dir`. Memuat `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, dan `CLAUDE.local.md`. Secara default, direktori tambahan tidak memuat file memori |

216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Atur ke `1` untuk melukis ulang seluruh layar pada setiap frame dalam [rendering fullscreen](/docs/id/fullscreen) daripada mengirim pembaruan inkremental. Gunakan ini jika mode fullscreen menampilkan fragmen teks basi atau salah tempat. Claude Code mengaktifkan ini secara otomatis untuk sesi latar belakang dan [tampilan agent](/docs/id/agent-view) di Windows |216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Atur ke `1` untuk melukis ulang seluruh layar pada setiap frame dalam [rendering fullscreen](/docs/id/fullscreen) daripada mengirim pembaruan inkremental. Gunakan ini jika mode fullscreen menampilkan fragmen teks basi atau salah tempat. Claude Code mengaktifkan ini secara otomatis untuk sesi latar belakang dan [tampilan agent](/docs/id/agent-view) di Windows |

217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Atur ke `1` untuk mengirim parameter [effort](/docs/id/model-config#adjust-effort-level) dengan setiap permintaan, bahkan ketika Claude Code tidak mengenali ID model sebagai mampu effort. Gunakan ini saat merutekan melalui [gateway LLM](/docs/id/llm-gateway) atau penyedia pihak ketiga yang melayani model di bawah pengidentifikasi kustom. Model yang menolak parameter effort di API, termasuk model Claude 3, Sonnet 4.0 dan 4.5, Opus 4.0 dan 4.1, dan Haiku 4.5, masih dikecualikan sehingga permintaan tidak gagal |217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Atur ke `1` untuk mengirim parameter [effort](/docs/id/model-config#adjust-effort-level) dengan setiap permintaan, bahkan ketika Claude Code tidak mengenali ID model sebagai mampu effort. Gunakan ini saat merutekan melalui [gateway LLM](/docs/id/llm-gateway) atau penyedia pihak ketiga yang melayani model di bawah pengidentifikasi khusus. Model yang menolak parameter effort di API, termasuk model Claude 3, Sonnet 4.0 dan 4.5, Opus 4.0 dan 4.1, dan Haiku 4.5, masih dikecualikan sehingga permintaan tidak gagal |

218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Interval dalam milidetik di mana kredensial harus disegarkan (saat menggunakan [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper)) |218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Interval dalam milidetik di mana kredensial harus disegarkan (saat menggunakan [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper)) |

219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Atur ke `0` untuk menghentikan Claude Code dari membuka browser secara otomatis ketika [artifact](/docs/id/artifacts) baru dipublikasikan. Menerbitkan kembali artifact yang ada tidak membuka browser terlepas dari pengaturan ini |219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Atur ke `0` untuk menghentikan Claude Code dari membuka browser secara otomatis ketika [artifact](/docs/id/artifacts#create-an-artifact) baru dipublikasikan |

220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Atur ke `0` untuk menghentikan Claude membaca dan membalas [komentar pada artifact](/docs/id/artifacts#collect-comments-on-an-artifact). Tidak berpengaruh ketika `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` telah [menonaktifkan artifact](/docs/id/artifacts#availability). Memerlukan Claude Code v2.1.221 atau lebih baru |220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Atur ke `0` untuk menghentikan Claude membaca dan membalas [komentar pada artifact](/docs/id/artifacts#collect-comments-on-an-artifact). Tidak berpengaruh ketika `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` telah [menonaktifkan artifact](/docs/id/artifacts#availability). Memerlukan Claude Code v2.1.221 atau lebih baru |

221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Atur ke `0` untuk menghentikan Claude [membalas sendiri komentar yang dikirim kepadanya](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own). Memerlukan Claude Code v2.1.228 atau lebih baru |221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Atur ke `0` untuk menghentikan Claude [membalas sendiri komentar yang dikirim kepadanya](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own). Memerlukan Claude Code v2.1.228 atau lebih baru |

222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Atur ke `0` untuk menghilangkan [blok atribusi](/docs/id/llm-gateway-protocol#system-prompt-attribution-block), yang membawa versi klien dan sidik jari prompt, dari awal prompt sistem. Caching pada koneksi langsung ke API Anthropic tidak terpengaruh. Dalam beberapa pengaturan koneksi langsung, Claude Code menjaga blok pada permintaan pengklasifikasi [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) bahkan ketika Anda menetapkan `0`. Dalam [Blok atribusi prompt sistem](/docs/id/llm-gateway-protocol#system-prompt-attribution-block), periksa koneksi dan kredensial mana yang dicakup. Sebelum v2.1.181 blok menyertakan token per-permintaan pada URL dasar kustom dan koneksi Microsoft Foundry, jadi pada versi itu atur ke `0` ketika gateway LLM Anda cache pada badan permintaan atau meneruskan permintaan ke penyedia pihak ketiga, atau ketika Anda terhubung ke Microsoft Foundry secara langsung |222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Atur ke `0` untuk menghilangkan [blok atribusi](/docs/id/llm-gateway-protocol#system-prompt-attribution-block), yang membawa versi klien dan sidik jari prompt, dari awal prompt sistem. Caching pada koneksi langsung ke API Anthropic tidak terpengaruh. Dalam beberapa pengaturan koneksi langsung, Claude Code menyimpan blok di permintaan pengklasifikasi [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) bahkan ketika Anda menetapkan `0`. Di [Blok atribusi prompt sistem](/docs/id/llm-gateway-protocol#system-prompt-attribution-block), periksa koneksi dan kredensial mana yang tercakup. Sebelum v2.1.181 blok menyertakan token per-permintaan di URL dasar khusus dan koneksi Microsoft Foundry, jadi di versi itu atur ke `0` ketika gateway LLM Anda cache pada badan permintaan atau meneruskan permintaan ke penyedia pihak ketiga, atau ketika Anda terhubung ke Microsoft Foundry secara langsung |

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 diklem ke minimum 100K. Jendela efektif juga dibatasi pada jendela konteks model. Mengambil prioritas atas perintah `/autocompact`, flag `--autocompact`, dan pengaturan `autoCompactWindow`. Persentase `used_percentage` status line selalu mengukur 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 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_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 |

227| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Atur secara otomatis dalam 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. Dalam [sesi cloud](/docs/id/claude-code-on-the-web), baca `CLAUDE_CODE_REMOTE_SESSION_ID` sebagai gantinya |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_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 |

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

229| `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 pada 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` |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` |

230| `CLAUDE_CODE_CHILD_SESSION` | Atur ke `1` dalam subproses Claude Code yang dihasilkan melalui alat Bash, PowerShell, dan Monitor, perintah [hook](/docs/id/hooks), dan perintah [status line](/docs/id/statusline). Tidak diatur untuk subproses [server MCP](/docs/id/mcp) stdio, yang berumur panjang dan melampaui sesi yang memunculkannya. Tidak seperti `CLAUDECODE`, ini hanya diatur oleh Claude Code sendiri ketika meluncurkan subproses dan bukan oleh ekstensi IDE, jadi itu secara andal membedakan sesi bersarang dari `claude` tingkat atas yang diluncurkan di terminal terintegrasi IDE. Sesi TUI `claude` interaktif bersarang yang dimulai dengan cara ini secara otomatis dikecualikan dari `--resume`, `--continue`, riwayat panah atas, dan daftar `claude agents`. Sesi `claude -p` non-interaktif masih bertahan. Atur `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` untuk mengganti pengecualian ini. Memerlukan Claude Code v2.1.172 atau lebih baru |232| `CLAUDE_CODE_CHILD_SESSION` | Atur ke `1` di subproses Claude Code luncurkan melalui alat Bash, PowerShell, dan Monitor, perintah [hook](/docs/id/hooks), dan perintah [status line](/docs/id/statusline). Tidak diatur untuk subproses [server MCP](/docs/id/mcp) stdio, yang berumur panjang dan melampaui sesi yang meluncurkannya. Tidak seperti `CLAUDECODE`, ini hanya diatur oleh Claude Code sendiri ketika meluncurkan subproses dan bukan oleh ekstensi IDE, jadi itu secara andal membedakan sesi bersarang dari `claude` tingkat atas yang diluncurkan di terminal terintegrasi IDE. `claude` TUI interaktif bersarang yang dimulai dengan cara ini secara otomatis dikecualikan dari `--resume`, `--continue`, riwayat panah atas, dan daftar `claude agents`. Sesi `claude -p` non-interaktif masih bertahan. Atur `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` untuk mengganti pengecualian ini. Memerlukan Claude Code v2.1.172 atau lebih baru |

231| `CLAUDE_CODE_CLIENT_CERT` | Path ke file sertifikat klien untuk autentikasi mTLS |233| `CLAUDE_CODE_CLIENT_CERT` | Path ke file sertifikat klien untuk autentikasi mTLS |

232| `CLAUDE_CODE_CLIENT_KEY` | Path ke file kunci pribadi klien untuk autentikasi mTLS |234| `CLAUDE_CODE_CLIENT_KEY` | Path ke file kunci pribadi klien untuk autentikasi mTLS |

233| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frasa sandi untuk `CLAUDE_CODE_CLIENT_KEY` terenkripsi (opsional) |235| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frasa sandi untuk CLAUDE\_CODE\_CLIENT\_KEY terenkripsi (opsional) |

234| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Dihapus di v2.1.186 dan sekarang tidak beroperasi. Sebelumnya menetapkan timeout terpisah untuk fase koneksi, TLS, dan header respons dari permintaan API streaming. Gunakan `API_TIMEOUT_MS` untuk timeout per-permintaan. Untuk fase header respons dari permintaan streaming, lihat `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |236| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Dihapus di v2.1.186 dan sekarang tidak beroperasi. Sebelumnya menetapkan timeout terpisah untuk fase koneksi, TLS, dan header respons dari permintaan API streaming. Gunakan `API_TIMEOUT_MS` untuk timeout per-permintaan. Untuk fase header respons dari permintaan streaming, lihat `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

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

236| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Tingkat log minimum yang ditulis ke file log debug. Nilai: `verbose`, `debug` (default), `info`, `warn`, `error`. Atur ke `verbose` untuk menyertakan diagnostik volume tinggi seperti output perintah status line penuh, atau naikkan ke `error` untuk mengurangi kebisingan |238| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Tingkat log minimum yang ditulis ke file log debug. Nilai: `verbose`, `debug` (default), `info`, `warn`, `error`. Atur ke `verbose` untuk menyertakan diagnostik volume tinggi seperti output perintah status line penuh, atau naikkan ke `error` untuk mengurangi kebisingan |

237| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Atur ke `1` untuk menonaktifkan dukungan [jendela konteks 1M](/docs/id/model-config#extended-context). Ketika diatur, varian model 1M tidak tersedia di pemilih model, dan Claude Code menahan sesi pada model dengan jendela 1M asli, seperti [Sonnet 5](/docs/id/model-config#sonnet-5-context-window) dan model Fable, ke jendela 200K; lihat [Extended context](/docs/id/model-config#extended-context) untuk cara tahan ditegakkan. Berguna untuk lingkungan perusahaan dengan persyaratan kepatuhan. Untuk perannya dalam mengoreksi jendela untuk ID model `[1m]` yang tidak dikenali, lihat [Correct the window for a gateway or custom model ID](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |239| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Atur ke `1` untuk menonaktifkan dukungan [jendela konteks 1M](/docs/id/model-config#extended-context). Ketika diatur, varian model 1M tidak tersedia di pemilih model, dan Claude Code menahan sesi di model dengan jendela 1M asli, seperti [Sonnet 5](/docs/id/model-config#sonnet-5-context-window) dan model Fable, ke jendela 200K; lihat [Konteks Diperpanjang](/docs/id/model-config#extended-context) untuk cara tahan ditegakkan. Berguna untuk lingkungan perusahaan dengan persyaratan kepatuhan. Untuk perannya dalam mengoreksi jendela untuk ID model `[1m]` yang tidak dikenali, lihat [Koreksi jendela untuk ID model gateway atau khusus](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

238| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Atur ke `1` untuk menonaktifkan [penalaran adaptif](/docs/id/model-config#adjust-effort-level) pada Opus 4.6 dan Sonnet 4.6 dan kembali ke anggaran pemikiran tetap yang dikendalikan oleh `MAX_THINKING_TOKENS`. Tidak berpengaruh pada [model Fable](/docs/id/model-config#extended-thinking), Sonnet 5, atau Opus 4.7 dan lebih baru, yang selalu menggunakan penalaran adaptif |240| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Atur ke `1` untuk menonaktifkan [penalaran adaptif](/docs/id/model-config#adjust-effort-level) di Opus 4.6 dan Sonnet 4.6 dan kembali ke anggaran pemikiran tetap yang dikendalikan oleh `MAX_THINKING_TOKENS`. Tidak berpengaruh pada [model Fable](/docs/id/model-config#extended-thinking), Sonnet 5, atau Opus 4.7 dan lebih baru, yang selalu menggunakan penalaran adaptif |

239| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Atur ke `1` untuk menghentikan Claude Code dari menggabungkan blok `env` [pengaturan yang dikelola](/docs/id/managed-settings#precedence-within-the-managed-tier) per kunci di seluruh sumber admin, jadi hanya blok `env` sumber prioritas tertinggi yang berlaku, seperti sebelum v2.1.223. Atur di lingkungan yang meluncurkan Claude Code, karena Claude Code mengabaikan salinan yang dikirim melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.223 atau lebih baru |241| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Atur ke `1` untuk menghentikan Claude Code dari penggabungan blok `env` [pengaturan yang dikelola](/docs/id/managed-settings#precedence-within-the-managed-tier) per kunci di seluruh sumber admin, jadi hanya blok `env` sumber prioritas tertinggi yang berlaku, seperti sebelum v2.1.223. Atur di lingkungan yang meluncurkan Claude Code, karena Claude Code mengabaikan salinan yang dikirim melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.223 atau lebih baru |

240| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Atur ke `1` untuk menonaktifkan [alat advisor](/docs/id/advisor). Perintah `/advisor` menjadi tidak tersedia, `advisorModel` yang dikonfigurasi apa pun diabaikan, dan flag `--advisor` diterima tetapi tidak berpengaruh, jadi skrip yang ada yang meneruskannya terus bekerja tanpa kesalahan |242| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Atur ke `1` untuk menonaktifkan [alat penasihat](/docs/id/advisor). Perintah `/advisor` menjadi tidak tersedia, `advisorModel` yang dikonfigurasi apa pun diabaikan, dan flag `--advisor` diterima tetapi tidak berpengaruh, jadi skrip yang ada yang meneruskannya terus bekerja tanpa kesalahan |

241| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Atur ke `1` untuk mematikan [agent latar belakang dan tampilan agent](/docs/id/agent-view): `claude agents`, `--bg`, `/background`, dan supervisor on-demand. Setara dengan pengaturan [`disableAgentView`](/docs/id/settings-reference#disableagentview) |243| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Atur ke `1` untuk menonaktifkan [agen latar belakang dan tampilan agent](/docs/id/agent-view): `claude agents`, `--bg`, `/background`, dan supervisor sesuai permintaan. Setara dengan pengaturan [`disableAgentView`](/docs/id/settings-reference#disableagentview) |

242| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Atur ke `1` untuk menonaktifkan [rendering fullscreen](/docs/id/fullscreen) dan menggunakan renderer layar utama klasik. Percakapan tetap dalam scrollback asli terminal Anda sehingga `Cmd+f` dan mode salinan tmux bekerja seperti biasa. Mengambil prioritas atas `CLAUDE_CODE_NO_FLICKER` dan pengaturan [`tui`](/docs/id/settings-reference#tui). Anda juga dapat beralih dengan `/tui default`. Tidak berlaku untuk sesi latar belakang yang dibuka dari [tampilan agent](/docs/id/agent-view), yang selalu menggunakan rendering fullscreen |244| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Atur ke `1` untuk menonaktifkan [rendering fullscreen](/docs/id/fullscreen) dan gunakan renderer layar utama klasik. Percakapan tetap di scrollback asli terminal Anda sehingga `Cmd+f` dan mode salinan tmux bekerja seperti biasa. Mengambil prioritas di atas `CLAUDE_CODE_NO_FLICKER` dan pengaturan [`tui`](/docs/id/settings-reference#tui). Anda juga dapat beralih dengan `/tui default`. Tidak berlaku untuk sesi latar belakang yang dibuka dari [tampilan agent](/docs/id/agent-view), yang selalu menggunakan rendering fullscreen |

243| `CLAUDE_CODE_DISABLE_ARTIFACT` | Atur ke `1` untuk mematikan alat [Artifact](/docs/id/artifacts), yang menerbitkan output sesi sebagai halaman web pribadi di claude.ai. Setelah Anda menetapkannya, tidak ada file pengaturan yang menghidupkan alat kembali. Untuk mematikan alat dari file pengaturan sebagai gantinya, atur [`enableArtifact`](/docs/id/settings-reference#enableartifact) ke `false`; kunci [`disableArtifact`](/docs/id/settings-reference#disableartifact) yang sudah usang juga mematikannya |245| `CLAUDE_CODE_DISABLE_ARTIFACT` | Atur ke `1` untuk menonaktifkan alat [Artifact](/docs/id/artifacts), yang mempublikasikan output sesi sebagai halaman web pribadi di claude.ai. Setelah Anda menetapkannya, tidak ada file pengaturan yang mengaktifkan alat kembali. Untuk menonaktifkan alat dari file pengaturan sebagai gantinya, atur [`enableArtifact`](/docs/id/settings-reference#enableartifact) ke `false`; kunci [`disableArtifact`](/docs/id/settings-reference#disableartifact) yang sudah usang juga menonaktifkannya |

244| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Atur ke `1` untuk menonaktifkan pemrosesan lampiran. Penyebutan file dengan sintaks `@` dikirim sebagai teks biasa daripada diperluas ke konten file |246| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Atur ke `1` untuk menonaktifkan pemrosesan lampiran. Penyebutan file dengan sintaks `@` dikirim sebagai teks biasa daripada diperluas ke konten file |

245| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Atur ke `1` untuk menonaktifkan [memori otomatis](/docs/id/memory#auto-memory). Atur ke `0` untuk memaksa memori otomatis aktif bahkan ketika mode `--bare` atau [`autoMemoryEnabled: false`](/docs/id/settings-reference#automemoryenabled) akan menonaktifkannya. Ketika dinonaktifkan, Claude tidak membuat atau memuat file memori otomatis |247| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Atur ke `1` untuk menonaktifkan [memori otomatis](/docs/id/memory#auto-memory). Atur ke `0` untuk memaksa memori otomatis aktif bahkan ketika mode `--bare` atau [`autoMemoryEnabled: false`](/docs/id/settings-reference#automemoryenabled) akan menonaktifkannya. Ketika dinonaktifkan, Claude tidak membuat atau memuat file memori otomatis |

246| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Atur ke `1` untuk menonaktifkan semua fungsionalitas tugas latar belakang, termasuk parameter `run_in_background` pada alat Bash dan subagent, auto-backgrounding, dan pintasan Ctrl+B |248| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Atur ke `1` untuk menonaktifkan semua fungsionalitas tugas latar belakang, termasuk parameter `run_in_background` pada alat Bash dan subagent, auto-backgrounding, dan pintasan Ctrl+B |

247| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Atur ke `1` untuk menghentikan Claude Code dari memperlakukan respons streaming [Amazon Bedrock](/docs/id/amazon-bedrock) dengan header `Content-Type` yang hilang atau kosong sebagai aliran acara biner Amazon Bedrock. Secara default, Claude Code menganggap gateway menjatuhkan header dari respons yang sebaliknya tidak dimodifikasi, jadi itu mendekode badan dan streaming terus bekerja. Atur ini hanya untuk gateway yang juga memancarkan kembali aliran sebagai server-sent events; Claude Code kemudian membaca badan tanpa header sebagai server-sent events sebagai gantinya. Memerlukan Claude Code v2.1.239 atau lebih baru |249| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Atur ke `1` untuk menghentikan Claude Code dari memperlakukan respons streaming [Amazon Bedrock](/docs/id/amazon-bedrock) dengan header `Content-Type` yang hilang atau kosong sebagai aliran acara biner Amazon Bedrock. Secara default, Claude Code mengasumsikan gateway menghilangkan header dari respons yang sebaliknya tidak dimodifikasi, jadi itu mendekode badan dan streaming terus bekerja. Atur ini hanya untuk gateway yang juga memancarkan ulang aliran sebagai acara yang dikirim server; Claude Code kemudian membaca badan tanpa header sebagai acara yang dikirim server sebagai gantinya. Memerlukan Claude Code v2.1.239 atau lebih baru |

248| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Atur ke `1` untuk melewati pemeriksaan bahwa respons streaming [Amazon Bedrock](/docs/id/amazon-bedrock) membawa tipe konten `application/vnd.amazon.eventstream`. Tanpa variabel ini, ketika respons membawa tipe konten berbeda, Claude Code gagal permintaan dengan kesalahan yang menyebutkan tipe itu, yang berarti [gateway atau proxy mengubah respons](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Konfigurasikan gateway untuk meneruskan header `Content-Type` dan badan tanpa dimodifikasi daripada menetapkan variabel ini. Memerlukan Claude Code v2.1.208 atau lebih baru |250| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Atur ke `1` untuk melewati pemeriksaan bahwa respons streaming [Amazon Bedrock](/docs/id/amazon-bedrock) membawa jenis konten `application/vnd.amazon.eventstream`. Tanpa variabel ini, ketika respons membawa jenis konten berbeda, Claude Code gagal permintaan dengan kesalahan yang menyebutkan jenis itu, yang berarti [gateway atau proxy mengubah respons](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Konfigurasikan gateway untuk meneruskan header `Content-Type` dan badan tanpa dimodifikasi daripada menetapkan variabel ini. Memerlukan Claude Code v2.1.208 atau lebih baru |

249| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Atur ke `1` untuk menghentikan perintah shell latar belakang sesi [latar belakang](/docs/id/agent-view) yang berjalan, alur kerja dinamis, dan, mulai dari v2.1.198, subagent latar belakang ketika [supervisor](/docs/id/agent-view#the-supervisor-process) berhenti, memulai ulang, atau memperbarui proses sesi itu, daripada menyerahkannya ke proses berikutnya sesi. Mempengaruhi hanya penyerahan itu: backgrounding sesi dengan `←` atau [`/background`](/docs/id/agent-view#from-inside-a-session) masih membawa pekerjaan dalam penerbangan, dan `CLAUDE_DISABLE_ADOPT` mematikan keduanya. Memerlukan Claude Code v2.1.196 atau lebih baru |251| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Atur ke `1` untuk menghentikan perintah shell latar belakang sesi [latar belakang](/docs/id/agent-view) yang berjalan, alur kerja dinamis, dan, mulai dari v2.1.198, subagent latar belakang ketika [supervisor](/docs/id/agent-view#the-supervisor-process) berhenti, memulai ulang, atau memperbarui proses sesi itu, daripada menyerahkannya ke proses berikutnya sesi. Hanya mempengaruhi penyerahan itu: backgrounding sesi dengan `←` atau [`/background`](/docs/id/agent-view#from-inside-a-session) masih membawa pekerjaan dalam penerbangan, dan `CLAUDE_DISABLE_ADOPT` menonaktifkan keduanya. Memerlukan Claude Code v2.1.196 atau lebih baru |

250| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Atur ke `1` untuk menghentikan Claude Code dari menghentikan [perintah shell latar belakang](/docs/id/interactive-mode#background-bash-commands) ketika sistem operasi melaporkan tekanan memori. Secara default, di macOS dan Linux, Claude Code menghentikan shell latar belakang yang dimulai dalam sesi utama pada sinyal tekanan memori setelah sesi telah menganggur selama 30 menit dan tidak ada giliran atau subagent yang berjalan. Windows tidak memiliki sinyal tekanan memori, jadi variabel ini tidak berpengaruh di sana. Memerlukan Claude Code v2.1.193 atau lebih baru |252| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Atur ke `1` untuk menghentikan Claude Code dari menghentikan [perintah shell latar belakang](/docs/id/interactive-mode#background-bash-commands) ketika sistem operasi melaporkan tekanan memori. Secara default, di macOS dan Linux, Claude Code menghentikan shell latar belakang yang dimulai di sesi utama pada sinyal tekanan memori setelah sesi telah menganggur selama 30 menit dan tidak ada giliran atau subagent yang berjalan. Windows tidak memiliki sinyal tekanan memori, jadi variabel ini tidak berpengaruh di sana. Memerlukan Claude Code v2.1.193 atau lebih baru |

251| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Atur ke `1` untuk menonaktifkan [skills](/docs/id/skills) dan alur kerja yang disertakan dengan Claude Code: skills bundel dan alur kerja dihapus sepenuhnya, sementara perintah bawaan seperti `/init` tetap dapat diketik tetapi disembunyikan dari model. `/doctor` tetap dapat diketik seperti perintah bawaan; sembunyikan dengan `DISABLE_DOCTOR_COMMAND` sebagai gantinya. Skills dari plugin, `.claude/skills/`, dan `.claude/commands/` tidak terpengaruh. Setara dengan pengaturan [`disableBundledSkills`](/docs/id/settings-reference#disablebundledskills) |253| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Atur ke `1` untuk menonaktifkan [skills](/docs/id/skills) dan alur kerja yang disertakan dengan Claude Code: skills bundel dan alur kerja dihapus sepenuhnya, sementara perintah bawaan seperti `/init` tetap dapat diketik tetapi disembunyikan dari model. `/doctor` tetap dapat diketik seperti perintah bawaan; sembunyikan dengan `DISABLE_DOCTOR_COMMAND` sebagai gantinya. Skills dari plugin, `.claude/skills/`, dan `.claude/commands/` tidak terpengaruh. Setara dengan pengaturan [`disableBundledSkills`](/docs/id/settings-reference#disablebundledskills) |

252| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Atur ke `1` untuk menjaga alat browser [Claude in Chrome](/docs/id/chrome) tetap tersedia sambil menghilangkan bagian Chrome dari prompt sistem dan skill bundel `/claude-in-chrome` [](/docs/id/skills#bundled-skills). Untuk host yang menyematkan Claude Code dan menyediakan panduan browser mereka sendiri. Memerlukan Claude Code v2.1.257 atau lebih baru |254| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Atur ke `1` untuk menjaga alat browser [Claude in Chrome](/docs/id/chrome) tetap tersedia sambil menghilangkan bagian Chrome dari prompt sistem dan skill bundel `/claude-in-chrome` [](/docs/id/skills#bundled-skills). Untuk host yang menyematkan Claude Code dan menyediakan panduan browser mereka sendiri. Memerlukan Claude Code v2.1.257 atau lebih baru |

253| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Atur ke `1` untuk mencegah memuat file memori CLAUDE.md apa pun ke dalam konteks, termasuk file memori pengguna, proyek, dan otomatis |255| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Atur ke `1` untuk mencegah memuat file memori CLAUDE.md apa pun ke dalam konteks, termasuk file memori pengguna, proyek, dan otomatis |

254| `CLAUDE_CODE_DISABLE_CRON` | Atur ke `1` untuk menonaktifkan [tugas terjadwal](/docs/id/scheduled-tasks). Skill `/loop` dan alat cron menjadi tidak tersedia dan tugas yang sudah dijadwalkan apa pun berhenti diaktifkan, termasuk tugas yang sudah berjalan di tengah sesi |256| `CLAUDE_CODE_DISABLE_CRON` | Atur ke `1` untuk menonaktifkan [tugas terjadwal](/docs/id/scheduled-tasks). Skill `/loop` dan alat cron menjadi tidak tersedia dan tugas yang sudah dijadwalkan apa pun berhenti diaktifkan, termasuk tugas yang sudah berjalan di tengah sesi |

255| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Atur ke `1` untuk menghapus header permintaan `anthropic-beta` spesifik Anthropic dan bidang skema alat beta (seperti `defer_loading` dan `eager_input_streaming`) dari permintaan API. Gunakan ini ketika gateway proxy menolak permintaan dengan kesalahan seperti "Unexpected value(s) for the `anthropic-beta` header" atau "Extra inputs are not permitted". Bidang standar (`name`, `description`, `input_schema`, `cache_control`) dipertahankan. [Pencarian alat MCP](/docs/id/mcp#scale-with-mcp-tool-search) dinonaktifkan dan semua alat MCP dimuat di muka, bahkan ketika Anda menetapkan `ENABLE_TOOL_SEARCH`. Pada Claude Code v2.1.227 atau lebih baru, [pengaturan yang dikelola](/docs/id/managed-settings) dapat menjaga pencarian alat tetap aktif. [Disable pre-release capabilities](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) mencakup di mana penggantian berlaku |257| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Atur ke `1` untuk menghapus header permintaan `anthropic-beta` spesifik Anthropic dan bidang skema alat beta (seperti `defer_loading` dan `eager_input_streaming`) dari permintaan API. Gunakan ini ketika gateway proxy menolak permintaan dengan kesalahan seperti "Unexpected value(s) for the `anthropic-beta` header" atau "Extra inputs are not permitted". Bidang standar (`name`, `description`, `input_schema`, `cache_control`) dipertahankan. [Pencarian alat MCP](/docs/id/mcp#scale-with-mcp-tool-search) dinonaktifkan dan semua alat MCP dimuat di muka, bahkan ketika Anda menetapkan `ENABLE_TOOL_SEARCH`. Di Claude Code v2.1.227 atau lebih baru, [pengaturan yang dikelola](/docs/id/managed-settings) dapat menjaga pencarian alat tetap aktif. [Nonaktifkan kemampuan pra-rilis](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) mencakup tempat penggantian berlaku |

256| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Atur ke `1` untuk menonaktifkan [subagent Explore dan Plan](/docs/id/sub-agents#built-in-subagents) bawaan. Claude mengeksplorasi dengan alat pencarian atau subagent tujuan umum sebagai gantinya, dan [mode rencana](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) membaca file secara langsung daripada meluncurkan agen Explore dan Plan. Subagent kustom bernama `Explore` atau `Plan` tidak terpengaruh. Untuk menghapus setiap tipe subagent bawaan dalam Agent SDK atau mode non-interaktif, gunakan `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` sebagai gantinya. Memerlukan Claude Code v2.1.198 atau lebih baru |258| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Atur ke `1` untuk menonaktifkan [subagent Explore dan Plan](/docs/id/sub-agents#built-in-subagents) bawaan. Claude mengeksplorasi dengan alat pencarian atau subagent tujuan umum sebagai gantinya, dan [mode rencana](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) membaca file secara langsung daripada meluncurkan agen Explore dan Plan. Subagent khusus bernama `Explore` atau `Plan` tidak terpengaruh. Untuk menghapus setiap jenis subagent bawaan di Agent SDK atau mode non-interaktif, gunakan `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` sebagai gantinya. Memerlukan Claude Code v2.1.198 atau lebih baru |

257| `CLAUDE_CODE_DISABLE_FAST_MODE` | Atur ke `1` untuk menonaktifkan [mode cepat](/docs/id/fast-mode) |259| `CLAUDE_CODE_DISABLE_FAST_MODE` | Atur ke `1` untuk menonaktifkan [mode cepat](/docs/id/fast-mode) |

258| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Atur ke `1` untuk menonaktifkan survei kualitas sesi "How is Claude doing?". Survei juga dinonaktifkan ketika `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, atau `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` diatur, kecuali `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` memilih kembali. Untuk menetapkan tingkat sampel daripada menonaktifkan sepenuhnya, gunakan pengaturan [`feedbackSurveyRate`](/docs/id/settings-reference#feedbacksurveyrate). Lihat [Survei kualitas sesi](/docs/id/data-usage#session-quality-surveys) |260| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Atur ke `1` untuk menonaktifkan survei kualitas sesi "Bagaimana Claude melakukannya?". Survei juga dinonaktifkan ketika `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, atau `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` diatur, kecuali `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` memilih kembali. Untuk menetapkan tingkat sampel daripada menonaktifkan sepenuhnya, gunakan pengaturan [`feedbackSurveyRate`](/docs/id/settings-reference#feedbacksurveyrate). Lihat [Survei kualitas sesi](/docs/id/data-usage#session-quality-surveys) |

259| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Atur ke `1` untuk menonaktifkan file [checkpointing](/docs/id/checkpointing). Perintah `/rewind` tidak akan dapat mengembalikan perubahan kode. Mengganti pengaturan [`fileCheckpointingEnabled`](/docs/id/settings-reference#filecheckpointingenabled) |261| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Atur ke `1` untuk menonaktifkan file [checkpointing](/docs/id/checkpointing). Perintah `/rewind` tidak akan dapat mengembalikan perubahan kode. Mengganti pengaturan [`fileCheckpointingEnabled`](/docs/id/settings-reference#filecheckpointingenabled) |

260| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Atur ke `1` untuk menghapus instruksi alur kerja commit dan PR bawaan dan snapshot status git dari prompt sistem Claude. Berguna saat menggunakan skill alur kerja git Anda sendiri. Mengambil prioritas atas pengaturan [`includeGitInstructions`](/docs/id/settings-reference#includegitinstructions) ketika diatur |262| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Atur ke `1` untuk menghapus instruksi alur kerja commit dan PR bawaan dan snapshot status git dari prompt sistem Claude. Berguna saat menggunakan skill alur kerja git Anda sendiri. Mengambil prioritas di atas pengaturan [`includeGitInstructions`](/docs/id/settings-reference#includegitinstructions) ketika diatur |

261| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Atur ke `1` untuk mencegah pemetaan ulang otomatis Opus 4.0 dan 4.1 ke versi Opus saat ini di API Anthropic. Gunakan ketika Anda sengaja ingin menyematkan model yang lebih lama. Pemetaan ulang tidak berjalan di Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry |263| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Atur ke `1` untuk mencegah pemetaan ulang otomatis Opus 4.0 dan 4.1 ke versi Opus saat ini di API Anthropic. Gunakan ketika Anda sengaja ingin menyematkan model yang lebih lama. Pemetaan ulang tidak berjalan di Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry |

262| `CLAUDE_CODE_DISABLE_MOUSE` | Atur ke `1` untuk menonaktifkan pelacakan mouse dalam [rendering fullscreen](/docs/id/fullscreen). Pengguliran keyboard dengan `PgUp` dan `PgDn` masih bekerja. Gunakan ini untuk menjaga perilaku copy-on-select asli terminal Anda |264| `CLAUDE_CODE_DISABLE_MOUSE` | Atur ke `1` untuk menonaktifkan pelacakan mouse dalam [rendering fullscreen](/docs/id/fullscreen). Pengguliran keyboard dengan `PgUp` dan `PgDn` masih bekerja. Gunakan ini untuk menjaga perilaku salinan-pada-pilih asli terminal Anda |

263| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Atur ke `1` untuk menonaktifkan penanganan klik, seret, dan hover dalam [rendering fullscreen](/docs/id/fullscreen) sambil menjaga pengguliran roda mouse. Gunakan ini ketika Anda ingin scroll roda bekerja di dalam Claude Code tetapi tidak ingin klik memposisikan kursor, memperluas output alat, atau membuka tautan. `CLAUDE_CODE_DISABLE_MOUSE` mengambil prioritas ketika keduanya diatur. Memerlukan Claude Code v2.1.195 atau lebih baru |265| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Atur ke `1` untuk menonaktifkan penanganan klik, seret, dan hover dalam [rendering fullscreen](/docs/id/fullscreen) sambil menjaga pengguliran roda mouse. Gunakan ini ketika Anda ingin pengguliran roda bekerja di dalam Claude Code tetapi tidak ingin klik memposisikan kursor, memperluas output alat, atau membuka tautan. `CLAUDE_CODE_DISABLE_MOUSE` mengambil prioritas ketika keduanya diatur. Memerlukan Claude Code v2.1.195 atau lebih baru |

264| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Atur ke `1` untuk menghentikan Claude Code dari membaca ulang [sertifikat klien mTLS dan kunci](/docs/id/network-config#mtls-authentication) ketika permintaan API gagal dengan kesalahan tingkat koneksi, seperti reset koneksi atau kesalahan handshake TLS. Dengan reload dinonaktifkan, Claude Code memuat file yang diputar hanya ketika berikutnya menerapkan pengaturan atau pada startup berikutnya. Memerlukan Claude Code v2.1.232 atau lebih baru |266| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Atur ke `1` untuk menghentikan Claude Code dari membaca ulang [sertifikat klien mTLS dan kunci](/docs/id/network-config#mtls-authentication) ketika permintaan API gagal dengan kesalahan tingkat koneksi, seperti pengaturan ulang koneksi atau kesalahan jabat tangan TLS. Dengan reload dinonaktifkan, Claude Code memuat file yang diputar hanya ketika berikutnya menerapkan pengaturan atau pada startup berikutnya. Memerlukan Claude Code v2.1.232 atau lebih baru |

265| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk menonaktifkan lalu lintas jaringan yang tidak penting: auto-update, telemetri, pelaporan kesalahan, perintah `/feedback`, [umpan balik yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior), catatan rilis, [lencana status PR dan MR](/docs/id/interactive-mode#pr-review-status), dan pemeriksaan ketersediaan seperti pemeriksaan [mode cepat](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Ini juga menghentikan [jalankan latar belakang dari sumber perintah plugin](/docs/id/plugin-marketplaces#when-claude-code-re-runs-the-command), yang merupakan perintah lokal daripada lalu lintas jaringan, karena dapat memicu instalasi ketergantungan. **Menetapkannya ke `0` atau `false` masih menonaktifkan lalu lintas ini**, tidak seperti sebagian besar variabel on/off; batalkan penetapan variabel untuk mengizinkannya lagi. Juga menonaktifkan pengambilan flag fitur, yang membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan flag fitur](#features-that-need-feature-flag-fetching) tidak tersedia. Auto-install marketplace plugin resmi tidak tercakup; nonaktifkan dengan `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Tidak mempengaruhi [penemuan model gateway](/docs/id/llm-gateway-connect#add-gateway-models-to-the-model-picker), yang memiliki opt-in sendiri |267| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk menonaktifkan lalu lintas jaringan yang tidak penting: pembaruan otomatis, telemetri, pelaporan kesalahan, perintah `/feedback`, [umpan balik yang ditulis Claude](/docs/id/tools-reference#sendfeedback-tool-behavior), catatan rilis, pemeriksaan [lencana status PR dan MR](/docs/id/interactive-mode#pr-review-status), dan pemeriksaan ketersediaan seperti pemeriksaan [mode cepat](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Ini juga menghentikan [jalankan latar belakang dari sumber `command` plugin](/docs/id/plugin-marketplaces#when-claude-code-re-runs-the-command), yang merupakan perintah lokal daripada lalu lintas jaringan, karena mereka dapat memicu instalasi ketergantungan. **Menetapkannya ke `0` atau `false` masih menonaktifkan lalu lintas ini**, tidak seperti sebagian besar variabel aktif/mati; batalkan penetapan variabel untuk mengizinkannya lagi. Juga menonaktifkan pengambilan flag fitur, yang membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan flag fitur](#features-that-need-feature-flag-fetching) tidak tersedia. Instalasi otomatis marketplace plugin resmi tidak tercakup; nonaktifkan dengan `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Tidak mempengaruhi [penemuan model gateway](/docs/id/llm-gateway-connect#add-gateway-models-to-the-model-picker), yang memiliki opt-in sendiri |

266| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Atur ke `1` untuk menonaktifkan fallback non-streaming ketika permintaan streaming gagal di tengah-tengah. Kesalahan streaming menyebar ke lapisan percobaan ulang sebagai gantinya. Berguna ketika proxy atau gateway menyebabkan fallback menghasilkan eksekusi alat duplikat |268| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Atur ke `1` untuk menonaktifkan fallback non-streaming ketika permintaan streaming gagal di tengah-tengah. Kesalahan streaming menyebar ke lapisan percobaan ulang sebagai gantinya. Berguna ketika proxy atau gateway menyebabkan fallback menghasilkan eksekusi alat duplikat |

267| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Atur ke `1` untuk mengirim notifikasi desktop alat `PushNotification` bahkan saat Anda mengetik atau fokus pada terminal. Secara default alat melewati notifikasi desktop dan [push mobile](/docs/id/remote-control#mobile-push-notifications) ketika mendeteksi aktivitas keyboard atau fokus terminal baru-baru ini. Variabel ini hanya menonaktifkan pemeriksaan lokal itu, jadi server masih dapat menekan push mobile ketika mendeteksi bahwa Anda aktif. Memerlukan Claude Code v2.1.193 atau lebih baru |269| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Atur ke `1` untuk mengirim pemberitahuan desktop alat `PushNotification` bahkan saat Anda mengetik atau fokus pada terminal. Secara default alat melewati pemberitahuan desktop dan [push mobile](/docs/id/remote-control#mobile-push-notifications) ketika mendeteksi aktivitas keyboard atau fokus terminal baru-baru ini. Variabel ini hanya menonaktifkan pemeriksaan lokal itu, jadi server masih dapat menekan push mobile ketika mendeteksi bahwa Anda aktif. Memerlukan Claude Code v2.1.193 atau lebih baru |

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

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

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

271| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Atur ke `1` untuk menonaktifkan pembaruan judul terminal otomatis berdasarkan konteks percakapan. Dalam sesi Agent SDK dan `claude -p`, ini juga melewati permintaan model kecil/cepat latar belakang yang menghasilkan judul sesi |273| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Atur ke `1` untuk menonaktifkan pembaruan judul terminal otomatis berdasarkan konteks percakapan. Di sesi Agent SDK dan `claude -p`, ini juga melewati permintaan model kecil/cepat latar belakang yang menghasilkan judul sesi |

272| `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. Perilaku variabel tidak berubah dari versi sebelumnya; pada model yang berpikir secara default, menghilangkan parameter berarti model mungkin masih berpikir. Untuk secara eksplisit menonaktifkan [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) di API Anthropic, gunakan `MAX_THINKING_TOKENS=0` sebagai gantinya, yang juga tidak efektif pada [model Fable](/docs/id/model-config#extended-thinking) karena mereka tidak dapat memiliki pemikiran dimatikan. Pada [penyedia pihak ketiga](/docs/id/third-party-integrations), `0` demikian pula menghilangkan parameter, jadi kedua variabel berperilaku sama di sana |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 |

273| `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 [Correct the window for a gateway or custom model ID](/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 |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 |

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

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

276| `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 atas `--effort`, `/effort`, dan pengaturan `modelSettings` dan `effortLevel`. Lihat [Adjust effort level](/docs/id/model-config#adjust-effort-level) |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) |

277| `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 di-fork](/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 |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 |

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

279| `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 atas pengaturan dan toggle `/config` |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` |

280| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Atur ke `1` untuk menyegarkan status plugin pada 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 |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 |

281| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Atur ke `1` untuk merutekan survei kualitas sesi "How is Claude doing?" ke [kolektor OpenTelemetry](/docs/id/monitoring-usage) Anda sendiri ketika lalu lintas nonessential terikat Anthropic diblokir. Peringkat survei dipancarkan hanya sebagai acara OTEL ke kolektor yang dikonfigurasi. Tidak ada data survei yang dikirim ke Anthropic dalam mode ini. Berlaku ketika `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY`, atau `DO_NOT_TRACK` diatur, dan tidak berpengaruh sebaliknya. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` dan kebijakan umpan balik produk organisasi mengambil prioritas |283| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Atur ke `1` untuk merutekan survei kualitas sesi "Bagaimana Claude melakukannya?" ke [kolektor OpenTelemetry](/docs/id/monitoring-usage) Anda sendiri ketika lalu lintas nonessential terikat Anthropic diblokir. Peringkat survei dipancarkan hanya sebagai acara OTEL ke kolektor yang dikonfigurasi. Tidak ada data survei yang dikirim ke Anthropic dalam mode ini. Berlaku ketika `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY`, atau `DO_NOT_TRACK` diatur, dan tidak berpengaruh sebaliknya. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` dan kebijakan umpan balik produk organisasi mengambil prioritas |

282| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Mengontrol apakah input panggilan alat mengalir dari API saat Claude menghasilkannya. Dengan ini dimatikan, input alat besar seperti penulisan file panjang tiba hanya setelah Claude selesai menghasilkannya, yang dapat terlihat seperti itu tergantung. Diaktifkan secara default di API Anthropic. Di Amazon Bedrock dan Google Cloud's Agent Platform, diaktifkan per model di mana kontainer yang digunakan mendukungnya. Atur ke `0` untuk memilih keluar. Atur ke `1` untuk memaksa aktif saat merutekan melalui proxy melalui `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, atau `ANTHROPIC_BEDROCK_BASE_URL`. Dimatikan secara default pada Microsoft Foundry dan koneksi [gateway](/docs/id/llm-gateway) |284| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Mengontrol apakah input panggilan alat mengalir dari API saat Claude menghasilkannya. Dengan ini dimatikan, input alat besar seperti penulisan file panjang tiba hanya setelah Claude selesai menghasilkannya, yang dapat terlihat seperti itu tergantung. Diaktifkan secara default di API Anthropic. Di Amazon Bedrock dan Google Cloud's Agent Platform, diaktifkan per model di mana kontainer yang digunakan mendukungnya. Atur ke `0` untuk memilih keluar. Atur ke `1` untuk memaksa aktif saat merutekan melalui proxy melalui `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, atau `ANTHROPIC_BEDROCK_BASE_URL`. Dimatikan secara default di Microsoft Foundry dan koneksi [gateway](/docs/id/llm-gateway) |

283| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Atur ke `1` untuk mengisi pemilih `/model` dari endpoint `/v1/models` gateway Anda ketika `ANTHROPIC_BASE_URL` menunjuk ke gateway yang kompatibel dengan Anthropic seperti LiteLLM, Kong, atau proxy internal. Dimatikan secara default karena gateway yang didukung oleh kunci API bersama akan menampilkan setiap pengguna setiap model yang dapat diakses kunci. Model yang ditemukan masih disaring oleh daftar allowlist [`availableModels`](/docs/id/settings-reference#availablemodels) yang diterima sesi; berikan daftar melalui [MDM atau file pengaturan yang dikelola](/docs/id/managed-settings#delivery-mechanisms), karena [pengiriman yang dikelola server tidak tersedia pada konfigurasi gateway](/docs/id/server-managed-settings#platform-availability) |285| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Atur ke `1` untuk mengisi pemilih `/model` dari endpoint `/v1/models` gateway Anda ketika `ANTHROPIC_BASE_URL` menunjuk ke gateway yang kompatibel Anthropic seperti LiteLLM, Kong, atau proxy internal. Dimatikan secara default karena gateway yang didukung oleh kunci API bersama akan menampilkan setiap pengguna setiap model yang dapat diakses kunci. Model yang ditemukan masih disaring oleh daftar izin [`availableModels`](/docs/id/settings-reference#availablemodels) yang diterima sesi; berikan daftar melalui [MDM atau file pengaturan yang dikelola](/docs/id/managed-settings#delivery-mechanisms), karena [pengiriman yang dikelola server tidak tersedia di konfigurasi gateway](/docs/id/server-managed-settings#platform-availability) |

284| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Dihapus di v2.1.142, ketika default [mode cepat](/docs/id/fast-mode) pindah dari Opus 4.6 ke Opus 4.7 |286| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Dihapus di v2.1.142, ketika default [mode cepat](/docs/id/fast-mode) pindah dari Opus 4.6 ke Opus 4.7 |

285| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Atur ke `false` untuk mematikan saran prompt, prediksi abu-abu yang muncul di input prompt Anda. Mengambil prioritas atas pengaturan [`promptSuggestionEnabled`](/docs/id/settings-reference#promptsuggestionenabled), yang merupakan apa yang toggle **Prompt suggestions** di `/config` tulis. Claude Code juga [menjeda saran saat akun Anda mendekati atau mencapai batas penggunaan](/docs/id/interactive-mode#when-claude-code-skips-suggestions). Atur ke `true` untuk menjaganya tetap aktif sampai Anda mencapai batas. Memerlukan Claude Code v2.1.238 atau lebih baru. Lihat [Prompt suggestions](/docs/id/interactive-mode#prompt-suggestions) |287| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Atur ke `false` untuk menonaktifkan saran prompt, prediksi abu-abu yang muncul di input prompt Anda. Mengambil prioritas di atas pengaturan [`promptSuggestionEnabled`](/docs/id/settings-reference#promptsuggestionenabled), yang merupakan apa yang toggle **Saran prompt** di `/config` tulis. Claude Code juga [menjeda saran saat akun Anda mendekati atau mencapai batas penggunaan](/docs/id/interactive-mode#when-claude-code-skips-suggestions). Atur ke `true` untuk menyimpannya aktif sampai Anda mencapai batas. Memerlukan Claude Code v2.1.238 atau lebih baru. Lihat [Saran prompt](/docs/id/interactive-mode#prompt-suggestions) |

286| `CLAUDE_CODE_ENABLE_TASKS` | Memilih alat pelacakan tugas mana yang Claude Code sediakan dalam [sesi yang memilikinya](/docs/id/tools-reference#task-tool-availability). Secara default, Claude Code menyediakan alat Task `TaskCreate`, `TaskUpdate`, `TaskGet`, dan `TaskList`. Atur ke `0` untuk mendapatkan alat `TodoWrite` warisan sebagai gantinya. Lihat [Task list](/docs/id/interactive-mode#task-list) |288| `CLAUDE_CODE_ENABLE_TASKS` | Memilih alat pelacakan tugas mana yang Claude Code sediakan di [sesi yang memilikinya](/docs/id/tools-reference#task-tool-availability). Secara default, Claude Code menyediakan alat Task `TaskCreate`, `TaskUpdate`, `TaskGet`, dan `TaskList`. Atur ke `0` untuk mendapatkan alat `TodoWrite` warisan sebagai gantinya. Lihat [Daftar tugas](/docs/id/interactive-mode#task-list) |

287| `CLAUDE_CODE_ENABLE_TELEMETRY` | Atur ke `1` untuk mengaktifkan pengumpulan data OpenTelemetry untuk metrik dan logging. Diperlukan sebelum mengonfigurasi pengekspor OTel. Lihat [Monitoring](/docs/id/monitoring-usage) |289| `CLAUDE_CODE_ENABLE_TELEMETRY` | Atur ke `1` untuk mengaktifkan pengumpulan data OpenTelemetry untuk metrik dan logging. Diperlukan sebelum mengonfigurasi pengekspor OTel. Lihat [Monitoring](/docs/id/monitoring-usage) |

288| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Atur ke `1` untuk mendapatkan alat pelacakan tugas pada model yang tercantum di bawah [Task tool availability](/docs/id/tools-reference#task-tool-availability), di mana Claude Code sebaliknya meninggalkannya. `CLAUDE_CODE_ENABLE_TASKS` masih memilih alat Task atau `TodoWrite`. Memerlukan Claude Code v2.1.233 atau lebih baru |290| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Atur ke `1` untuk mendapatkan alat pelacakan tugas di setiap model. Tanpanya, Claude Code menyediakannya secara default hanya di model yang tercantum di bawah [Ketersediaan alat Task](/docs/id/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` masih memilih alat Task atau `TodoWrite`. Memerlukan Claude Code v2.1.233 atau lebih baru |

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

290| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Atur ke `1` untuk mengaktifkan [tim agent](/docs/id/agent-teams). Tim agent bersifat eksperimental dan dinonaktifkan secara default |292| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Atur ke `1` untuk mengaktifkan [tim agent](/docs/id/agent-teams). Tim agent bersifat eksperimental dan dinonaktifkan secara default |

291| `CLAUDE_CODE_EXTRA_BODY` | Objek JSON untuk digabungkan ke tingkat atas setiap badan permintaan API. Berguna untuk meneruskan parameter spesifik penyedia yang Claude Code tidak tunjukkan secara langsung. Nilai yang diekspor dalam shell Anda juga berlaku untuk [sesi latar belakang](/docs/id/agent-view) yang Anda kirim dengan `claude agents` atau `--bg`. Sebelum v2.1.206, sesi latar belakang mengabaikan nilai yang diekspor shell dan menggunakan salinan apa pun yang diwarisi proses supervisor latar belakang |293| `CLAUDE_CODE_EXTRA_BODY` | Objek JSON untuk digabungkan ke tingkat atas setiap badan permintaan API. Berguna untuk meneruskan parameter spesifik penyedia yang Claude Code tidak tunjukkan secara langsung. Nilai yang diekspor di shell Anda juga berlaku untuk [sesi latar belakang](/docs/id/agent-view) yang Anda kirim dengan `claude agents` atau `--bg`. Sebelum v2.1.206, sesi latar belakang mengabaikan nilai yang diekspor shell dan menggunakan salinan apa pun yang diwarisi proses supervisor latar belakang |

292| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Ganti batas token default untuk pembacaan file. Berguna ketika Anda perlu membaca file yang lebih besar secara penuh |294| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Ganti batas token default untuk pembacaan file. Berguna ketika Anda perlu membaca file yang lebih besar secara penuh |

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

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

295| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Atur ke `1` untuk memaksa-mengaktifkan mode pribadi DEC 2026 [synchronized output](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) ketika terminal Anda mendukungnya tetapi tidak terdeteksi otomatis. Berguna untuk emulator seperti `eat` Emacs yang mengimplementasikan BSU/ESU tetapi tidak menjawab 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 |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 |

296| `CLAUDE_CODE_FORK_SUBAGENT` | Mengontrol [mode fork](/docs/id/sub-agents#turn-fork-mode-on-or-off), yang memungkinkan Claude untuk memunculkan [subagent yang di-fork](/docs/id/sub-agents#fork-the-current-conversation) sendiri dan aktif secara default hanya dalam sesi interaktif. Atur ke `1` untuk mengaktifkannya dalam `claude -p` dan Agent SDK juga, atau `0` untuk mematikannya 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; pada versi sebelumnya, atur variabel ke `1` untuk mengaktifkan mode fork |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 |

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

298| `CLAUDE_CODE_GIT_BASH_PATH` | Hanya Windows: path ke executable Git Bash (`bash.exe`). Gunakan ketika Git Bash diinstal tetapi tidak dalam 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 bash atau sh. Lihat [Windows setup](/docs/id/setup#set-up-on-windows) |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) |

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

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

301| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout dalam detik untuk penemuan file alat Glob. Default ke 20 detik di sebagian besar platform dan 60 detik di WSL |303| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout dalam detik untuk penemuan file alat Glob. Default ke 20 detik di sebagian besar platform dan 60 detik di WSL |

302| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Berapa banyak menit pekerjaan latar belakang dapat membuat tujuan aktif menunggu sebelum Claude Code [meminta Claude untuk memeriksanya](/docs/id/goal#background-work-defers-evaluation). Default `30`. Atur `0` untuk mematikan check-in. Berikan seluruh menit dalam digit biasa, paling banyak `10080`, yang merupakan satu minggu. Claude Code memperlakukan nilai lain apa pun sebagai tidak diatur dan menggunakan default. Memerlukan Claude Code v2.1.234 atau lebih baru |304| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Berapa menit pekerjaan latar belakang dapat membuat tujuan aktif menunggu sebelum Claude Code [meminta Claude untuk memeriksanya](/docs/id/goal#background-work-defers-evaluation). Default `30`. Atur `0` untuk menonaktifkan check-in. Berikan menit utuh dalam digit biasa, paling banyak `10080`, yang merupakan satu minggu. Claude Code memperlakukan nilai apa pun sebagai tidak diatur dan menggunakan default. Memerlukan Claude Code v2.1.234 atau lebih baru |

303| `CLAUDE_CODE_HIDE_CWD` | Atur ke `1` untuk menyembunyikan direktori kerja dalam logo startup. Berguna untuk screenshare atau rekaman di mana path mengekspos nama pengguna OS Anda |305| `CLAUDE_CODE_HIDE_CWD` | Atur ke `1` untuk menyembunyikan direktori kerja dalam logo startup. Berguna untuk screenshare atau rekaman di mana path mengekspos nama pengguna OS Anda |

304| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Ganti alamat host yang digunakan untuk terhubung ke ekstensi IDE. Secara default Claude Code auto-deteksi alamat yang benar, termasuk perutean WSL-ke-Windows |306| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Ganti alamat host yang digunakan untuk terhubung ke ekstensi IDE. Secara default Claude Code auto-deteksi alamat yang benar, termasuk perutean WSL-ke-Windows |

305| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Atur ke `1` untuk melewati auto-instalasi ekstensi IDE. Setara dengan menetapkan [`autoInstallIdeExtension`](/docs/id/settings-reference#autoinstallideextension) ke `false` |307| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Atur ke `1` untuk melewati auto-instalasi ekstensi IDE. Setara dengan menetapkan [`autoInstallIdeExtension`](/docs/id/settings-reference#autoinstallideextension) ke `false` |

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

307| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Berapa banyak [subagent](/docs/id/sub-agents#concurrent-subagent-limit) dapat berjalan dalam satu sesi sebelum alat Agent menolak untuk memunculkan yang lain (default: 20). Menerima bilangan bulat positif dalam digit biasa; apa pun yang lain diabaikan, jadi variabel dapat menyesuaikan batas tetapi tidak dapat menonaktifkannya. Memerlukan Claude Code v2.1.217 atau lebih baru |309| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Berapa banyak [subagent](/docs/id/sub-agents#concurrent-subagent-limit) dapat berjalan dalam satu sesi sebelum alat Agent menolak untuk memunculkan yang lain (default: 20). Menerima bilangan bulat positif dalam digit biasa; apa pun yang lain diabaikan, jadi variabel dapat menyesuaikan batas tetapi tidak dapat menonaktifkannya. Memerlukan Claude Code v2.1.217 atau lebih baru |

308| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Ganti ukuran jendela konteks yang Claude Code asumsikan untuk model aktif. Mulai dari v2.1.193, cara penerapannya tergantung pada cara Claude Code menyelesaikan ID model; lihat [Correct the window for a gateway or custom model ID](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Gunakan ini saat merutekan ke model melalui `ANTHROPIC_BASE_URL` yang jendela konteksnya tidak cocok dengan ukuran bawaan untuk namanya |310| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Ganti ukuran jendela konteks yang Claude Code asumsikan untuk model aktif. Mulai dari v2.1.193, cara penerapannya tergantung pada cara Claude Code menyelesaikan ID model; lihat [Koreksi jendela untuk ID model gateway atau khusus](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Gunakan ini saat merutekan ke model melalui `ANTHROPIC_BASE_URL` yang jendela konteksnya tidak cocok dengan ukuran bawaan untuk namanya |

309| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Atur jumlah maksimum token output untuk sebagian besar permintaan. Default dan batas bervariasi menurut model; lihat [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code default ke 32000 untuk ID model yang tidak dikenalinya, seperti nama spesifik gateway, dan menurunkan nilai di atas batas model ke batas. Meningkatkan nilai ini mengurangi jendela konteks efektif yang tersedia sebelum [auto-compaction](/docs/id/costs#reduce-token-usage) dipicu |311| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Atur jumlah maksimum token output untuk sebagian besar permintaan. Default dan batas bervariasi menurut model; lihat [token output maksimum](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code default ke 32000 untuk ID model yang tidak dikenalinya, seperti nama spesifik gateway, dan menurunkan nilai di atas batas model ke batas. Meningkatkan nilai ini mengurangi jendela konteks efektif yang tersedia sebelum [auto-compaction](/docs/id/costs#reduce-token-usage) dipicu |

310| `CLAUDE_CODE_MAX_RETRIES` | Ganti jumlah kali untuk mencoba ulang permintaan API yang gagal (default: 10). Dibatasi pada 15 mulai dari v2.1.186; mulai dari v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` menaikkan default dan menghapus batas. Untuk sesi tanpa pengawasan yang perlu menunggu melalui pemadaman yang lebih lama, atur `CLAUDE_CODE_RETRY_WATCHDOG` sebagai gantinya |312| `CLAUDE_CODE_MAX_RETRIES` | Ganti jumlah kali untuk mencoba ulang permintaan API yang gagal (default: 10). Dibatasi pada 15 mulai dari v2.1.186; mulai dari v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` menaikkan default dan menghapus batas. Untuk sesi tanpa pengawasan yang perlu menunggu melalui pemadaman yang lebih lama, atur `CLAUDE_CODE_RETRY_WATCHDOG` sebagai gantinya |

311| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Dihapus di v2.1.224 dan sekarang tidak beroperasi. Sebelumnya membatasi jumlah total [subagent](/docs/id/sub-agents) yang dapat Claude hasilkan dengan alat Agent dalam satu sesi (default: 200); memunculkan melampaui batas gagal dengan `Subagent spawn limit reached`. [Batas subagent bersamaan](/docs/id/sub-agents#concurrent-subagent-limit) dan [batas kedalaman](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) masih berlaku |313| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Dihapus di v2.1.224 dan sekarang tidak beroperasi. Sebelumnya membatasi jumlah total [subagent](/docs/id/sub-agents) yang dapat Claude luncurkan dengan alat Agent dalam satu sesi (default: 200); memunculkan melampaui batas gagal dengan `Subagent spawn limit reached`. [Batas subagent bersamaan](/docs/id/sub-agents#concurrent-subagent-limit) dan [batas kedalaman](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) masih berlaku |

312| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Jumlah [lapisan subagent](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) yang diizinkan di bawah percakapan utama (default: 3). Pada default, subagent dapat memunculkan subagent mereka sendiri, dan subagent di lapisan ketiga tidak dapat memunculkan lebih lanjut; atur `1` untuk mematikan nesting. Dalam v2.1.217 hingga v2.1.218, default adalah 1, jadi subagent tidak dapat memunculkan miliknya sendiri kecuali Anda menaikkan batas; v2.1.219 menaikkan default ke 3. Menerima bilangan bulat positif dalam digit biasa; apa pun yang lain diabaikan, jadi batas dapat disesuaikan tetapi tidak dihapus. Memerlukan Claude Code v2.1.217 atau lebih baru |314| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Jumlah [lapisan subagent](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) yang diizinkan di bawah percakapan utama (default: 3). Pada default, subagent dapat memunculkan subagent mereka sendiri, dan subagent di lapisan ketiga tidak dapat memunculkan lebih lanjut; atur `1` untuk menonaktifkan nesting. Di v2.1.217 melalui v2.1.218, default adalah 1, jadi subagent tidak dapat memunculkan miliknya sendiri kecuali Anda menaikkan batas; v2.1.219 menaikkan default ke 3. Menerima bilangan bulat positif dalam digit biasa; apa pun yang lain diabaikan, jadi batas dapat disesuaikan tetapi tidak dihapus. Memerlukan Claude Code v2.1.217 atau lebih baru |

313| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Jumlah maksimum alat baca-saja dan subagent yang dapat dieksekusi secara paralel (default: 10). Nilai yang lebih tinggi meningkatkan paralelisme tetapi mengonsumsi lebih banyak sumber daya |315| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Jumlah maksimum alat baca-saja dan subagent yang dapat dieksekusi secara paralel (default: 10). Nilai yang lebih tinggi meningkatkan paralelisme tetapi mengonsumsi lebih banyak sumber daya |

314| `CLAUDE_CODE_MAX_TURNS` | Batasi jumlah giliran agentic ketika tidak ada batas eksplisit yang diteruskan. Setara dengan meneruskan [`--max-turns`](/docs/id/cli-reference#cli-flags), yang mengambil prioritas ketika keduanya diatur. Nilai yang bukan bilangan bulat positif ditolak saat startup dengan kesalahan daripada diperlakukan sebagai tidak ada batas |316| `CLAUDE_CODE_MAX_TURNS` | Batasi jumlah giliran agentic ketika tidak ada batas eksplisit yang diteruskan. Setara dengan meneruskan [`--max-turns`](/docs/id/cli-reference#cli-flags), yang mengambil prioritas ketika keduanya diatur. Nilai yang bukan bilangan bulat positif ditolak saat startup dengan kesalahan daripada diperlakukan sebagai tidak ada batas |

315| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Batas pada jumlah total panggilan [WebSearch](/docs/id/tools-reference#websearch-tool-behavior) satu sesi dapat membuat (default: 200). Ketika Claude mencapai batas, panggilan WebSearch lebih lanjut mengembalikan pemberitahuan yang memberi tahu untuk melanjutkan dengan informasi yang sudah dikumpulkan. Menerima bilangan bulat positif tanpa batas atas. Apa pun yang lain diabaikan dan default berlaku, jadi batas dapat dinaikkan tetapi tidak dimatikan. Memerlukan Claude Code v2.1.212 atau lebih baru |317| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Batas pada jumlah total panggilan [WebSearch](/docs/id/tools-reference#websearch-tool-behavior) satu sesi dapat membuat (default: 200). Ketika Claude mencapai batas, panggilan WebSearch lebih lanjut mengembalikan pemberitahuan yang memberitahunya untuk melanjutkan dengan informasi yang sudah dikumpulkannya. Menerima bilangan bulat positif tanpa batas atas. Apa pun yang lain diabaikan dan default berlaku, jadi batas dapat dinaikkan tetapi tidak dinonaktifkan. Memerlukan Claude Code v2.1.212 atau lebih baru |

316| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Atur ke `1` untuk memunculkan server MCP stdio dengan hanya lingkungan baseline aman ditambah `env` yang dikonfigurasi server, daripada mewarisi lingkungan shell Anda |318| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Atur ke `1` untuk memunculkan server MCP stdio dengan hanya lingkungan dasar yang aman ditambah `env` yang dikonfigurasi server, daripada mewarisi lingkungan shell Anda |

317| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Waktu yang telah berlalu dalam milidetik sebelum panggilan alat MCP yang masih berjalan [pindah ke tugas latar belakang](/docs/id/mcp#automatic-backgrounding-of-long-tool-calls) (default: 120000, atau 2 menit). Atur ke `0` untuk mematikan backgrounding otomatis. Memerlukan Claude Code v2.1.212 atau lebih baru |319| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Waktu yang telah berlalu dalam milidetik sebelum panggilan alat MCP yang masih berjalan [pindah ke tugas latar belakang](/docs/id/mcp#automatic-backgrounding-of-long-tool-calls) (default: 120000, atau 2 menit). Atur ke `0` untuk menonaktifkan backgrounding otomatis. Memerlukan Claude Code v2.1.212 atau lebih baru |

318| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Timeout idle dalam milidetik untuk panggilan alat MCP. Ketika server MCP stdio, HTTP, SSE, WebSocket, atau [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) mengirim tidak ada respons dan tidak ada notifikasi kemajuan untuk waktu ini, panggilan alat menghentikan dengan kesalahan daripada menunggu `MCP_TOOL_TIMEOUT` keseluruhan. Mengganti default per-transport 300000 (5 menit) untuk server jaringan dan 1800000 (30 menit) untuk server stdio. Atur ke `0` untuk menonaktifkan pemeriksaan idle. Nilai di bawah 1000 dinaikkan ke satu detik, dan nilai dibatasi pada `MCP_TOOL_TIMEOUT` efektif. `timeout` per-server dalam `.mcp.json` setidaknya 1000 menaikkan jendela idle server itu ke setidaknya nilai `timeout`; lantai ini memerlukan Claude Code v2.1.203 atau lebih baru. Tidak berlaku untuk server IDE atau server in-process SDK. Memerlukan Claude Code v2.1.187 atau lebih baru. Sebelum v2.1.203, server stdio dikecualikan dari timeout idle |320| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Berapa lama dalam milidetik giliran pertama sesi [non-interaktif](/docs/id/headless) menunggu server MCP yang masih terhubung, sebagai pengganti [tunggu giliran pertama](/docs/id/agent-sdk/mcp#connection-timing) default. Ketika diatur, tunggu mencakup setiap server yang tertunda. Atur ke `0` untuk melewati tunggu. Server [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) menyimpan tunggu `MCP_TIMEOUT` sendiri terlepas dari nilainya. Memerlukan Claude Code v2.1.274 atau lebih baru |

319| `CLAUDE_CODE_MESSAGING_SOCKET` | Atur oleh Claude Code, bukan oleh Anda: dalam sesi yang mengikat [soket inbox](/docs/id/cross-session-messaging#the-sessions-inbox-socket), Claude Code mengekspor path soket itu ke hook dan perintah Bash ketika mengikat soket. Dalam sesi yang dimulai dengan messaging aktif, Claude Code mengikat soket sebelum hook apa pun berjalan. Sesi lain di mesin mengirimkan pesan ke path ini. Setiap sesi mengekspor soketnya sendiri daripada yang diwarisi dari induk, dan pesan yang tiba di dalamnya melalui [kontrol inbound](/docs/id/cross-session-messaging#control-inbound-messages) sesi. Blok `env` pengaturan tidak dapat menetapkannya. Memerlukan Claude Code v2.1.224 atau lebih baru |321| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Timeout idle dalam milidetik untuk panggilan alat MCP. Ketika server MCP stdio, HTTP, SSE, WebSocket, atau [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) mengirim tidak ada respons dan tidak ada pemberitahuan kemajuan untuk waktu yang lama, panggilan alat menghentikan dengan kesalahan daripada menunggu `MCP_TOOL_TIMEOUT` keseluruhan. Mengganti default per-transport 300000 (5 menit) untuk server jaringan dan 1800000 (30 menit) untuk server stdio. Atur ke `0` untuk menonaktifkan pemeriksaan idle. Nilai di bawah 1000 dinaikkan ke satu detik, dan nilai dibatasi pada `MCP_TOOL_TIMEOUT` efektif. `timeout` per-server di `.mcp.json` setidaknya 1000 menaikkan jendela idle server itu setidaknya ke nilai `timeout`. Tidak berlaku untuk server IDE atau server in-process SDK. Memerlukan Claude Code v2.1.187 atau lebih baru. Sebelum v2.1.203, server stdio dikecualikan dari timeout idle |

320| `CLAUDE_CODE_MESSAGING_TOKEN` | Atur oleh Claude Code, bukan oleh Anda: dalam sesi yang mengikat [soket inbox](/docs/id/cross-session-messaging#the-sessions-inbox-socket), Claude Code mengekspor token per-sesi ini ke hook dan perintah Bash bersama `CLAUDE_CODE_MESSAGING_SOCKET`. Skrip yang memposting ke soket dapat mengirim `{"type":"auth","token":"<token>"}` sebagai baris pertamanya untuk membuktikan bahwa itu milik sesi. Di Windows asli, Claude Code memerlukan baris ini dan menutup koneksi apa pun yang tidak dibuka dengan yang valid. [Aturan anak sendiri](/docs/id/cross-session-messaging#the-sessions-inbox-socket) mengatakan kapan Claude Code berkonsultasi dengan token. Setiap sesi mengekspor tokennya sendiri, tidak pernah yang diwarisi dari sesi induk. Blok `env` pengaturan tidak dapat menetapkannya. Memerlukan Claude Code v2.1.228 atau lebih baru |322| `CLAUDE_CODE_MESSAGING_SOCKET` | Atur oleh Claude Code, bukan oleh Anda: di sesi yang mengikat [soket inbox](/docs/id/cross-session-messaging#the-sessions-inbox-socket), Claude Code mengekspor path soket itu ke hook dan perintah Bash ketika mengikat soket. Di sesi yang dimulai dengan messaging aktif, Claude Code mengikat soket sebelum hook apa pun berjalan. Sesi lain di mesin mengirimkan pesan ke path ini. Setiap sesi mengekspor soketnya sendiri daripada yang diwarisi dari induk, dan pesan yang tiba di dalamnya melalui [kontrol inbound](/docs/id/cross-session-messaging#control-inbound-messages) sesi. Blok `env` pengaturan tidak dapat menetapkannya. Memerlukan Claude Code v2.1.224 atau lebih baru |

321| `CLAUDE_CODE_NATIVE_CURSOR` | Atur ke `1` untuk menampilkan kursor terminal sendiri di karet input daripada blok yang digambar. Kursor menghormati pengaturan blink, bentuk, dan fokus terminal |323| `CLAUDE_CODE_MESSAGING_TOKEN` | Atur oleh Claude Code, bukan oleh Anda: di sesi yang mengikat [soket inbox](/docs/id/cross-session-messaging#the-sessions-inbox-socket), Claude Code mengekspor token per-sesi ini ke hook dan perintah Bash bersama `CLAUDE_CODE_MESSAGING_SOCKET`. Skrip yang memposting ke soket dapat mengirim `{"type":"auth","token":"<token>"}` sebagai baris pertamanya untuk membuktikan bahwa itu milik sesi. Di Windows asli, Claude Code memerlukan baris ini dan menutup koneksi apa pun yang tidak dibuka dengan yang valid. [Aturan anak sendiri](/docs/id/cross-session-messaging#the-sessions-inbox-socket) mengatakan kapan Claude Code berkonsultasi dengan token. Setiap sesi mengekspor token sendiri, tidak pernah yang diwarisi dari sesi induk. Blok `env` pengaturan tidak dapat menetapkannya. Memerlukan Claude Code v2.1.228 atau lebih baru |

324| `CLAUDE_CODE_NATIVE_CURSOR` | Atur ke `1` untuk menampilkan kursor terminal sendiri di karet input daripada blok yang ditarik. Kursor menghormati pengaturan blink, bentuk, dan fokus terminal |

322| `CLAUDE_CODE_NEW_INIT` | Atur ke `1` untuk membuat `/init` menjalankan alur pengaturan interaktif. Alur menanyakan file mana yang akan dihasilkan, termasuk CLAUDE.md, skills, dan hooks, sebelum menjelajahi codebase dan menulisnya. Tanpa variabel ini, `/init` menghasilkan CLAUDE.md secara otomatis tanpa meminta |325| `CLAUDE_CODE_NEW_INIT` | Atur ke `1` untuk membuat `/init` menjalankan alur pengaturan interaktif. Alur menanyakan file mana yang akan dihasilkan, termasuk CLAUDE.md, skills, dan hooks, sebelum menjelajahi codebase dan menulisnya. Tanpa variabel ini, `/init` menghasilkan CLAUDE.md secara otomatis tanpa meminta |

326| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Atur ke `1` untuk menulis output terminal melalui deskriptor file non-blocking kedua, jadi terminal yang berhenti membaca, seperti pane kontrol-mode tmux yang dijeda atau koneksi SSH yang terhenti, tidak dapat membekukan Claude Code di tengah-sesi. Berlaku di macOS, Linux, dan WSL ketika stdout adalah terminal. Memerlukan Claude Code v2.1.261 atau lebih baru |

323| `CLAUDE_CODE_NO_FLICKER` | Atur ke `1` untuk mengaktifkan [rendering fullscreen](/docs/id/fullscreen), pratinjau penelitian yang mengurangi flicker dan menjaga memori datar dalam percakapan panjang. Mengganti pengaturan [`tui`](/docs/id/settings-reference#tui); Anda juga dapat beralih dengan `/tui fullscreen` |327| `CLAUDE_CODE_NO_FLICKER` | Atur ke `1` untuk mengaktifkan [rendering fullscreen](/docs/id/fullscreen), pratinjau penelitian yang mengurangi flicker dan menjaga memori datar dalam percakapan panjang. Mengganti pengaturan [`tui`](/docs/id/settings-reference#tui); Anda juga dapat beralih dengan `/tui fullscreen` |

324| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Token penyegaran OAuth untuk autentikasi Claude.ai. Ketika diatur, `claude auth login` menukar token ini secara langsung daripada membuka browser. Memerlukan `CLAUDE_CODE_OAUTH_SCOPES`. Berguna untuk menyediakan autentikasi dalam lingkungan otomatis |328| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Token penyegaran OAuth untuk autentikasi Claude.ai. Ketika diatur, `claude auth login` menukar token ini secara langsung daripada membuka browser. Memerlukan `CLAUDE_CODE_OAUTH_SCOPES`. Berguna untuk menyediakan autentikasi di lingkungan otomatis |

325| `CLAUDE_CODE_OAUTH_SCOPES` | Ruang lingkup OAuth yang dipisahkan spasi yang token penyegaran dikeluarkan dengan, seperti `"user:profile user:inference user:sessions:claude_code"`. Diperlukan ketika `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` diatur |329| `CLAUDE_CODE_OAUTH_SCOPES` | Ruang lingkup OAuth yang dipisahkan spasi yang token penyegaran dikeluarkan dengan, seperti `"user:profile user:inference user:sessions:claude_code"`. Diperlukan ketika `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` diatur |

326| `CLAUDE_CODE_OAUTH_TOKEN` | Token akses OAuth untuk autentikasi claude.ai. Alternatif untuk `/login` untuk SDK dan lingkungan otomatis. Mengambil prioritas atas kredensial yang disimpan keychain. Hasilkan satu dengan [`claude setup-token`](/docs/id/authentication#generate-a-long-lived-token). Kecuali Anda menjalankan [`/login`](/docs/id/authentication#authentication-precedence), Claude Code menggunakan token yang Anda atur untuk seluruh sesi. Untuk mengganti token yang kedaluwarsa, hasilkan yang baru dan mulai ulang |330| `CLAUDE_CODE_OAUTH_TOKEN` | Token akses OAuth untuk autentikasi claude.ai. Alternatif untuk `/login` untuk SDK dan lingkungan otomatis. Mengambil prioritas di atas kredensial yang disimpan keychain. Hasilkan satu dengan [`claude setup-token`](/docs/id/authentication#generate-a-long-lived-token). Kecuali Anda menjalankan [`/login`](/docs/id/authentication#authentication-precedence), Claude Code menggunakan token yang Anda atur untuk seluruh sesi. Untuk mengganti token yang kedaluwarsa, hasilkan yang baru dan mulai ulang |

327| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Dihapus di v2.1.160 dan sekarang tidak beroperasi. Sebelumnya menyematkan [mode cepat](/docs/id/fast-mode) ke Claude Opus 4.6 daripada default saat ini. Opus 4.6 tidak lagi mendukung mode cepat |331| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Dihapus di v2.1.160 dan sekarang tidak beroperasi. Sebelumnya menyematkan [mode cepat](/docs/id/fast-mode) ke Claude Opus 4.6 daripada default saat ini. Opus 4.6 tidak lagi mendukung mode cepat |

328| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Panjang maksimum atribut OpenTelemetry yang membawa konten (respons model, konten alat, prompt sistem, badan API mentah), penanda pemotongan disertakan, dalam unit kode UTF-16 (default: 61440, yaitu 60 KB). Naikkan hanya jika backend telemetri Anda menerima nilai atribut lebih besar dari 64 KB, atau turunkan untuk mengurangi volume telemetri. Memerlukan Claude Code v2.1.214 atau lebih baru. Lihat [Monitoring](/docs/id/monitoring-usage) |332| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Panjang maksimum atribut OpenTelemetry yang membawa konten (respons model, konten alat, prompt sistem, badan API mentah), penanda pemotongan disertakan, dalam unit kode UTF-16 (default: 61440, yaitu 60 KB). Naikkan hanya jika backend telemetri Anda menerima nilai atribut lebih besar dari 64 KB, atau turunkan untuk mengurangi volume telemetri. Memerlukan Claude Code v2.1.214 atau lebih baru. Lihat [Monitoring](/docs/id/monitoring-usage) |

329| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Atur ke `1` untuk menulis kesalahan diagnostik pengekspor OpenTelemetry ke stderr. Secara default kesalahan ini hanya muncul dengan `--debug`, jadi pengekspor yang salah dikonfigurasi seperti tabrakan port Prometheus sebaliknya gagal diam-diam. Memerlukan Claude Code v2.1.179 atau lebih baru. Lihat [Monitoring](/docs/id/monitoring-usage) |333| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Atur ke `1` untuk menulis kesalahan diagnostik pengekspor OpenTelemetry ke stderr. Secara default kesalahan ini hanya muncul dengan `--debug`, jadi pengekspor yang salah dikonfigurasi seperti tabrakan port Prometheus sebaliknya gagal diam-diam. Memerlukan Claude Code v2.1.179 atau lebih baru. Lihat [Monitoring](/docs/id/monitoring-usage) |

330| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout dalam milidetik untuk menyiram rentang OpenTelemetry yang tertunda (default: 5000). Lihat [Monitoring](/docs/id/monitoring-usage) |334| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout dalam milidetik untuk menyiram rentang OpenTelemetry yang tertunda (default: 5000). Lihat [Monitoring](/docs/id/monitoring-usage) |

331| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Interval untuk menyegarkan header OpenTelemetry dinamis dalam milidetik (default: 1740000 / 29 menit). Lihat [Dynamic headers](/docs/id/monitoring-usage#dynamic-headers) |335| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Interval untuk menyegarkan header OpenTelemetry dinamis dalam milidetik (default: 1740000 / 29 menit). Lihat [Header dinamis](/docs/id/monitoring-usage#dynamic-headers) |

332| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout dalam milidetik untuk pengekspor OpenTelemetry selesai saat shutdown (default: 2000). Naikkan jika metrik dijatuhkan saat keluar. Lihat [Monitoring](/docs/id/monitoring-usage) |336| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout dalam milidetik untuk pengekspor OpenTelemetry selesai saat shutdown (default: 2000). Naikkan jika metrik dijatuhkan saat keluar. Lihat [Monitoring](/docs/id/monitoring-usage) |

333| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Atur ke `1` untuk membiarkan Claude Code menjalankan perintah upgrade manajer paket Anda di latar belakang ketika versi baru tersedia. Berlaku untuk instalasi Homebrew dan WinGet. Manajer paket lain terus menampilkan perintah upgrade tanpa menjalankannya. Lihat [Auto updates](/docs/id/setup#auto-updates) |337| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Atur ke `1` untuk membiarkan Claude Code menjalankan perintah upgrade manajer paket Anda di latar belakang ketika versi baru tersedia. Berlaku untuk instalasi Homebrew dan WinGet. Manajer paket lain terus menampilkan perintah upgrade tanpa menjalankannya. Lihat [Pembaruan otomatis](/docs/id/setup#auto-updates) |

334| `CLAUDE_CODE_PERFORCE_MODE` | Atur ke `1` untuk mengaktifkan perlindungan penulisan yang menyadari Perforce. Ketika diatur, Edit, Write, dan NotebookEdit gagal dengan petunjuk `p4 edit <file>` jika file target tidak memiliki bit pemilik-tulis, yang Perforce hapus pada file yang disinkronkan sampai `p4 edit` membukanya. Ini mencegah Claude Code dari melewati pelacakan perubahan Perforce |338| `CLAUDE_CODE_PERFORCE_MODE` | Atur ke `1` untuk mengaktifkan perlindungan penulisan yang menyadari Perforce. Ketika diatur, Edit, Write, dan NotebookEdit gagal dengan petunjuk `p4 edit <file>` jika file target tidak memiliki bit pemilik-tulis, yang Perforce hapus pada file yang disinkronkan sampai `p4 edit` membukanya. Ini mencegah Claude Code dari melewati pelacakan perubahan Perforce |

335| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Ganti direktori root plugin. Meskipun namanya, ini menetapkan direktori induk, bukan cache itu sendiri: marketplace dan cache plugin hidup di subdirektori di bawah path ini. Default ke `~/.claude/plugins` |339| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Ganti direktori root plugin. Meskipun namanya, ini menetapkan direktori induk, bukan cache itu sendiri: marketplace dan cache plugin hidup di subdirektori di bawah path ini. Default ke `~/.claude/plugins` |

336| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout dalam milidetik untuk operasi git saat menginstal atau memperbarui plugin (default: 120000). Naikkan nilai ini untuk repositori besar atau koneksi jaringan lambat. Lihat [Git operations time out](/docs/id/plugin-marketplaces#git-operations-time-out) |340| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout dalam milidetik untuk operasi git saat memasang atau memperbarui plugin (default: 120000). Naikkan nilai ini untuk repositori besar atau koneksi jaringan lambat. Lihat [Operasi Git timeout](/docs/id/plugin-marketplaces#git-operations-time-out) |

337| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Atur ke `1` untuk melewati upaya re-clone dan terus menggunakan cache marketplace yang ada ketika `git pull` gagal. Berguna dalam lingkungan offline atau airgapped di mana re-cloning akan gagal dengan cara yang sama. Lihat [Marketplace updates fail in offline environments](/docs/id/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |341| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Atur ke `1` untuk melewati upaya re-clone dan terus menggunakan checkout marketplace yang ada ketika penyegaran marketplace tidak dapat menjangkau atau mengautentikasi ke remote. Berguna di lingkungan offline atau airgapped di mana re-cloning akan gagal dengan cara yang sama. Lihat [Pembaruan Marketplace gagal di lingkungan offline](/docs/id/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |

338| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Atur ke `1` untuk mengkloning shorthand sumber GitHub `owner/repo` melalui HTTPS daripada SSH. Berlaku untuk instalasi plugin dan update, dan untuk `/plugin marketplace add` dan `update`. Berguna di CI runner, container, atau lingkungan apa pun tanpa kunci SSH yang dikonfigurasi untuk `github.com` |342| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Atur ke `1` untuk mengkloning shorthand sumber GitHub `owner/repo` melalui HTTPS daripada SSH. Berlaku untuk instalasi plugin dan update, dan untuk `/plugin marketplace add` dan `update`. Berguna di runner CI, container, atau lingkungan apa pun tanpa kunci SSH yang dikonfigurasi untuk `github.com` |

339| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Path ke satu atau lebih direktori seed plugin baca-saja, dipisahkan oleh `:` di Unix atau `;` di Windows. Gunakan ini untuk membundel direktori plugin yang sudah diisi sebelumnya ke dalam gambar container. Claude Code mendaftarkan marketplace dari direktori ini saat startup dan menggunakan plugin yang di-cache sebelumnya tanpa re-cloning. Lihat [Pre-populate plugins for containers](/docs/id/plugin-marketplaces#pre-populate-plugins-for-containers) |343| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Path ke satu atau lebih direktori seed plugin baca-saja, dipisahkan oleh `:` di Unix atau `;` di Windows. Gunakan ini untuk membundel direktori plugin yang sudah diisi sebelumnya ke dalam gambar container. Claude Code mendaftarkan marketplace dari direktori ini saat startup dan menggunakan plugin yang di-cache sebelumnya tanpa re-cloning. Lihat [Pre-populate plugins untuk container](/docs/id/plugin-marketplaces#pre-populate-plugins-for-containers) |

340| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Atur ke `1` untuk menghentikan Claude Code dari meneruskan `-ExecutionPolicy Bypass` saat memunculkan PowerShell untuk panggilan alat, hook, dan perintah status line, dan menghormati kebijakan eksekusi efektif mesin sebagai gantinya. Secara default Claude Code melewati kebijakan eksekusi pada cakupan proses sehingga skrip `.ps1` dan impor modul bekerja pada instalasi Windows default-Restricted. Bypass cakupan proses tidak pernah mengganti `MachinePolicy` atau `UserPolicy` Kebijakan Grup terlepas dari pengaturan ini |344| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Atur ke `1` untuk menghentikan Claude Code dari meneruskan `-ExecutionPolicy Bypass` saat memunculkan PowerShell untuk panggilan alat, hook, dan perintah status line, dan menghormati kebijakan eksekusi efektif mesin sebagai gantinya. Secara default Claude Code melewati kebijakan eksekusi di ruang lingkup proses sehingga skrip `.ps1` dan impor modul bekerja pada instalasi Windows default-Restricted. Bypass ruang lingkup proses tidak pernah mengganti Kebijakan Grup `MachinePolicy` atau `UserPolicy` terlepas dari pengaturan ini |

341| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Batas dalam milidetik pada menunggu idle untuk subagent latar belakang dan alur kerja setelah giliran terakhir dalam [mode non-interaktif](/docs/id/headless#background-tasks-at-exit) dengan flag `-p`. Menunggu idle dimulai ulang setiap kali Claude mengambil giliran untuk menangani hasil latar belakang. Default: `600000`, atau 10 menit. Ketika menunggu idle mencapai batas, Claude Code berhenti menunggu tugas latar belakang yang tersisa dan keluar. Atur ke `0` untuk menunggu tanpa batas. Batas ini terpisah dari periode grace lima detik yang berlaku untuk shell latar belakang biasa. Memerlukan Claude Code v2.1.182 atau lebih baru |345| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Batas dalam milidetik pada menunggu idle untuk subagent latar belakang dan alur kerja setelah giliran terakhir dalam [mode non-interaktif](/docs/id/headless#background-tasks-at-exit) dengan flag `-p`. Menunggu idle dimulai lagi setiap kali Claude mengambil giliran untuk menangani hasil latar belakang. Default: `600000`, atau 10 menit. Ketika menunggu idle mencapai batas, Claude Code berhenti menunggu tugas latar belakang yang tersisa dan keluar. Atur ke `0` untuk menunggu tanpa batas. Batas ini terpisah dari periode grace lima detik yang berlaku untuk shell latar belakang biasa. Memerlukan Claude Code v2.1.182 atau lebih baru |

342| `CLAUDE_CODE_PROCESS_WRAPPER` | Luncurkan proses yang Claude Code mulai dari binernya sendiri, seperti layanan latar belakang yang menjalankan sesi [tampilan agent](/docs/id/agent-view), melalui peluncur perusahaan yang diberikan sebagai awalan argv seperti `/opt/corp/launcher`. Atur di blok `env` pengaturan pengguna atau [yang dikelola](/docs/id/managed-settings), bukan sebagai ekspor shell, sehingga layanan latar belakang yang terlepas mewarisnya; pengaturan proyek dan lokal tidak dapat menetapkannya. Setara dengan pengaturan [`processWrapper`](/docs/id/settings-reference#processwrapper), yang memerlukan Claude Code v2.1.210 atau lebih baru; variabel ini mengambil prioritas ketika keduanya diatur. Ekstensi VS Code mengonfigurasi peluncurnya sendiri secara terpisah melalui pengaturan `claudeProcessWrapper`. Diabaikan di Windows. Lihat [Run Claude Code behind a corporate launcher](/docs/id/corporate-launcher) untuk format nilai, apa yang dicakup peluncur, dan kontrak yang harus dipenuhi peluncur. Memerlukan Claude Code v2.1.208 atau lebih baru |346| `CLAUDE_CODE_PROCESS_WRAPPER` | Luncurkan proses yang Claude Code mulai dari binernya sendiri, seperti layanan latar belakang yang menampilkan sesi [tampilan agent](/docs/id/agent-view), melalui peluncur perusahaan yang diberikan sebagai awalan argv seperti `/opt/corp/launcher`. Atur di blok `env` pengaturan pengguna atau [yang dikelola](/docs/id/managed-settings), bukan sebagai ekspor shell, jadi layanan latar belakang yang terpisah mewarisnya; pengaturan proyek dan lokal tidak dapat menetapkannya. Setara dengan pengaturan [`processWrapper`](/docs/id/settings-reference#processwrapper), yang memerlukan Claude Code v2.1.210 atau lebih baru; variabel ini mengambil prioritas ketika keduanya diatur. Ekstensi VS Code mengonfigurasi peluncur sendiri secara terpisah melalui pengaturan `claudeProcessWrapper`. Diabaikan di Windows. Lihat [Jalankan Claude Code di balik peluncur perusahaan](/docs/id/corporate-launcher) untuk format nilai, apa yang dicakup peluncur, dan kontrak yang harus dipenuhi peluncur. Memerlukan Claude Code v2.1.208 atau lebih baru |

343| `CLAUDE_CODE_PROJECT_DIR_NAME` | Atur bersama dengan `CLAUDE_CONFIG_DIR` untuk memilih nama direktori `projects/` Claude Code menyimpan transkrip sesi itu dan memori otomatis di bawah, sebagai pengganti yang berasal dari path direktori kerja. Misalnya, memulai Claude Code dengan `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` menyimpannya di bawah `/srv/tenant-a/projects/work/`. Claude Code mengabaikan variabel ini ketika `CLAUDE_CONFIG_DIR` tidak diatur, dan membacanya hanya dari lingkungan yang Anda mulai `claude` dari, tidak pernah dari blok `env` [file pengaturan](#in-settings-files). Lihat [Name the project directory yourself](/docs/id/sessions#name-the-project-directory-yourself). Memerlukan Claude Code v2.1.234 atau lebih baru |347| `CLAUDE_CODE_PROJECT_DIR_NAME` | Atur bersama dengan `CLAUDE_CONFIG_DIR` untuk memilih nama direktori `projects/` Claude Code menyimpan transkrip sesi itu dan memori otomatis di bawah, sebagai pengganti yang berasal dari path direktori kerja. Misalnya, memulai Claude Code dengan `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` menyimpannya di bawah `/srv/tenant-a/projects/work/`. Claude Code mengabaikan variabel ini ketika `CLAUDE_CONFIG_DIR` tidak diatur, dan membacanya hanya dari lingkungan yang Anda mulai `claude` dari, tidak pernah dari blok `env` [file pengaturan](#in-settings-files). Lihat [Beri nama direktori proyek sendiri](/docs/id/sessions#name-the-project-directory-yourself). Memerlukan Claude Code v2.1.234 atau lebih baru |

344| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Atur `5m` atau `1h`, satu-satunya nilai yang Claude Code terima, untuk memilih [prompt cache TTL](/docs/id/prompt-caching#cache-lifetime) untuk percakapan utama: giliran interaktif, `-p`, dan SDK Anda, ditambah pembantu yang berjalan inline dengannya. Mengambil prioritas atas pengaturan `promptCacheTtl` dan atas `ENABLE_PROMPT_CACHING_1H`, dan `FORCE_PROMPT_CACHING_5M` menimpanya. Penulisan cache 1 jam ditagih dengan tarif lebih tinggi. Memerlukan Claude Code v2.1.242 atau lebih baru |348| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Atur `5m` atau `1h`, satu-satunya nilai yang Claude Code terima, untuk memilih [prompt cache TTL](/docs/id/prompt-caching#cache-lifetime) untuk percakapan utama: giliran interaktif, `-p`, dan SDK Anda, ditambah pembantu yang berjalan inline dengannya. Mengambil prioritas di atas pengaturan `promptCacheTtl` dan di atas `ENABLE_PROMPT_CACHING_1H`, dan `FORCE_PROMPT_CACHING_5M` menimpanya. Penulisan cache 1 jam ditagih dengan tarif lebih tinggi. Memerlukan Claude Code v2.1.242 atau lebih baru |

345| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Atur ke `1` untuk menyebarkan konteks jejak W3C ketika `ANTHROPIC_BASE_URL` menunjuk ke proxy kustom. Penyebaran mencakup header `traceparent` pada permintaan model dan MCP HTTP dan variabel lingkungan `TRACEPARENT` untuk subproses Bash, PowerShell, dan hook. Secara default, penyebaran diaktifkan hanya ketika terhubung langsung ke API Anthropic. Ditambahkan di v2.1.152. Lihat [Traces (beta)](/docs/id/monitoring-usage#traces-beta) |349| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Atur ke `1` untuk menyebarkan konteks jejak W3C ketika `ANTHROPIC_BASE_URL` menunjuk ke proxy khusus. Penyebaran mencakup header `traceparent` pada permintaan model dan MCP HTTP dan variabel lingkungan `TRACEPARENT` untuk subproses Bash, PowerShell, dan hook. Secara default, penyebaran diaktifkan hanya ketika terhubung langsung ke API Anthropic. Ditambahkan di v2.1.152. Lihat [Jejak (beta)](/docs/id/monitoring-usage#traces-beta) |

346| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Atur oleh platform host yang menyematkan Claude Code dan mengelola perutean penyedia model atas namanya. Ketika diatur, Claude Code mengabaikan penyedia-seleksi, endpoint, dan variabel autentikasi seperti `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, dan `ANTHROPIC_API_KEY` dalam file pengaturan, jadi pengaturan pengguna tidak dapat mengganti perutean host. Claude Code juga mengabaikan kunci seleksi model seperti `model`, `fallbackModel`, dan `modelOverrides` dalam [pengaturan yang dikelola](/docs/id/managed-settings), sumber yang dikelola apa pun yang mengirimkannya, jadi konfigurasi model host mengambil prioritas atas pin model yang sudah usang. Claude Code juga mengabaikan variabel seleksi model seperti `ANTHROPIC_MODEL` dan keluarga `ANTHROPIC_DEFAULT_*_MODEL` dalam blok `env` yang dikelola; daftar allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) dalam pengaturan yang dikelola masih berlaku kecuali host menyediakan miliknya sendiri. Claude Code juga melewati opt-out telemetri otomatis yang sebaliknya diterapkan pada penyedia pihak ketiga seperti Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, dan Microsoft Foundry, jadi telemetri mengikuti opt-out `DISABLE_TELEMETRY` standar. Lihat [Default behaviors by API provider](/docs/id/data-usage#default-behaviors-by-api-provider) |350| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Atur oleh platform host yang menyematkan Claude Code dan mengelola perutean penyedia model atas namanya. Ketika diatur, Claude Code mengabaikan penyedia-seleksi, endpoint, dan variabel autentikasi seperti `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, dan `ANTHROPIC_API_KEY` di file pengaturan, jadi pengaturan pengguna tidak dapat mengganti perutean host. Claude Code juga mengabaikan kunci seleksi model seperti `model`, `fallbackModel`, dan `modelOverrides` di [pengaturan yang dikelola](/docs/id/managed-settings), sumber yang dikelola mana pun yang mengirimkannya, jadi konfigurasi model host mengambil prioritas di atas pin model yang sudah usang. Claude Code juga mengabaikan variabel seleksi model seperti `ANTHROPIC_MODEL` dan keluarga `ANTHROPIC_DEFAULT_*_MODEL` di blok `env` yang dikelola; daftar izin [`availableModels`](/docs/id/model-config#restrict-model-selection) di pengaturan yang dikelola masih berlaku kecuali host menyediakan miliknya sendiri. Claude Code juga melewati opt-out telemetri otomatis yang sebaliknya diterapkan di penyedia pihak ketiga seperti Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, dan Microsoft Foundry, jadi telemetri mengikuti opt-out `DISABLE_TELEMETRY` standar. Lihat [Perilaku default menurut penyedia API](/docs/id/data-usage#default-behaviors-by-api-provider) |

347| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Atur ke `1` untuk memungkinkan proxy melakukan resolusi DNS daripada pemanggil. Opt-in untuk lingkungan di mana proxy harus menangani resolusi nama host |351| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Atur ke `1` untuk memungkinkan proxy melakukan resolusi DNS daripada pemanggil. Opt-in untuk lingkungan di mana proxy harus menangani resolusi nama host |

348| `CLAUDE_CODE_REMOTE` | Atur secara otomatis ke `true` ketika Claude Code berjalan sebagai [sesi cloud](/docs/id/claude-code-on-the-web). Baca ini dari hook atau skrip setup untuk mendeteksi apakah Anda berada dalam sesi cloud |352| `CLAUDE_CODE_REMOTE` | Atur secara otomatis ke `true` ketika Claude Code berjalan sebagai [sesi cloud](/docs/id/claude-code-on-the-web). Baca ini dari hook atau skrip setup untuk mendeteksi apakah Anda berada di sesi cloud |

349| `CLAUDE_CODE_REMOTE_SESSION_ID` | Atur secara otomatis dalam [sesi cloud](/docs/id/claude-code-on-the-web) ke ID sesi saat ini. Baca ini untuk membuat tautan kembali ke transkrip sesi. Lihat [Link output back to the session](/docs/id/cloud-environments#link-output-back-to-the-session) |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) |

350| `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 dalam blok `env` file pengaturan. Memerlukan Claude Code v2.1.248 atau lebih baru |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 |

351| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Atur ke `1` untuk secara otomatis melanjutkan jika sesi sebelumnya berakhir di tengah-tengah giliran. Digunakan dalam mode SDK sehingga model melanjutkan tanpa memerlukan SDK untuk mengirim ulang prompt. Untuk mematikan 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 mematikannya |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 |

352| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Usia maksimum dalam milidetik dari pesan transkrip terakhir untuk sesi yang berakhir di tengah-tengah giliran untuk melanjutkan secara otomatis saat resume. Ketika pesan terakhir lebih lama dari batas ini, Claude Code melewati resume otomatis `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` dan pesan kelanjutan `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 |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 |

353| `CLAUDE_CODE_RESUME_PROMPT` | Ganti pesan kelanjutan yang disuntikkan saat melanjutkan sesi yang berakhir di tengah-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 |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 |

354| `CLAUDE_CODE_RETRY_WATCHDOG` | Atur ke `1` untuk sesi tanpa pengawasan seperti harness eval, pekerjaan CI, atau pekerja jarak jauh. Mencoba ulang kesalahan kapasitas `429` dan `529` tanpa batas daripada gagal setelah upaya `CLAUDE_CODE_MAX_RETRIES`. Claude Code gagal sekaligus pada `429` yang melaporkan batas pengeluaran atau kredit penggunaan yang habis, bahkan dari [batas pengeluaran gateway](/docs/id/errors#spend-limit-reached) yang direset sesuai jadwal. Sebelum v2.1.239, watchdog mencoba ulang ini tanpa batas. 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. Pada 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 |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 |

355| `CLAUDE_CODE_SAFE_MODE` | Atur ke `1` untuk memulai dalam mode aman: CLAUDE.md, skills, plugin, hook, server MCP, perintah kustom dan agent, gaya output, alur kerja, tema kustom, pintasan keyboard kustom, 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 dihasilkan langsung mewarisi variabel |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 |

356| `CLAUDE_CODE_SCRIPT_CAPS` | Objek JSON yang membatasi berapa kali skrip spesifik dapat dijalankan per sesi ketika `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` diatur. Kunci adalah substring yang cocok dengan teks perintah; nilai adalah batas panggilan bilangan bulat. Misalnya, `{"deploy.sh": 2}` memungkinkan `deploy.sh` dipanggil paling banyak dua kali. Pencocokan berbasis substring jadi trik ekspansi shell seperti `./scripts/deploy.sh $(evil)` masih dihitung terhadap batas. Fan-out runtime melalui `xargs` atau `find -exec` tidak terdeteksi; ini adalah kontrol pertahanan mendalam |360| `CLAUDE_CODE_SCRIPT_CAPS` | Objek JSON yang membatasi berapa kali skrip spesifik dapat dipanggil per sesi ketika `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` diatur. Kunci adalah substring yang cocok dengan teks perintah; nilai adalah batas panggilan bilangan bulat. Misalnya, `{"deploy.sh": 2}` memungkinkan `deploy.sh` dipanggil paling banyak dua kali. Pencocokan berbasis substring jadi trik ekspansi shell seperti `./scripts/deploy.sh $(evil)` masih dihitung terhadap batas. Fan-out runtime melalui `xargs` atau `find -exec` tidak terdeteksi; ini adalah kontrol pertahanan mendalam |

357| `CLAUDE_CODE_SCROLL_SPEED` | Atur pengganda scroll roda mouse dalam [rendering fullscreen](/docs/id/fullscreen#mouse-wheel-scrolling). Menerima nilai positif apa pun hingga 20, termasuk nilai fraksional di bawah 1 seperti `0.5` untuk memperlambat scroll trackpad dan roda yang dipercepat dalam terminal yang sudah memperkuat acara roda. Atur ke `3` untuk mencocokkan `vim` jika terminal Anda mengirim satu acara roda per takik tanpa amplifikasi. Diabaikan di terminal IDE JetBrains, di mana Claude Code menggunakan penanganan scroll-nya sendiri |361| `CLAUDE_CODE_SCROLL_SPEED` | Atur pengganda pengguliran roda mouse dalam [rendering fullscreen](/docs/id/fullscreen#mouse-wheel-scrolling). Menerima nilai positif apa pun hingga 20, termasuk nilai fraksional di bawah 1 seperti `0.5` untuk memperlambat pengguliran trackpad dan roda yang dipercepat di terminal yang sudah memperkuat acara roda. Atur ke `3` untuk mencocokkan `vim` jika terminal Anda mengirim satu acara roda per takik tanpa amplifikasi. Diabaikan di terminal IDE JetBrains, di mana Claude Code menggunakan penanganan pengguliran sendiri |

358| `CLAUDE_CODE_SEND_FEEDBACK` | Atur ke `0` untuk mematikan [umpan balik yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior) untuk sesi. Atur ke `1` untuk mengaktifkannya di mana akun Anda sudah memiliki akses; variabel tidak dapat memberikan akses itu sendiri, dan switch lain yang mematikan umpan balik, seperti `DISABLE_FEEDBACK_COMMAND` dan nilai `off` pengaturan [`feedbackDrafts`](/docs/id/settings-reference#feedbackdrafts), masih berlaku |362| `CLAUDE_CODE_SEND_FEEDBACK` | Atur ke `0` untuk menonaktifkan [umpan balik yang ditulis Claude](/docs/id/tools-reference#sendfeedback-tool-behavior) untuk sesi. Atur ke `1` untuk mengaktifkannya di mana akun Anda sudah memiliki akses; variabel tidak dapat memberikan akses itu sendiri, dan switch lain yang menonaktifkan umpan balik, seperti `DISABLE_FEEDBACK_COMMAND` dan nilai `off` pengaturan [`feedbackDrafts`](/docs/id/settings-reference#feedbackdrafts), masih berlaku |

359| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Ganti anggaran waktu dalam milidetik untuk hook [SessionEnd](/docs/id/hooks#sessionend). Berlaku untuk keluar sesi, `/clear`, dan beralih sesi melalui `/resume` interaktif. Secara default anggaran adalah 1,5 detik, secara otomatis dinaikkan ke `timeout` per-hook tertinggi yang dikonfigurasi dalam file pengaturan, hingga 60 detik. Timeout pada hook yang disediakan plugin tidak menaikkan anggaran |363| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Ganti anggaran waktu dalam milidetik untuk hook [SessionEnd](/docs/id/hooks#sessionend). Nilainya juga timeout untuk setiap hook yang tidak menetapkan `timeout` miliknya sendiri. Berlaku untuk keluar sesi, `/clear`, dan beralih sesi melalui `/resume` interaktif. Secara default anggaran adalah 1,5 detik, secara otomatis dinaikkan ke `timeout` per-hook tertinggi yang dikonfigurasi di file pengaturan, hingga 60 detik. Timeout pada hook yang disediakan plugin tidak menaikkan anggaran |

360| `CLAUDE_CODE_SESSION_ID` | Atur secara otomatis ke ID sesi saat ini dalam subproses alat Bash dan PowerShell, subproses [perintah hook](/docs/id/hooks), dan subproses [server MCP](/docs/id/mcp) stdio. Untuk Bash, PowerShell, dan hook ini cocok dengan bidang `session_id` dalam input JSON hook dan diperbarui pada `/clear`. Subproses server MCP mempertahankan ID yang dihasilkan dengannya. Pada `--resume <session-id>` itu menerima ID yang dilanjutkan, cocok dengan hook dan Bash. Pada `--continue` atau `--resume` tanpa ID eksplisit itu mungkin menerima ID startup awal sebagai gantinya. Gunakan untuk menghubungkan skrip dan alat eksternal dengan sesi Claude Code yang meluncurkannya |364| `CLAUDE_CODE_SESSION_ID` | Atur secara otomatis ke ID sesi saat ini di subproses alat Bash dan PowerShell, subproses [perintah hook](/docs/id/hooks), dan subproses [server MCP](/docs/id/mcp) stdio. Untuk Bash, PowerShell, dan hook ini cocok dengan bidang `session_id` dalam input JSON hook dan diperbarui di `/clear`. Subproses server MCP mempertahankan ID yang diluncurkan dengannya. Di `--resume <session-id>` itu menerima ID yang dilanjutkan, cocok dengan hook dan Bash. Di `--continue` atau `--resume` tanpa ID eksplisit itu mungkin menerima ID startup awal sebagai gantinya. Gunakan untuk menghubungkan skrip dan alat eksternal dengan sesi Claude Code yang meluncurkannya |

361| `CLAUDE_CODE_SHELL` | Atur shell yang Claude Code gunakan untuk menjalankan perintah alat Bash. Menerima path ke biner `bash` atau `zsh`, misalnya `/opt/homebrew/bin/bash`. Shell lain seperti `fish` tidak didukung. Jika nilainya bukan path `bash` atau `zsh` yang berfungsi, Claude Code mengabaikannya dan kembali ke auto-deteksi. Auto-deteksi menggunakan `$SHELL` Anda ketika menunjuk ke `bash` atau `zsh`, sebaliknya memilih `zsh` pertama yang berfungsi kemudian `bash` yang ditemukan di `PATH` Anda dan lokasi instalasi standar |365| `CLAUDE_CODE_SHELL` | Atur shell yang Claude Code gunakan untuk menjalankan perintah alat Bash. Menerima path ke biner `bash` atau `zsh`, misalnya `/opt/homebrew/bin/bash`. Shell lain seperti `fish` tidak didukung. Jika nilainya bukan path `bash` atau `zsh` yang berfungsi, Claude Code mengabaikannya dan kembali ke auto-deteksi. Auto-deteksi menggunakan `$SHELL` Anda ketika menunjuk ke `bash` atau `zsh`, sebaliknya memilih `zsh` pertama yang berfungsi kemudian `bash` yang ditemukan di `PATH` Anda dan lokasi instalasi standar |

362| `CLAUDE_CODE_SHELL_PREFIX` | Awalan perintah yang membungkus perintah shell Claude Code hasilkan: panggilan alat Bash, perintah [hook](/docs/id/hooks), perintah [status line](/docs/id/statusline), dan perintah startup [server MCP](/docs/id/mcp) stdio. Hook PowerShell dan hook bentuk exec berjalan tanpa awalan. Berguna untuk logging atau audit. Menetapkan path executable telanjang seperti `/path/to/logger.sh` menjalankan setiap perintah sebagai `/path/to/logger.sh '<command>'`. Pembungkus menerima baris perintah sebagai argumen shell-quoted tunggal dalam `$1`, jadi pembungkus harus mengevaluasi ulang `$1` dengan shell, misalnya `exec bash -c "$1"`. Memperlakukan `$1` sebagai path executable telanjang memecahkan server MCP stdio yang meneruskan argumen seperti `npx -y <package>`. Untuk panggilan alat Bash, `$1` berisi invokasi shell penuh yang Claude Code rakitkan, termasuk setup lingkungan, bukan hanya perintah yang Claude jalankan |366| `CLAUDE_CODE_SHELL_PREFIX` | Awalan perintah yang membungkus perintah shell Claude Code luncurkan: panggilan alat Bash, perintah [hook](/docs/id/hooks), perintah [status line](/docs/id/statusline), dan perintah startup [server MCP](/docs/id/mcp) stdio. Hook PowerShell dan hook bentuk exec berjalan tanpa awalan. Berguna untuk logging atau audit. Menetapkan path executable telanjang seperti `/path/to/logger.sh` menjalankan setiap perintah sebagai `/path/to/logger.sh '<command>'`. Pembungkus menerima baris perintah sebagai argumen shell-quoted tunggal di `$1`, jadi pembungkus harus mengevaluasi ulang `$1` dengan shell, misalnya `exec bash -c "$1"`. Memperlakukan `$1` sebagai path executable telanjang memecahkan server MCP stdio yang meneruskan argumen seperti `npx -y <package>`. Untuk panggilan alat Bash, `$1` berisi invokasi shell penuh yang Claude Code rakitkan, termasuk setup lingkungan, bukan hanya perintah yang Claude jalankan |

363| `CLAUDE_CODE_SIMPLE` | Atur ke `1` untuk menjalankan dengan prompt sistem minimal dan hanya alat Bash, pembacaan file, dan pengeditan file. Alat MCP dari `--mcp-config` masih tersedia. Menonaktifkan auto-discovery hook, skills, perintah kustom, subagent, plugin, server MCP, memori otomatis, dan CLAUDE.md. Skills dalam direktori yang Anda teruskan dengan `--add-dir` masih dimuat. Token OAuth dan kredensial keychain tidak dibaca, jadi autentikasi Anthropic harus berasal dari `ANTHROPIC_API_KEY` atau `apiKeyHelper` dalam `--settings`. Setara dengan meneruskan [`--bare`](/docs/id/headless#start-faster-with-bare-mode) |367| `CLAUDE_CODE_SIMPLE` | Atur ke `1` untuk menjalankan dengan prompt sistem minimal dan hanya alat Bash, pembacaan file, dan pengeditan file. Alat MCP dari `--mcp-config` masih tersedia. Menonaktifkan auto-discovery hook, skills, perintah khusus, subagent, plugin, server MCP, memori otomatis, dan CLAUDE.md. Skills di direktori yang Anda teruskan dengan `--add-dir` masih dimuat. Token OAuth dan kredensial keychain tidak dibaca, jadi autentikasi Anthropic harus berasal dari `ANTHROPIC_API_KEY` atau `apiKeyHelper` di `--settings`. Setara dengan meneruskan [`--bare`](/docs/id/headless#start-faster-with-bare-mode) |

364| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Atur ke `1` untuk menggunakan prompt sistem yang lebih pendek dan deskripsi alat yang disingkat pada model apa pun. Atur ke `0`, `false`, `no`, atau `off` untuk memilih keluar bahkan pada model di mana eksperimen atau konfigurasi server akan mengaktifkannya. Set alat penuh, penemuan hook, server MCP, dan CLAUDE.md tetap diaktifkan |368| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Atur ke `1` untuk menggunakan prompt sistem yang lebih pendek dan deskripsi alat yang disingkat di model apa pun. Atur ke `0`, `false`, `no`, atau `off` untuk memilih keluar bahkan di model di mana eksperimen atau konfigurasi server akan mengaktifkannya. Set alat penuh, penemuan hook, server MCP, dan CLAUDE.md tetap diaktifkan |

365| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Lewati autentikasi sisi klien untuk [Claude Platform on AWS](/docs/id/claude-platform-on-aws), untuk gateway yang menandatangani permintaan sendiri |369| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Lewati autentikasi sisi klien untuk [Claude Platform on AWS](/docs/id/claude-platform-on-aws), untuk gateway yang menandatangani permintaan sendiri |

366| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Atur ke `1` untuk mematikan cache in-process kredensial yang diselesaikan dari rantai penyedia kredensial default AWS, jadi Claude Code menyelesaikan rantai pada setiap permintaan API. Dengan cache dimatikan, profil yang didukung SSO meminta kredensial dari IAM Identity Center pada setiap permintaan. Lihat [credential caching and resolution timeout](/docs/id/amazon-bedrock#credential-caching-and-resolution-timeout). Memerlukan Claude Code v2.1.207 atau lebih baru |370| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Atur ke `1` untuk menonaktifkan cache dalam proses kredensial yang diselesaikan dari rantai penyedia kredensial default AWS, jadi Claude Code menyelesaikan rantai pada setiap permintaan API. Dengan cache dimatikan, profil yang didukung SSO meminta kredensial dari IAM Identity Center pada setiap permintaan. Lihat [credential caching and resolution timeout](/docs/id/amazon-bedrock#credential-caching-and-resolution-timeout). Memerlukan Claude Code v2.1.207 atau lebih baru |

367| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Lewati autentikasi AWS untuk Amazon Bedrock (misalnya, saat menggunakan gateway LLM) |371| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Lewati autentikasi AWS untuk Amazon Bedrock (misalnya, saat menggunakan gateway LLM) |

368| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Atur ke `1` untuk memperlakukan pemeriksaan ketersediaan [mode cepat](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) yang gagal sebagai tersedia, untuk jaringan yang memblokir permintaan langsung pemeriksaan ke `api.anthropic.com`. Claude Code masih menghormati respons "disabled by your organization" |372| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Atur ke `1` untuk memperlakukan pemeriksaan ketersediaan [mode cepat](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) yang gagal sebagai tersedia, untuk jaringan yang memblokir permintaan langsung pemeriksaan ke `api.anthropic.com`. Claude Code masih menghormati respons "disabled by your organization" |

369| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Atur ke `1` untuk melewati pemeriksaan ketersediaan [mode cepat](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) sisi klien, untuk proxy yang mencegat permintaan pemeriksaan daripada menolaknya. API masih menolak permintaan mode cepat ketika organisasi Anda memiliki mode cepat dinonaktifkan |373| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Atur ke `1` untuk melewati pemeriksaan ketersediaan [mode cepat](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) sisi klien, untuk proxy yang mencegat permintaan pemeriksaan daripada menolaknya. API masih menolak permintaan mode cepat ketika organisasi Anda memiliki mode cepat dinonaktifkan |

370| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Lewati autentikasi Azure untuk Microsoft Foundry, untuk proxy atau gateway yang menyuntikkan header `Authorization` miliknya sendiri. Claude Code mengirim permintaan tanpa kredensial Azure dan mempertahankan header `Authorization` yang Anda sediakan, misalnya melalui `ANTHROPIC_CUSTOM_HEADERS`. Diabaikan ketika `ANTHROPIC_FOUNDRY_API_KEY` atau `ANTHROPIC_FOUNDRY_AUTH_TOKEN` diatur. Sebelum v2.1.203, variabel ini meninggalkan klien Microsoft Foundry tidak mampu mengirim permintaan kecuali kunci API juga diatur |374| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Lewati autentikasi Azure untuk Microsoft Foundry, untuk proxy atau gateway yang menyuntikkan header `Authorization` sendiri. Claude Code mengirim permintaan tanpa kredensial Azure dan mempertahankan header `Authorization` yang Anda sediakan, misalnya melalui `ANTHROPIC_CUSTOM_HEADERS`. Diabaikan ketika `ANTHROPIC_FOUNDRY_API_KEY` atau `ANTHROPIC_FOUNDRY_AUTH_TOKEN` diatur. Sebelum v2.1.203, variabel ini meninggalkan klien Microsoft Foundry tidak mampu mengirim permintaan kecuali kunci API juga diatur |

371| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Lewati autentikasi AWS untuk Amazon Bedrock Mantle (misalnya, saat menggunakan gateway LLM) |375| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Lewati autentikasi AWS untuk Amazon Bedrock Mantle (misalnya, saat menggunakan gateway LLM) |

372| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Atur ke `1` untuk melewati penulisan riwayat prompt dan transkrip sesi ke disk. Sesi yang dimulai dengan variabel ini diatur tidak muncul dalam `--resume`, `--continue`, atau riwayat panah atas. Berguna untuk sesi skrip yang bersifat sementara |376| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Atur ke `1` untuk melewati penulisan riwayat prompt dan transkrip sesi ke disk. Sesi yang dimulai dengan variabel ini diatur tidak muncul di `--resume`, `--continue`, atau riwayat panah atas. Berguna untuk sesi skrip yang bersifat sementara |

373| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Lewati autentikasi Google untuk Google Cloud's Agent Platform (misalnya, saat menggunakan gateway LLM) |377| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Lewati autentikasi Google untuk Google Cloud's Agent Platform (misalnya, saat menggunakan gateway LLM) |

374| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Jumlah maksimum kali berturut-turut hook [Stop](/docs/id/hooks#stop) atau [SubagentStop](/docs/id/hooks#subagentstop) dapat memblokir giliran dari berakhir sebelum Claude Code menimpanya dan mengakhiri giliran bagaimanapun (default: 8). Atur ke `0` untuk menonaktifkan batas. Naikkan ini jika hook Anda secara sah memerlukan lebih banyak iterasi untuk menyelesaikan |378| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Atur ke `1` untuk memiliki sesi yang dimulai dengan `--output-format stream-json` menulis [pesan hasil yang menyebutkan mengapa Claude Code menolak untuk memulai](/docs/id/agent-sdk/typescript#startup_failure_reason) untuk kegagalan startup yang sebaliknya berakhir dengan stderr saja. Memerlukan Claude Code v2.1.274 atau lebih baru |

375| `CLAUDE_CODE_SUBAGENT_MODEL` | Model default untuk [subagent](/docs/id/sub-agents#choose-a-model), rekan tim [tim agent](/docs/id/agent-teams#specify-teammates-and-models), dan agen [alur kerja](/docs/id/workflows) yang tidak ditugaskan model dengan cara lain. Menerima alias seperti `haiku` atau nama model penuh. Dua sumber mengambil prioritas atas itu: model yang Claude teruskan ketika memunculkan agent, dan bidang `model` dalam definisi agent, termasuk `inherit`. Untuk mengubah itu, atur [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/id/sub-agents#run-every-subagent-on-one-model). Lihat [Choose a model](/docs/id/sub-agents#choose-a-model) untuk urutan penuh. Menetapkannya ke `inherit` sama dengan membiarkannya tidak diatur. Sebelum v2.1.251, variabel ini menimpa model per-invokasi dan bidang `model` definisi |379| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Jumlah maksimum kali berturut-turut hook [Stop](/docs/id/hooks#stop) atau [SubagentStop](/docs/id/hooks#subagentstop) dapat memblokir giliran dari berakhir sebelum Claude Code menimpanya dan mengakhiri giliran bagaimanapun (default: 8). Atur ke `0` untuk menonaktifkan batas. Naikkan ini jika hook Anda secara sah memerlukan lebih banyak iterasi untuk diselesaikan |

376| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Atur ke `1` untuk memaksa satu model ke subagent, rekan tim, dan agen alur kerja. [Run every subagent on one model](/docs/id/sub-agents#run-every-subagent-on-one-model) mengatakan model mana itu. Memerlukan Claude Code v2.1.257 atau lebih baru |380| `CLAUDE_CODE_SUBAGENT_MODEL` | Model default untuk [subagent](/docs/id/sub-agents#choose-a-model), rekan tim [tim agent](/docs/id/agent-teams#specify-teammates-and-models), dan agen [alur kerja](/docs/id/workflows) yang tidak ditugaskan model dengan cara lain. Menerima alias seperti `haiku` atau nama model penuh. Dua sumber mengambil prioritas di atasnya: model yang Claude teruskan ketika memunculkan agent, dan bidang `model` dalam definisi agent, termasuk `inherit`. Untuk mengubah itu, atur [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/id/sub-agents#run-every-subagent-on-one-model). Lihat [Pilih model](/docs/id/sub-agents#choose-a-model) untuk urutan penuh. Menetapkannya ke `inherit` sama dengan membiarkannya tidak diatur. Sebelum v2.1.251, variabel ini mengganti model per-invokasi dan bidang `model` definisi |

377| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Atur `5m` atau `1h`, satu-satunya nilai yang Claude Code terima, untuk memilih [prompt cache TTL](/docs/id/prompt-caching#cache-lifetime) untuk permintaan di luar percakapan utama, seperti [subagent](/docs/id/sub-agents), alur kerja, dan pekerjaan latar belakang. Mengambil prioritas atas pengaturan `subagentPromptCacheTtl` dan atas `ENABLE_PROMPT_CACHING_1H`, dan `FORCE_PROMPT_CACHING_5M` menimpanya. Penulisan cache 1 jam ditagih dengan tarif lebih tinggi. Memerlukan Claude Code v2.1.242 atau lebih baru |381| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Atur ke `1` untuk memaksa satu model ke subagent, rekan tim, dan agen alur kerja. [Jalankan setiap subagent di satu model](/docs/id/sub-agents#run-every-subagent-on-one-model) mengatakan model mana itu. Memerlukan Claude Code v2.1.257 atau lebih baru |

378| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Atur ke `1` untuk menghapus kredensial dari lingkungan subproses (alat Bash, hook, server MCP stdio): kredensial Anthropic dan penyedia cloud, variabel lain apa pun yang Claude Code kenali sebagai kredensial, dan kredensial yang tertanam dalam URL registri paket. Proses Claude induk menyimpan kredensial ini untuk panggilan API, tetapi proses anak tidak dapat membacanya, mengurangi paparan terhadap serangan injeksi prompt yang mencoba mengekstrak rahasia melalui ekspansi shell. Di Linux, ini juga menjalankan subproses Bash dalam namespace PID terisolasi sehingga mereka tidak dapat membaca lingkungan proses host melalui `/proc`; sebagai efek samping, `ps`, `pgrep`, dan `kill` tidak dapat melihat atau menandatangani proses host. `claude-code-action` menetapkan ini secara otomatis ketika `allowed_non_write_users` dikonfigurasi |382| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Atur `5m` atau `1h`, satu-satunya nilai yang Claude Code terima, untuk memilih [prompt cache TTL](/docs/id/prompt-caching#cache-lifetime) untuk permintaan di luar percakapan utama, seperti [subagent](/docs/id/sub-agents), alur kerja, dan pekerjaan latar belakang. Mengambil prioritas di atas pengaturan `subagentPromptCacheTtl` dan di atas `ENABLE_PROMPT_CACHING_1H`, dan `FORCE_PROMPT_CACHING_5M` menimpanya. Penulisan cache 1 jam ditagih dengan tarif lebih tinggi. Memerlukan Claude Code v2.1.242 atau lebih baru |

379| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Atur ke `1` dalam mode non-interaktif (flag `-p`) untuk menunggu instalasi plugin selesai sebelum kueri pertama. Tanpa ini, plugin menginstal di latar belakang dan mungkin tidak tersedia pada giliran pertama. Gabungkan dengan `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` untuk mengikat tunggu |383| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Atur ke `1` untuk menghapus kredensial dari lingkungan subproses (alat Bash, hook, server MCP stdio): kredensial Anthropic dan penyedia cloud, variabel lain apa pun yang Claude Code kenali sebagai kredensial, dan kredensial yang tertanam dalam URL registri paket. Proses Claude induk menyimpan kredensial ini untuk panggilan API, tetapi proses anak tidak dapat membacanya, mengurangi paparan terhadap serangan injeksi prompt yang mencoba mengeksfiltrasikan rahasia melalui ekspansi shell. Di v2.1.251 atau lebih baru, scrub juga menghapus variabel penunjuk penyimpanan konfigurasi Claude Code sendiri (seperti `CLAUDE_CONFIG_DIR`), jadi proses anak tidak dapat menemukan direktori konfigurasi yang dipindahkan. Biarkan scrub tidak diatur jika subproses memerlukan variabel ini. Di Linux, ini juga menjalankan subproses Bash dalam namespace PID terisolasi sehingga mereka tidak dapat membaca lingkungan proses host melalui `/proc`; sebagai efek samping, `ps`, `pgrep`, dan `kill` tidak dapat melihat atau menandatangani proses host. `claude-code-action` menetapkan ini secara otomatis ketika `allowed_non_write_users` dikonfigurasi |

384| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Atur ke `1` dalam mode non-interaktif (flag `-p`) untuk menunggu instalasi plugin selesai sebelum kueri pertama. Tanpa ini, plugin memasang di latar belakang dan mungkin tidak tersedia di giliran pertama. Gabungkan dengan `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` untuk mengikat tunggu |

380| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Timeout dalam milidetik untuk instalasi plugin sinkron. Ketika terlampaui, Claude Code melanjutkan tanpa plugin dan mencatat kesalahan. Tidak ada default: tanpa variabel ini, instalasi sinkron menunggu sampai selesai |385| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Timeout dalam milidetik untuk instalasi plugin sinkron. Ketika terlampaui, Claude Code melanjutkan tanpa plugin dan mencatat kesalahan. Tidak ada default: tanpa variabel ini, instalasi sinkron menunggu sampai selesai |

381| `CLAUDE_CODE_SYNC_SKILLS` | Atur ke `1` untuk mengunduh skills claude.ai yang diaktifkan ke `~/.claude/skills/synced/` dan resync setiap 10 menit. Sebelum menjalankan kueri pertama, Claude Code menunggu hingga `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` untuk daftar skills Anda. Unduhan itu sendiri selesai di latar belakang, dan Claude menunggu unduhan skill ketika menjalankan skill itu. Nama folder `synced` [dicadangkan untuk unduhan ini](/docs/id/skills#where-skills-live). Sebelum v2.1.227, skills diunduh ke `~/.claude/skills/` secara langsung. Hanya berlaku dalam mode non-interaktif dengan flag `-p`. Memerlukan autentikasi claude.ai. Sesi [Claude Code on the web](/docs/id/claude-code-on-the-web) menerima skills claude.ai yang diaktifkan secara otomatis; Anda tidak perlu menetapkan ini di sana. Claude Code menerapkan [aturan ekstra ke skills yang diunduh](/docs/id/skills#how-synced-skills-behave), seperti tidak menjalankan perintah `!` mereka di mesin Anda |386| `CLAUDE_CODE_SYNC_SKILLS` | Atur ke `1` dalam mode non-interaktif dengan flag `-p` untuk membuat Claude Code mengunduh skills yang diaktifkan untuk akun claude.ai Anda dalam jalankan itu dan menunggu daftar mereka, hingga `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, sebelum menjalankan kueri pertama. Unduhan itu sendiri selesai di latar belakang, dan Claude menunggu unduhan skill ketika menginvokasinya. Memerlukan autentikasi claude.ai. Sesi terminal di mana Anda masuk dengan akun claude.ai Anda [mengunduh skills ini](/docs/id/skills#where-synced-skills-load) ke `~/.claude/skills/synced/` dan resync sekitar setiap 10 menit tanpa variabel ini, jadi atur hanya ketika jalankan `-p` memerlukan skills saat ini pada kueri pertamanya. Sebelum v2.1.273, sesi terminal mengunduhnya hanya dalam jalankan `-p` dengan variabel ini diatur. Nama folder `synced` [dicadangkan untuk unduhan ini](/docs/id/skills#where-skills-live). Sebelum v2.1.227, skills mengunduh ke `~/.claude/skills/` secara langsung. Claude Code menerapkan [aturan ekstra ke skills yang diunduh](/docs/id/skills#how-synced-skills-behave), seperti tidak menjalankan perintah `!` mereka di mesin Anda |

382| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout dalam milidetik untuk resync skills mid-session ketika `CLAUDE_CODE_SYNC_SKILLS` diatur (default: 30000). Mengikat unduhan yang dipicu ketika host meminta reload skill selama sesi. Ketika terlampaui, resync berhenti dan unduhan yang tersisa berlanjut di latar belakang |387| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout dalam milidetik untuk resync skills yang berjalan di tengah-sesi ketika aplikasi yang dibangun di [Agent SDK](/docs/id/agent-sdk/typescript#query-object) memuat ulang skills (default: 30000). Ketika terlampaui, reload berlanjut dengan skills apa pun yang telah tiba, dan unduhan yang tersisa selesai di latar belakang |

383| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout dalam milidetik untuk kueri pertama menunggu daftar skill awal ketika `CLAUDE_CODE_SYNC_SKILLS` diatur (default: 5000). Ketika terlampaui, kueri pertama berjalan dengan skill apa pun yang telah tiba. Unduhan selesai di latar belakang bagaimanapun, dan Claude menunggu unduhan skill ketika menjalankan skill itu |388| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout dalam milidetik untuk kueri pertama menunggu daftar skill awal ketika `CLAUDE_CODE_SYNC_SKILLS` diatur (default: 5000). Ketika terlampaui, kueri pertama berjalan dengan skills apa pun yang telah tiba. Unduhan selesai di latar belakang bagaimanapun, dan Claude menunggu unduhan skill ketika menginvokasinya |

384| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Atur ke `false` untuk menonaktifkan penyorotan sintaks dalam output diff. Berguna ketika warna mengganggu setup terminal Anda. Untuk juga menonaktifkan penyorotan dalam blok kode dan pratinjau file, gunakan pengaturan [`syntaxHighlightingDisabled`](/docs/id/settings-reference#syntaxhighlightingdisabled) |389| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Atur ke `false` untuk menonaktifkan penyorotan sintaks dalam output diff. Berguna ketika warna mengganggu pengaturan terminal Anda. Untuk juga menonaktifkan penyorotan dalam blok kode dan pratinjau file, gunakan pengaturan [`syntaxHighlightingDisabled`](/docs/id/settings-reference#syntaxhighlightingdisabled) |

385| `CLAUDE_CODE_TASK_LIST_ID` | Bagikan daftar tugas di seluruh sesi. Atur ID yang sama dalam beberapa instans Claude Code untuk berkoordinasi pada daftar tugas bersama, dalam [sesi yang memiliki alat Task](/docs/id/tools-reference#task-tool-availability). Lihat [Task list](/docs/id/interactive-mode#task-list) |390| `CLAUDE_CODE_TASK_LIST_ID` | Bagikan daftar tugas di seluruh sesi. Atur ID yang sama di beberapa instans Claude Code untuk berkoordinasi pada daftar tugas bersama, di [sesi yang memiliki alat Task](/docs/id/tools-reference#task-tool-availability). Lihat [Daftar tugas](/docs/id/interactive-mode#task-list) |

386| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Ganti, dalam milidetik, berapa lama sesi non-interaktif menunggu saat keluar untuk [tim agent](/docs/id/agent-teams) selesai melepas. Menerima 1000 hingga 60000; nilai di luar jangkauan diabaikan dan default 10000 berlaku. Memerlukan Claude Code v2.1.206 atau lebih baru |391| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Ganti, dalam milidetik, berapa lama sesi non-interaktif menunggu saat keluar untuk [tim agent](/docs/id/agent-teams) selesai merobohkan. Menerima 1000 hingga 60000; nilai di luar jangkauan diabaikan dan default 10000 berlaku. Memerlukan Claude Code v2.1.206 atau lebih baru |

387| `CLAUDE_CODE_TMPDIR` | Ganti direktori temp yang digunakan untuk file temp internal. Claude Code menambahkan `/claude-{uid}/` di Unix atau `/claude/` di Windows ke path ini. Default: `/tmp` di macOS, `os.tmpdir()` di Linux dan Windows. Di macOS dan Linux, subproses Bash [sandboxed](/docs/id/sandboxing) menerima fallback `$TMPDIR` pendek di bawah default sistem ketika override Anda adalah path panjang, karena beberapa alat gagal ketika path temp menjadi terlalu panjang. Perintah Bash yang tidak disandbox mewarisi `$TMPDIR` shell Anda tidak berubah. File temp Claude Code sendiri selalu menggunakan override Anda. Atur di shell, pengaturan pengguna, atau pengaturan yang dikelola. Diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |392| `CLAUDE_CODE_TMPDIR` | Ganti direktori temp yang digunakan untuk file temp internal. Claude Code menambahkan `/claude-{uid}/` di Unix atau `/claude/` di Windows ke path ini. Default: `/tmp` di macOS, `os.tmpdir()` di Linux dan Windows. Di macOS dan Linux, subproses Bash [sandboxed](/docs/id/sandboxing) menerima fallback `$TMPDIR` pendek di bawah default sistem ketika override Anda adalah path panjang, karena beberapa alat gagal ketika path temp menjadi terlalu panjang. Perintah Bash yang tidak disandbox mewarisi `$TMPDIR` shell Anda tidak berubah. File temp Claude Code sendiri selalu menggunakan override Anda. 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) |

388| `CLAUDE_CODE_TMUX_TRUECOLOR` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk memungkinkan output truecolor 24-bit di dalam tmux. **Menetapkannya ke `0` atau `false` masih memungkinkan truecolor**, tidak seperti sebagian besar variabel on/off; batalkan penetapan variabel untuk mengembalikan penjepit 256-warna. Secara default, Claude Code menjepit ke 256 warna ketika `$TMUX` diatur karena tmux tidak meneruskan urutan escape truecolor kecuali dikonfigurasi untuk. Atur ini setelah menambahkan `set -ga terminal-overrides ',*:Tc'` ke `~/.tmux.conf` Anda. Lihat [Terminal configuration](/docs/id/terminal-config) untuk pengaturan tmux lainnya |393| `CLAUDE_CODE_TMUX_TRUECOLOR` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk memungkinkan output truecolor 24-bit di dalam tmux. **Menetapkannya ke `0` atau `false` masih memungkinkan truecolor**, tidak seperti sebagian besar variabel aktif/mati; batalkan penetapan variabel untuk mengembalikan penjepit warna 256. Secara default, Claude Code menjepit ke 256 warna ketika `$TMUX` diatur karena tmux tidak meneruskan urutan escape truecolor kecuali dikonfigurasi untuk. Atur ini setelah menambahkan `set -ga terminal-overrides ',*:Tc'` ke `~/.tmux.conf` Anda. Lihat [Konfigurasi Terminal](/docs/id/terminal-config) untuk pengaturan tmux lainnya |

389| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Di Linux dan WSL, atur ke daftar jenis proses yang dipisahkan koma yang Claude Code [mengecualikan dari batas memori alat](/docs/id/tools-reference#memory-limit-on-linux-and-wsl), seperti `mcp` atau `lsp`. Atur `none` untuk membatasi setiap jenis, atau `all-new` untuk membatasi hanya perintah alat Bash, PowerShell, dan Monitor. Claude Code menjaga perintah alat Bash, PowerShell, dan Monitor di bawah batas apa pun yang Anda daftarkan. Memerlukan Claude Code v2.1.246 atau lebih baru |394| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Di Linux dan WSL, atur ke daftar jenis proses yang dipisahkan koma yang Claude Code [mengecualikan dari batas memori alat](/docs/id/tools-reference#memory-limit-on-linux-and-wsl), seperti `mcp` atau `lsp`. Atur `none` untuk membatasi setiap jenis, atau `all-new` untuk membatasi hanya perintah alat Bash, PowerShell, dan Monitor. Claude Code menjaga perintah alat Bash, PowerShell, dan Monitor di bawah batas apa pun yang Anda daftarkan. Memerlukan Claude Code v2.1.246 atau lebih baru |

390| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Di Linux dan WSL, atur ke ukuran seperti `4G` untuk [membatasi memori yang dapat digunakan perintah alat Bash dan PowerShell](/docs/id/tools-reference#memory-limit-on-linux-and-wsl), dan perintah alat Monitor pada v2.1.246 atau lebih baru. Tulis ukuran dalam digit biasa, saja untuk jumlah byte atau dengan akhiran `K`, `M`, `G`, atau `T`. Atur `0` atau `off` untuk mematikan batas. Setelah proses pertama Claude Code mulai telah mengaktifkan atau menonaktifkan batas, nilai yang berubah berlaku saat Anda meluncurkan `claude` berikutnya. Memerlukan Claude Code v2.1.233 atau lebih baru |395| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Di Linux dan WSL, atur ke ukuran seperti `4G` untuk [membatasi memori yang perintah alat Bash dan PowerShell dapat gunakan](/docs/id/tools-reference#memory-limit-on-linux-and-wsl), dan perintah alat Monitor di v2.1.246 atau lebih baru. Tulis ukuran dalam digit biasa, saja untuk jumlah byte atau dengan akhiran `K`, `M`, `G`, atau `T`. Atur `0` atau `off` untuk menonaktifkan batas. Setelah proses pertama Claude Code mulai telah mengaktifkan atau menonaktifkan batas, nilai yang berubah berlaku saat berikutnya Anda meluncurkan `claude`. Memerlukan Claude Code v2.1.233 atau lebih baru |

391| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Tenggat waktu dalam milidetik untuk dialog Claude Code teruskan ke klien jarak jauh, seperti [Remote Control](/docs/id/remote-control) atau host SDK, dan untuk dialog persetujuan untuk [pesan lintas sesi yang ditahan](/docs/id/cross-session-messaging#control-inbound-messages), sebelum Claude Code membatalkannya; prompt izin dan pertanyaan `AskUserQuestion` menggunakan alur mereka sendiri dan tidak diatur oleh itu. Juga mengikat prompt persetujuan kredit penggunaan Fable mid-session [](/docs/id/model-config#fable-and-usage-credits) dalam sesi yang mungkin berjalan tanpa pengawasan. [Control inbound messages](/docs/id/cross-session-messaging#control-inbound-messages) dan [non-interactive sessions](/docs/id/cross-session-messaging#non-interactive-sessions) mencakup aturan kedaluwarsa pesan yang ditahan penuh, termasuk kasus di mana tenggat waktu tidak berlaku. Mengganti pengaturan [`dialogExpiry`](/docs/id/settings-reference#dialogexpiry); `0` atau nilai negatif menonaktifkan tenggat waktu |396| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Tenggat waktu dalam milidetik sebelum Claude Code membatalkan dialog yang diteruskan ke klien jarak jauh seperti [Remote Control](/docs/id/remote-control) atau host SDK, atau dialog persetujuan untuk [pesan lintas sesi yang ditahan](/docs/id/cross-session-messaging#control-inbound-messages); prompt izin dan pertanyaan `AskUserQuestion` menggunakan alur mereka sendiri dan tidak diatur olehnya. Di Claude Code v2.1.236 atau lebih baru, itu juga mengikat prompt persetujuan kredit penggunaan Fable [mid-session](/docs/id/model-config#fable-and-usage-credits) di sesi yang mungkin berjalan tanpa pengawasan. [Kontrol pesan inbound](/docs/id/cross-session-messaging#control-inbound-messages) dan [sesi non-interaktif](/docs/id/cross-session-messaging#non-interactive-sessions) mencakup aturan kedaluwarsa pesan yang ditahan penuh, termasuk kasus di mana tenggat waktu tidak berlaku. Mengganti pengaturan [`dialogExpiry`](/docs/id/settings-reference#dialogexpiry). `0` atau nilai negatif menonaktifkan tenggat waktu |

392| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Gunakan [Claude Platform on AWS](/docs/id/claude-platform-on-aws) |397| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Gunakan [Claude Platform on AWS](/docs/id/claude-platform-on-aws) |

393| `CLAUDE_CODE_USE_BEDROCK` | Gunakan [Amazon Bedrock](/docs/id/amazon-bedrock) |398| `CLAUDE_CODE_USE_BEDROCK` | Gunakan [Amazon Bedrock](/docs/id/amazon-bedrock) |

394| `CLAUDE_CODE_USE_FOUNDRY` | Gunakan [Microsoft Foundry](/docs/id/microsoft-foundry) |399| `CLAUDE_CODE_USE_FOUNDRY` | Gunakan [Microsoft Foundry](/docs/id/microsoft-foundry) |

395| `CLAUDE_CODE_USE_MANTLE` | Gunakan endpoint Amazon Bedrock [Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) |400| `CLAUDE_CODE_USE_MANTLE` | Gunakan endpoint Amazon Bedrock [Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) |

396| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Atur ke `1` untuk menemukan perintah kustom, subagent, dan gaya output menggunakan API file Node.js daripada ripgrep. Atur ini jika biner ripgrep bundel tidak tersedia atau diblokir di lingkungan Anda. Tidak mempengaruhi alat Grep atau pencarian file |401| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Atur ke `1` untuk menemukan perintah khusus, subagent, dan gaya output menggunakan API file Node.js daripada ripgrep. Atur ini jika biner ripgrep bundel tidak tersedia atau diblokir di lingkungan Anda. Tidak mempengaruhi alat Grep atau pencarian file |

397| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Mengontrol alat PowerShell. Di Windows tanpa Git Bash, alat diaktifkan secara otomatis; atur ke `0` untuk menonaktifkannya. Di Windows dengan Git Bash diinstal, alat aktif secara default untuk akun claude.ai dan Console; atur ke `1` untuk mengaktifkannya dalam sesi Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry, atau `0` untuk mematikannya. Di Linux, macOS, dan WSL, atur ke `1` untuk mengaktifkannya, yang memerlukan `pwsh` di `PATH` Anda. Ketika diaktifkan di Windows, Claude dapat menjalankan perintah PowerShell secara asli daripada merutekan melalui Git Bash. Lihat [PowerShell tool](/docs/id/tools-reference#powershell-tool) |402| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Mengontrol alat PowerShell. Di Windows tanpa Git Bash, alat diaktifkan secara otomatis; atur ke `0` untuk menonaktifkannya. Di Windows dengan Git Bash diinstal, alat aktif secara default untuk akun claude.ai dan Console; atur ke `1` untuk mengaktifkannya di sesi Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry, atau `0` untuk menonaktifkannya. Di Linux, macOS, dan WSL, atur ke `1` untuk mengaktifkannya, yang memerlukan `pwsh` di `PATH` Anda. Ketika diaktifkan di Windows, Claude dapat menjalankan perintah PowerShell secara asli daripada merutekan melalui Git Bash. Lihat [Alat PowerShell](/docs/id/tools-reference#powershell-tool) |

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

399| `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 menjaga default. Claude Code membaca nilai sekali per peluncuran, jadi perubahan dalam blok `env` pengaturan berlaku saat Anda meluncurkan `claude` berikutnya. Memerlukan Claude Code v2.1.233 atau lebih baru |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 |

400| `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 selama waktu ini 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 |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 |

401| `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 dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |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 |

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

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

403| `CLAUDE_EFFORT` | Atur secara otomatis dalam subproses alat Bash dan perintah hook ke [tingkat effort](/docs/id/model-config#adjust-effort-level) yang berlaku ketika subproses dimulai: `low`, `medium`, `high`, `xhigh`, atau `max`. Ultracode bukan tingkat yang berbeda dan melaporkan sebagai `xhigh`. Cocok dengan bidang `effort.level` yang diteruskan ke [hook](/docs/id/hooks). Hanya diatur ketika model saat ini mendukung parameter effort |409| `CLAUDE_EFFORT` | Atur secara otomatis di subproses alat Bash dan perintah hook ke [tingkat effort](/docs/id/model-config#adjust-effort-level) yang berlaku ketika subproses dimulai: `low`, `medium`, `high`, `xhigh`, atau `max`. Ultracode bukan tingkat yang berbeda dan melaporkan sebagai `xhigh`. Cocok dengan bidang `effort.level` yang diteruskan ke [hook](/docs/id/hooks). Hanya diatur ketika model saat ini mendukung parameter effort |

404| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Atur ke `1` untuk memaksa-mengaktifkan watchdog idle streaming tingkat byte, atau atur ke `0` untuk memaksa-menonaktifkannya. `0` juga mematikan [tenggat waktu byte pertama](/docs/id/network-config#streaming-idle-watchdogs) pada koneksi di mana tenggat waktu itu berjalan. Ketika tidak diatur, watchdog diaktifkan secara default untuk koneksi API Anthropic langsung dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws), dan untuk respons streaming pada koneksi [gateway](/docs/id/gateways) yang dicapai melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL`; sebelum v2.1.222 itu tidak berjalan pada koneksi gateway itu, jadi watchdog tingkat acara dapat melaporkan stall di sana bahkan saat ping keep-alive tiba. Untuk timeout dan cara timer berinteraksi, lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs) |410| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Atur ke `1` untuk memaksa-mengaktifkan watchdog idle streaming tingkat byte, atau atur ke `0` untuk memaksa-menonaktifkannya. `0` juga menonaktifkan [tenggat waktu byte pertama](/docs/id/network-config#streaming-idle-watchdogs) pada koneksi di mana tenggat waktu itu berjalan. Ketika tidak diatur, watchdog diaktifkan secara default untuk koneksi API Anthropic langsung dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws), dan untuk respons streaming di koneksi [gateway](/docs/id/gateways) yang dicapai melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL`; sebelum v2.1.222 itu tidak berjalan di koneksi gateway itu, jadi watchdog tingkat acara dapat melaporkan stall di sana bahkan saat ping keep-alive tiba. Untuk timeout dan cara timer berinteraksi, lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs) |

405| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Atur ke `1` untuk mengaktifkan watchdog idle streaming tingkat byte pada respons Amazon Bedrock `vnd.amazon.eventstream`, yang juga mengaktifkan [tenggat waktu byte pertama](/docs/id/network-config#streaming-idle-watchdogs) pada permintaan streaming Bedrock. Dimatikan secara default. Konfigurasikan timeout dengan `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |411| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Atur ke `1` untuk mengaktifkan watchdog idle streaming tingkat byte pada respons Amazon Bedrock `vnd.amazon.eventstream`, yang juga mengaktifkan [tenggat waktu byte pertama](/docs/id/network-config#streaming-idle-watchdogs) pada permintaan streaming Bedrock. Dimatikan secara default. Konfigurasikan timeout dengan `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

406| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Atur ke `0` untuk memaksa-menonaktifkan watchdog idle streaming tingkat acara, atau atur ke `1` untuk memaksa-mengaktifkannya. Ketika tidak diatur, watchdog aktif secara default untuk semua penyedia. Sebelum v2.1.196, default yang tidak diatur dikendalikan server di API Anthropic langsung dan dimatikan pada penyedia lain. Konfigurasikan timeout dengan `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; untuk timer stall lainnya yang berjalan bersama ini, lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs) |412| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Atur ke `0` untuk memaksa-menonaktifkan watchdog idle streaming tingkat acara, atau atur ke `1` untuk memaksa-mengaktifkannya. Ketika tidak diatur, watchdog aktif secara default untuk semua penyedia. Sebelum v2.1.196, default yang tidak diatur dikendalikan server di API Anthropic langsung dan dimatikan di penyedia lain. Konfigurasikan timeout dengan `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; untuk timer stall lainnya yang berjalan bersama ini, lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs) |

407| `CLAUDE_ENV_FILE` | Path ke skrip shell yang isinya Claude Code jalankan sebelum setiap perintah Bash dalam proses shell yang sama, jadi ekspor dalam file terlihat oleh perintah. Gunakan untuk mempertahankan aktivasi virtualenv atau conda di seluruh perintah. Juga diisi secara dinamis oleh hook [SessionStart](/docs/id/hooks#persist-environment-variables), [Setup](/docs/id/hooks#setup), [CwdChanged](/docs/id/hooks#cwdchanged), dan [FileChanged](/docs/id/hooks#filechanged) |413| `CLAUDE_ENV_FILE` | Path ke skrip shell yang isinya Claude Code jalankan sebelum setiap perintah Bash dalam proses shell yang sama, jadi ekspor dalam file terlihat oleh perintah. Gunakan untuk mempertahankan aktivasi virtualenv atau conda di seluruh perintah. Juga diisi secara dinamis oleh hook [SessionStart](/docs/id/hooks#persist-environment-variables), [Setup](/docs/id/hooks#setup), [CwdChanged](/docs/id/hooks#cwdchanged), dan [FileChanged](/docs/id/hooks#filechanged) |

408| `CLAUDE_PID` | Claude Code menetapkan ini ke ID proses miliknya sendiri dalam subproses yang dihasilkannya: perintah alat Bash dan PowerShell dan perintah hook. Di Linux, integrasi shell alat Bash menggunakannya untuk menolak pola `pkill` yang akan cocok dengan proses Claude Code itu sendiri; lihat [referensi kesalahan](/docs/id/errors#pkill-pattern-matches-the-claude-code-process). Baca dari skrip Anda sendiri untuk mengidentifikasi atau menandatangani proses Claude Code induk dengan sengaja. Memerlukan Claude Code v2.1.214 atau lebih baru |414| `CLAUDE_JOB_DIR` | Atur oleh Claude Code di setiap [sesi latar belakang](/docs/id/agent-view) ke direktori `~/.claude/jobs/<id>` sesi itu. Perintah shell yang dijalankan sesi mewarisnya. Tulis file scratch ke [`$CLAUDE_JOB_DIR/tmp`](/docs/id/agent-view#where-state-is-stored). Panggilan `Write` dan `Edit` Claude di sana tidak meminta izin, dan direktori dihapus ketika sesi dihapus |

415| `CLAUDE_PID` | Claude Code menetapkan ini ke ID proses miliknya sendiri di subproses yang diluncurkannya: perintah alat Bash dan PowerShell dan perintah hook. Di Linux, integrasi shell alat Bash menggunakannya untuk menolak pola `pkill` yang akan cocok dengan proses Claude Code itu sendiri; lihat [referensi kesalahan](/docs/id/errors#pkill-pattern-matches-the-claude-code-process). Bacanya dari skrip Anda sendiri untuk mengidentifikasi atau menandatangani proses Claude Code induk dengan sengaja. Memerlukan Claude Code v2.1.214 atau lebih baru |

409| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Awalan untuk nama sesi [Remote Control](/docs/id/remote-control) yang dihasilkan otomatis ketika tidak ada nama eksplisit yang disediakan. Default ke nama host mesin Anda, menghasilkan nama seperti `myhost-graceful-unicorn`. Flag CLI `--remote-control-session-name-prefix` menetapkan nilai yang sama untuk satu invokasi |416| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Awalan untuk nama sesi [Remote Control](/docs/id/remote-control) yang dihasilkan otomatis ketika tidak ada nama eksplisit yang disediakan. Default ke nama host mesin Anda, menghasilkan nama seperti `myhost-graceful-unicorn`. Flag CLI `--remote-control-session-name-prefix` menetapkan nilai yang sama untuk satu invokasi |

410| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Tenggat waktu dalam milidetik untuk byte respons pertama dari permintaan streaming, pada koneksi di mana [tenggat waktu byte pertama](/docs/id/network-config#streaming-idle-watchdogs) berjalan. Untuk cara Claude Code menjepit itu, waktu ekstra yang ditambahkannya untuk badan permintaan besar, dan cara memilih tenggat waktu ketika Anda membiarkan ini tidak diatur, lihat [No response from API](/docs/id/errors#no-response-from-api). Memerlukan Claude Code v2.1.242 atau lebih baru |417| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Tenggat waktu dalam milidetik untuk byte respons pertama dari permintaan streaming, pada koneksi di mana [tenggat waktu byte pertama](/docs/id/network-config#streaming-idle-watchdogs) berjalan. Untuk cara Claude Code menjepit, waktu ekstra yang ditambahkannya untuk badan permintaan besar, dan cara memilih tenggat waktu ketika Anda membiarkan ini tidak diatur, lihat [Tidak ada respons dari API](/docs/id/errors#no-response-from-api). Memerlukan Claude Code v2.1.242 atau lebih baru |

411| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Timeout dalam milidetik sebelum watchdog idle streaming tingkat acara dan byte menutup koneksi yang terhenti. Ketika Anda menetapkan variabel ini secara eksplisit, minimum adalah `300000` (5 menit); nilai lebih rendah secara diam-diam diklem untuk menyerap jeda pemikiran yang diperpanjang dan buffering proxy, dan watchdog tingkat byte membatasi nilai pada 30 menit. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` mengambil prioritas atas variabel ini untuk watchdog tingkat byte. Untuk default yang tidak diatur per-watchdog, lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs) |418| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Timeout dalam milidetik sebelum watchdog idle streaming tingkat acara dan byte menutup koneksi yang terhenti. Ketika Anda menetapkan variabel ini secara eksplisit, minimum adalah `300000` (5 menit); nilai lebih rendah secara diam-diam dijepit untuk menyerap jeda pemikiran yang diperpanjang dan buffering proxy, dan watchdog tingkat byte membatasi nilai pada 30 menit. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` mengambil prioritas di atas variabel ini untuk watchdog tingkat byte. Untuk default yang tidak diatur per-watchdog, lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs) |

412| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Umur maksimum dalam milidetik untuk [perintah shell latar belakang](/docs/id/interactive-mode#background-bash-commands) yang [subagent](/docs/id/sub-agents) mulai. Default `3600000` (60 menit). Ketika Anda menetapkan `0`, Claude Code menerapkan default sebagai gantinya dari menghapus batas. Ketika subagent berjalan di latar depan, Claude Code juga mengakhiri perintah ketika subagent itu memberikan respons finalnya, terlepas dari batas ini. Lihat [aturan umur perintah latar belakang](/docs/id/tools-reference#background-commands). Claude Code tidak membatasi perintah latar belakang sesi utama dengan cara ini. Untuk batas tekanan memori yang mencakupnya, lihat [How backgrounding works](/docs/id/interactive-mode#how-backgrounding-works) |419| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Dihapus di v2.1.260 dan sekarang tidak beroperasi. Sebelumnya membatasi berapa lama [perintah shell latar belakang](/docs/id/interactive-mode#background-bash-commands) yang [subagent](/docs/id/sub-agents) mulai dapat berjalan, dalam milidetik, dengan default 60 menit. Lihat [aturan lifetime perintah latar belakang](/docs/id/tools-reference#background-commands) |

413| `DEBUG` | Atur ke `1` untuk mengaktifkan mode debug, setara dengan meluncurkan dengan [`--debug`](/docs/id/cli-reference#cli-flags). Log debug ditulis ke `~/.claude/debug/<session-id>.txt`, atau ke path yang diatur oleh `CLAUDE_CODE_DEBUG_LOGS_DIR`. Hanya nilai truthy `1`, `true`, `yes`, dan `on` yang mengaktifkan mode debug, jadi pola namespace seperti `DEBUG=express:*` yang diatur untuk alat lain tidak memicunya |420| `DEBUG` | Atur ke `1` untuk mengaktifkan mode debug, setara dengan meluncurkan dengan [`--debug`](/docs/id/cli-reference#cli-flags). Log debug ditulis ke `~/.claude/debug/<session-id>.txt`, atau ke path yang diatur oleh `CLAUDE_CODE_DEBUG_LOGS_DIR`. Hanya nilai truthy `1`, `true`, `yes`, dan `on` yang mengaktifkan mode debug, jadi pola namespace seperti `DEBUG=express:*` yang diatur untuk alat lain tidak memicunya |

414| `DISABLE_AUTOUPDATER` | Atur ke `1` untuk menonaktifkan pembaruan latar belakang otomatis. Manual `claude update` masih bekerja. Gunakan `DISABLE_UPDATES` untuk memblokir keduanya |421| `DISABLE_AUTOUPDATER` | Atur ke `1` untuk menonaktifkan pembaruan latar belakang otomatis. Manual `claude update` masih bekerja. Gunakan `DISABLE_UPDATES` untuk memblokir keduanya |

415| `DISABLE_AUTO_COMPACT` | Atur ke `1` untuk menonaktifkan compaction otomatis saat mendekati batas konteks. Perintah `/compact` manual tetap tersedia. Gunakan ketika Anda menginginkan kontrol eksplisit atas kapan compaction terjadi. Mengganti pengaturan [`autoCompactEnabled`](/docs/id/settings-reference#autocompactenabled) |422| `DISABLE_AUTO_COMPACT` | Atur ke `1` untuk menonaktifkan compaction otomatis saat mendekati batas konteks. Perintah `/compact` manual tetap tersedia. Gunakan ketika Anda menginginkan kontrol eksplisit atas kapan compaction terjadi. Mengganti pengaturan [`autoCompactEnabled`](/docs/id/settings-reference#autocompactenabled) |

416| `DISABLE_COMPACT` | Atur ke `1` untuk menonaktifkan semua compaction: baik compaction otomatis maupun perintah `/compact` manual |423| `DISABLE_COMPACT` | Atur ke `1` untuk menonaktifkan semua compaction: baik compaction otomatis maupun perintah `/compact` manual |

417| `DISABLE_COST_WARNINGS` | Atur ke `1` untuk menonaktifkan pesan peringatan biaya |424| `DISABLE_COST_WARNINGS` | Atur ke `1` untuk menonaktifkan pesan peringatan biaya |

418| `DISABLE_DOCTOR_COMMAND` | Atur ke `1` untuk menyembunyikan skill checkup setup [`/doctor`](/docs/id/commands#all-commands) dan alias `/checkup` miliknya. Berguna untuk deployment yang dikelola di mana pengguna tidak boleh menjalankan diagnostik setup dari sesi. Tidak mempengaruhi perintah terminal `claude doctor`. Sebelum v2.1.205, variabel ini menyembunyikan layar perintah diagnostik `/doctor` |425| `DISABLE_DOCTOR_COMMAND` | Atur ke `1` untuk menyembunyikan skill checkup [`/doctor`](/docs/id/commands#all-commands) dan alias `/checkup` miliknya. Berguna untuk deployment yang dikelola di mana pengguna tidak boleh menjalankan diagnostik setup dari sesi. Tidak mempengaruhi perintah terminal `claude doctor`. Sebelum v2.1.205, variabel ini menyembunyikan layar diagnostik `/doctor` |

419| `DISABLE_ERROR_REPORTING` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk memilih keluar dari pelaporan kesalahan. **Menetapkannya ke `0` atau `false` masih memilih keluar**, tidak seperti sebagian besar variabel on/off; batalkan penetapan variabel untuk menghidupkan pelaporan kesalahan kembali |426| `DISABLE_ERROR_REPORTING` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk memilih keluar dari pelaporan kesalahan. **Menetapkannya ke `0` atau `false` masih memilih keluar**, tidak seperti sebagian besar variabel aktif/mati; batalkan penetapan variabel untuk mengaktifkan pelaporan kesalahan kembali |

420| `DISABLE_EXTRA_USAGE_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/usage-credits` yang memungkinkan pengguna membeli penggunaan tambahan di luar batas laju |427| `DISABLE_EXTRA_USAGE_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/usage-credits` yang memungkinkan pengguna membeli penggunaan tambahan di luar batas laju |

421| `DISABLE_FEEDBACK_COMMAND` | Atur ke `1` untuk menonaktifkan perintah `/feedback` dan [umpan balik yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior). Juga menonaktifkan `/bug` dan `/share`, yang melaporkan melalui path yang sama; sebelum v2.1.212 mereka adalah alias `/feedback`, jadi perintah dinonaktifkan di bawah setiap nama. Nama lama `DISABLE_BUG_COMMAND` juga diterima |428| `DISABLE_FEEDBACK_COMMAND` | Atur ke `1` untuk menonaktifkan perintah `/feedback` dan [umpan balik yang ditulis Claude](/docs/id/tools-reference#sendfeedback-tool-behavior). Juga menonaktifkan `/bug` dan `/share`, yang melaporkan melalui path yang sama; sebelum v2.1.212 mereka adalah alias `/feedback`, jadi perintah dinonaktifkan di bawah setiap nama. Nama lama `DISABLE_BUG_COMMAND` juga diterima |

422| `DISABLE_GROWTHBOOK` | Atur ke `1` atau `true` untuk menonaktifkan pengambilan flag fitur GrowthBook dan menggunakan default kode untuk setiap flag. Ini membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan flag fitur](#features-that-need-feature-flag-fetching) tidak tersedia. Menetapkannya ke `0` atau `false` meninggalkan pengambilan aktif. Logging acara telemetri tetap aktif kecuali `DISABLE_TELEMETRY` juga diatur |429| `DISABLE_GROWTHBOOK` | Atur ke `1` atau `true` untuk menonaktifkan pengambilan flag fitur GrowthBook dan menggunakan default kode untuk setiap flag. Ini membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan flag fitur](#features-that-need-feature-flag-fetching) tidak tersedia. Menetapkannya ke `0` atau `false` meninggalkan pengambilan aktif. Logging acara telemetri tetap aktif kecuali `DISABLE_TELEMETRY` juga diatur |

423| `DISABLE_INSTALLATION_CHECKS` | Atur ke `1` untuk menonaktifkan peringatan instalasi. Gunakan hanya saat mengelola lokasi instalasi secara manual, karena ini dapat menyembunyikan masalah dengan instalasi standar |430| `DISABLE_INSTALLATION_CHECKS` | Atur ke `1` untuk menonaktifkan peringatan instalasi. Gunakan hanya saat mengelola lokasi instalasi secara manual, karena ini dapat menyembunyikan masalah dengan instalasi standar |

424| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/install-github-app`. Sudah disembunyikan saat menggunakan penyedia pihak ketiga (Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry) |431| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/install-github-app`. Sudah disembunyikan saat menggunakan penyedia pihak ketiga (Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry) |

425| `DISABLE_INTERLEAVED_THINKING` | Atur ke `1` untuk mencegah pengiriman header beta pemikiran yang disisipi. Berguna ketika gateway LLM atau penyedia Anda tidak mendukung [interleaved thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |432| `DISABLE_INTERLEAVED_THINKING` | Atur ke `1` untuk mencegah pengiriman header beta pemikiran yang disisipi. Berguna ketika gateway LLM atau penyedia Anda tidak mendukung [pemikiran yang disisipi](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |

426| `DISABLE_LOGIN_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/login`. Berguna ketika autentikasi ditangani secara eksternal melalui kunci API atau `apiKeyHelper` |433| `DISABLE_LOGIN_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/login`. Berguna ketika autentikasi ditangani secara eksternal melalui kunci API atau `apiKeyHelper` |

427| `DISABLE_LOGOUT_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/logout` |434| `DISABLE_LOGOUT_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/logout` |

428| `DISABLE_PROMPT_CACHING` | Atur ke `1` untuk menonaktifkan [prompt caching](/docs/id/prompt-caching#disable-prompt-caching) untuk semua model (mengambil prioritas atas pengaturan per-model) |435| `DISABLE_PROMPT_CACHING` | Atur ke `1` untuk menonaktifkan [prompt caching](/docs/id/prompt-caching#disable-prompt-caching) untuk semua model (mengambil prioritas di atas pengaturan per-model) |

429| `DISABLE_PROMPT_CACHING_FABLE` | Atur ke `1` untuk menonaktifkan prompt caching untuk model Fable |436| `DISABLE_PROMPT_CACHING_FABLE` | Atur ke `1` untuk menonaktifkan prompt caching untuk model Fable |

430| `DISABLE_PROMPT_CACHING_HAIKU` | Atur ke `1` untuk menonaktifkan prompt caching untuk model Haiku |437| `DISABLE_PROMPT_CACHING_HAIKU` | Atur ke `1` untuk menonaktifkan prompt caching untuk model Haiku |

431| `DISABLE_PROMPT_CACHING_OPUS` | Atur ke `1` untuk menonaktifkan prompt caching untuk model Opus |438| `DISABLE_PROMPT_CACHING_OPUS` | Atur ke `1` untuk menonaktifkan prompt caching untuk model Opus |

432| `DISABLE_PROMPT_CACHING_SONNET` | Atur ke `1` untuk menonaktifkan prompt caching untuk model Sonnet |439| `DISABLE_PROMPT_CACHING_SONNET` | Atur ke `1` untuk menonaktifkan prompt caching untuk model Sonnet |

433| `DISABLE_TELEMETRY` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk memilih keluar dari telemetri. **Menetapkannya ke `0` atau `false` masih memilih keluar**, tidak seperti sebagian besar variabel on/off; batalkan penetapan variabel untuk menghidupkan telemetri kembali. Acara telemetri tidak menyertakan data pengguna seperti kode, path file, atau perintah bash. Juga menonaktifkan pengambilan flag fitur dengan efek yang sama seperti `DISABLE_GROWTHBOOK`, yang membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan flag fitur](#features-that-need-feature-flag-fetching) tidak tersedia. Lihat [Turn telemetry off for your organization](/docs/id/managed-settings#turn-telemetry-off-for-your-organization) |440| `DISABLE_TELEMETRY` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk memilih keluar dari telemetri. **Menetapkannya ke `0` atau `false` masih memilih keluar**, tidak seperti sebagian besar variabel aktif/mati; batalkan penetapan variabel untuk mengaktifkan telemetri kembali. Acara telemetri tidak menyertakan data pengguna seperti kode, path file, atau perintah bash. Juga menonaktifkan pengambilan flag fitur dengan efek yang sama seperti `DISABLE_GROWTHBOOK`, yang membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan flag fitur](#features-that-need-feature-flag-fetching) tidak tersedia. Lihat [Matikan telemetri untuk organisasi Anda](/docs/id/managed-settings#turn-telemetry-off-for-your-organization) |

434| `DISABLE_UPDATES` | Atur ke `1` untuk memblokir semua update termasuk manual `claude update` dan `claude install`. Lebih ketat daripada `DISABLE_AUTOUPDATER`. Gunakan saat mendistribusikan Claude Code melalui saluran Anda sendiri dan pengguna tidak boleh self-update |441| `DISABLE_UPDATES` | Atur ke `1` untuk memblokir semua pembaruan termasuk manual `claude update` dan `claude install`. Lebih ketat daripada `DISABLE_AUTOUPDATER`. Gunakan saat mendistribusikan Claude Code melalui saluran Anda sendiri dan pengguna tidak boleh self-update |

435| `DISABLE_UPGRADE_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/upgrade` |442| `DISABLE_UPGRADE_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/upgrade` |

436| `DO_NOT_TRACK` | Atur ke `1` untuk memilih keluar dari telemetri, dengan efek yang sama seperti `DISABLE_TELEMETRY`, termasuk membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan flag fitur](#features-that-need-feature-flag-fetching) tidak tersedia. Claude Code membaca variabel ini sebagai boolean standar, jadi `0` meninggalkan telemetri aktif, dan menghormatinya sebagai konvensi lintas alat yang diakui oleh banyak CLI pengembang |443| `DO_NOT_TRACK` | Atur ke `1` untuk memilih keluar dari telemetri, dengan efek yang sama seperti `DISABLE_TELEMETRY`, termasuk membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan flag fitur](#features-that-need-feature-flag-fetching) tidak tersedia. Claude Code membaca variabel ini sebagai boolean standar, jadi `0` meninggalkan telemetri aktif, dan menghormatinya sebagai konvensi lintas alat yang diakui oleh banyak CLI pengembang |

437| `ENABLE_BETA_TRACING_DETAILED` | Atur ke `1`, bersama dengan `BETA_TRACING_ENDPOINT`, untuk mengaktifkan [pelacakan beta terperinci](/docs/id/monitoring-usage#traces-beta), yang menambahkan atribut span yang membawa konten dan rentang `claude_code.hook`. Sesi CLI interaktif juga memerlukan organisasi Anda untuk dimasukkan dalam daftar putih untuk beta. Kedua variabel diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |444| `ENABLE_BETA_TRACING_DETAILED` | Atur ke `1`, bersama dengan `BETA_TRACING_ENDPOINT`, untuk mengaktifkan [pelacakan beta terperinci](/docs/id/monitoring-usage#traces-beta), yang menambahkan atribut span yang membawa konten dan span `claude_code.hook`. Sesi CLI interaktif juga memerlukan organisasi Anda untuk dimasukkan dalam daftar putih untuk beta. Kedua variabel diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |

438| `ENABLE_CLAUDEAI_MCP_SERVERS` | Atur ke `false` untuk menghentikan Claude Code dari mengambil [server MCP claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai). Diaktifkan secara default untuk pengguna yang masuk. Untuk menonaktifkan per-proyek atau per-org, atur [`disableClaudeAiConnectors`](/docs/id/settings-reference#disableclaudeaiconnectors) dalam pengaturan sebagai gantinya |445| `ENABLE_CLAUDEAI_MCP_SERVERS` | Atur ke `false` untuk menghentikan Claude Code dari mengambil [server MCP claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai). Diaktifkan secara default untuk pengguna yang masuk. Untuk menonaktifkan per-proyek atau per-org, atur [`disableClaudeAiConnectors`](/docs/id/settings-reference#disableclaudeaiconnectors) di pengaturan sebagai gantinya |

439| `ENABLE_PROMPT_CACHING_1H` | Atur ke `1` untuk meminta [prompt cache TTL](/docs/id/prompt-caching#cache-lifetime) 1 jam daripada default 5 menit. Dimaksudkan untuk kunci API, [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), [Microsoft Foundry](/docs/id/microsoft-foundry), dan pengguna [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Pengguna langganan dalam penggunaan yang disertakan menerima TTL 1 jam secara otomatis pada [percakapan utama](/docs/id/prompt-caching#which-ttl-each-request-gets). Pengguna langganan yang menarik dari [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) dapat menetapkannya untuk menjaga TTL 1 jam. Penulisan cache 1 jam ditagih dengan tarif lebih tinggi. Untuk memilih TTL per bucket permintaan sebagai gantinya, gunakan `CLAUDE_CODE_PROMPT_CACHE_TTL` dan `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, yang mengambil prioritas atas variabel ini |446| `ENABLE_PROMPT_CACHING_1H` | Atur ke `1` untuk meminta [prompt cache TTL](/docs/id/prompt-caching#cache-lifetime) 1 jam daripada default 5 menit. Dimaksudkan untuk kunci API, [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), [Microsoft Foundry](/docs/id/microsoft-foundry), dan pengguna [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Pengguna langganan dalam penggunaan yang disertakan menerima TTL 1 jam secara otomatis di [percakapan utama](/docs/id/prompt-caching#which-ttl-each-request-gets). Pengguna langganan yang menarik pada [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) dapat menetapkannya untuk menyimpan TTL 1 jam. Penulisan cache 1 jam ditagih dengan tarif lebih tinggi. Untuk memilih TTL per bucket permintaan sebagai gantinya, gunakan `CLAUDE_CODE_PROMPT_CACHE_TTL` dan `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, yang mengambil prioritas di atas variabel ini |

440| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Sudah usang. Gunakan `ENABLE_PROMPT_CACHING_1H` sebagai gantinya |447| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Sudah usang. Gunakan `ENABLE_PROMPT_CACHING_1H` sebagai gantinya |

441| `ENABLE_TOOL_SEARCH` | Mengontrol [pencarian alat MCP](/docs/id/mcp#scale-with-mcp-tool-search). Tidak diatur, Claude Code menunda semua alat MCP secara default. Itu masih memuat mereka di muka pada model Google Cloud's Agent Platform lebih awal dari generasi Claude 4.5, pada deployment Microsoft Foundry yang dihosting di Azure, dan ketika `ANTHROPIC_BASE_URL` menunjuk ke host non-pihak pertama. `true` selalu menunda dan mengirim header beta, kecuali pada model Agent Platform dan deployment Microsoft Foundry yang sama itu; permintaan gagal pada proxy yang tidak mendukung `tool_reference`. `auto` memuat di muka ketika definisi alat cocok dalam 10% konteks. `auto:N` menetapkan ambang kustom, seperti `auto:5` untuk 5%. `false` memuat semua alat di muka. Nilai yang Anda atur sendiri diabaikan ketika `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` diatur. Sebelum v2.1.221, Claude Code menonaktifkan pencarian alat untuk semua model di Google Cloud's Agent Platform kecuali Anda menetapkan variabel ini ke `true` |448| `ENABLE_TOOL_SEARCH` | Mengontrol [pencarian alat MCP](/docs/id/mcp#scale-with-mcp-tool-search). Tidak diatur, Claude Code menunda semua alat MCP secara default. Itu masih memuat mereka di muka di model Google Cloud's Agent Platform lebih awal dari generasi Claude 4.5, di deployment Microsoft Foundry yang dihosting di Azure, dan ketika `ANTHROPIC_BASE_URL` menunjuk ke host non-pihak pertama. `true` selalu menunda dan mengirim header beta, kecuali di model Agent Platform yang sama dan deployment Microsoft Foundry; permintaan gagal di proxy yang tidak mendukung `tool_reference`. `auto` memuat di muka ketika definisi alat cocok dalam 10% konteks. `auto:N` menetapkan ambang khusus, seperti `auto:5` untuk 5%. `false` memuat semua alat di muka. Nilai yang Anda atur sendiri diabaikan ketika `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` diatur. Sebelum v2.1.221, Claude Code menonaktifkan pencarian alat untuk semua model di Google Cloud's Agent Platform kecuali Anda menetapkan variabel ini ke `true` |

442| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk membuat setiap model berhenti mencoba ulang dengan kesalahan overload berulang ketika tidak ada model fallback yang dikonfigurasi. **Menetapkannya ke `0` atau `false` masih mengaktifkan ini**, tidak seperti sebagian besar variabel on/off; batalkan penetapan variabel untuk mengembalikan perilaku percobaan ulang default. Tanpanya, model yang Claude Code kenali sebagai model Opus, Fable, atau Mythos berhenti mencoba ulang dengan cara ini ketika Anda mengautentikasi dengan kunci API atau [penyedia pihak ketiga](/docs/id/third-party-integrations) daripada langganan Claude. Mulai dari v2.1.160, [rantai model fallback](/docs/id/model-config#fallback-model-chains) yang dikonfigurasi dipicu pada kesalahan overload berulang untuk model utama apa pun, jadi variabel ini tidak mempengaruhi beralih ke model fallback |449| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk membuat Claude Code berhenti mencoba ulang pada kesalahan overload berulang untuk setiap model ketika tidak ada fallback model yang dikonfigurasi. **Menetapkannya ke `0` atau `false` masih mengaktifkan ini**, tidak seperti sebagian besar variabel aktif/mati; batalkan penetapan variabel untuk mengembalikan perilaku percobaan ulang default. Tanpanya, Claude Code berhenti mencoba ulang dengan cara ini di model yang dikenalinya sebagai model Opus, Fable, atau Mythos ketika Anda mengautentikasi dengan kunci API atau [penyedia pihak ketiga](/docs/id/third-party-integrations) daripada langganan Claude. Di Claude Code v2.1.160 atau lebih baru, Claude Code beralih ke [rantai fallback model](/docs/id/model-config#fallback-model-chains) yang dikonfigurasi pada kesalahan overload berulang untuk model utama apa pun, jadi variabel ini tidak mempengaruhi beralih ke fallback model |

443| `FORCE_AUTOUPDATE_PLUGINS` | Atur ke `1` untuk memaksa auto-update plugin bahkan ketika auto-updater utama dinonaktifkan melalui `DISABLE_AUTOUPDATER` |450| `FORCE_AUTOUPDATE_PLUGINS` | Atur ke `1` untuk memaksa auto-update plugin bahkan ketika auto-updater utama dinonaktifkan melalui `DISABLE_AUTOUPDATER` |

444| `FORCE_HYPERLINK` | Atur ke `1` untuk mengaktifkan hyperlink OSC 8 yang dapat diklik ketika terminal Anda mendukungnya tetapi tidak terdeteksi otomatis, atau `0` untuk menonaktifkannya. Ketika tidak diatur, Claude Code mengaktifkan hyperlink hanya ketika mendeteksi dukungan terminal. Claude Code mengurai nilai ini sebagai angka, bukan Boolean, jadi nilai seperti `false`, `no`, atau `off` mengaktifkan hyperlink daripada menonaktifkannya. Claude Code merender footer [lencana PR atau merge request](/docs/id/interactive-mode#pr-review-status) sebagai hyperlink bahkan ketika tidak dapat mendeteksi dukungan terminal, seperti melalui SSH. Atur `0` untuk merender lencana sebagai teks biasa |451| `FORCE_HYPERLINK` | Atur ke `1` untuk mengaktifkan hyperlink OSC 8 yang dapat diklik ketika terminal Anda mendukungnya tetapi tidak terdeteksi otomatis, atau `0` untuk menonaktifkannya. Ketika tidak diatur, Claude Code mengaktifkan hyperlink hanya ketika mendeteksi dukungan terminal. Claude Code mengurai nilai ini sebagai angka, bukan Boolean, jadi nilai seperti `false`, `no`, atau `off` mengaktifkan hyperlink daripada menonaktifkannya. Lencana [PR atau merge request](/docs/id/interactive-mode#pr-review-status) footer merender sebagai hyperlink bahkan ketika Claude Code tidak dapat mendeteksi dukungan terminal, seperti melalui SSH. Atur `0` untuk merender lencana sebagai teks biasa |

445| `FORCE_PROMPT_CACHING_5M` | Atur ke `1` untuk memaksa TTL cache prompt 5 menit bahkan ketika TTL 1 jam akan berlaku sebaliknya. Menimpa `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, dan pengaturan `promptCacheTtl` dan `subagentPromptCacheTtl` |452| `FORCE_PROMPT_CACHING_5M` | Atur ke `1` untuk memaksa TTL cache prompt 5 menit bahkan ketika TTL 1 jam akan berlaku sebaliknya. Mengganti `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, dan pengaturan `promptCacheTtl` dan `subagentPromptCacheTtl` |

446| `HTTP_PROXY` | Tentukan server proxy HTTP untuk koneksi jaringan |453| `HTTP_PROXY` | Tentukan server proxy HTTP untuk koneksi jaringan |

447| `HTTPS_PROXY` | Tentukan server proxy HTTPS untuk koneksi jaringan |454| `HTTPS_PROXY` | Tentukan server proxy HTTPS untuk koneksi jaringan |

448| `IS_DEMO` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk mengaktifkan mode demo: menyembunyikan email dan nama organisasi Anda dari header dan output `/status`, dan melewati onboarding. **Menetapkannya ke `0` atau `false` masih mengaktifkan mode demo**, tidak seperti sebagian besar variabel on/off; batalkan penetapan variabel untuk mematikannya. Berguna saat streaming atau merekam sesi |455| `IS_DEMO` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk mengaktifkan mode demo: menyembunyikan email dan nama organisasi Anda dari header dan output `/status`, dan melewati onboarding. **Menetapkannya ke `0` atau `false` masih mengaktifkan mode demo**, tidak seperti sebagian besar variabel aktif/mati; batalkan penetapan variabel untuk menonaktifkannya. Berguna saat streaming atau merekam sesi |

449| `MAX_MCP_OUTPUT_TOKENS` | Jumlah maksimum token yang diizinkan dalam respons alat MCP. Claude Code menampilkan peringatan ketika output melebihi 10.000 token. Alat yang mendeklarasikan [`anthropic/maxResultSizeChars`](/docs/id/mcp#raise-the-limit-for-a-specific-tool) menggunakan batas karakter itu untuk konten teks sebagai gantinya, tetapi konten gambar dari alat itu masih tunduk pada variabel ini (default: 25000) |456| `MAX_MCP_OUTPUT_TOKENS` | Jumlah maksimum token yang diizinkan dalam respons alat MCP. Claude Code menampilkan peringatan ketika output melebihi 10.000 token. Alat yang mendeklarasikan [`anthropic/maxResultSizeChars`](/docs/id/mcp#raise-the-limit-for-a-specific-tool) menggunakan batas karakter itu untuk konten teks sebagai gantinya, tetapi konten gambar dari alat itu masih tunduk pada variabel ini (default: 25000) |

450| `MAX_STRUCTURED_OUTPUT_RETRIES` | Jumlah kali Claude Code mencoba ulang ketika respons model gagal validasi terhadap [`--json-schema`](/docs/id/cli-reference#cli-flags) dalam mode non-interaktif dengan flag `-p`. Jumlah percobaan ulang yang sama berlaku ketika output terstruktur subagent [alur kerja](/docs/id/workflows) gagal validasi. Default ke 5 |457| `MAX_STRUCTURED_OUTPUT_RETRIES` | Jumlah upaya yang Claude Code izinkan ketika respons model gagal validasi terhadap [`--json-schema`](/docs/id/cli-reference#cli-flags) dalam mode non-interaktif dengan flag `-p`; setelah banyak upaya gagal tanpa output yang valid, jalankan gagal. Batas yang sama berlaku ketika output terstruktur subagent [alur kerja](/docs/id/workflows) gagal validasi. Default ke 5, upaya pertama ditambah empat percobaan ulang |

451| `MAX_THINKING_TOKENS` | Anggaran token tetap untuk [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code membatasi pada satu token di bawah token output maksimum permintaan dan tidak pernah di bawah 1.024; lihat `CLAUDE_CODE_MAX_OUTPUT_TOKENS` untuk cara batas itu ditetapkan. Ketika tidak diatur dan pemikiran diaktifkan, model dengan [penalaran adaptif](/docs/id/model-config#adjust-effort-level) memilih kedalaman pemikiran mereka sendiri, dan model lain menggunakan batas. Atur ke `0` untuk menonaktifkan pemikiran di API Anthropic, kecuali pada [model Fable](/docs/id/model-config#extended-thinking), yang tidak dapat memiliki pemikiran dimatikan; pada [penyedia pihak ketiga](/docs/id/third-party-integrations), `0` demikian pula menghilangkan parameter. Dengan pemikiran dimatikan di API Anthropic, Claude Code mengirim effort `high` sebagai gantinya dari tingkat yang lebih tinggi ke model yang diketahuinya [tidak menerima kombinasi itu](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5. Nilai bukan nol diabaikan pada model penalaran adaptif kecuali `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` diatur |458| `MAX_THINKING_TOKENS` | Anggaran token tetap untuk [pemikiran yang diperpanjang](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code membatasinya pada satu token di bawah token output maksimum permintaan dan tidak pernah di bawah 1.024. Lihat `CLAUDE_CODE_MAX_OUTPUT_TOKENS` untuk cara batas itu ditetapkan. Ketika tidak diatur dan pemikiran diaktifkan, model dengan [penalaran adaptif](/docs/id/model-config#adjust-effort-level) memilih kedalaman pemikiran mereka sendiri, dan model lain menggunakan batas. Atur ke `0` untuk menonaktifkan pemikiran di API Anthropic, kecuali di model Fable, yang tidak dapat memiliki pemikiran dinonaktifkan. Di [penyedia pihak ketiga](/docs/id/third-party-integrations), `0` menghilangkan parameter `thinking` sebagai gantinya. Dengan pemikiran dinonaktifkan di API Anthropic, Claude Code mengirim effort `high` daripada level yang lebih tinggi ke model yang diketahuinya [tidak menerima kombinasi itu](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5. Claude Code mengabaikan nilai nonzero di model penalaran adaptif, kecuali di model di mana `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` menonaktifkan penalaran adaptif |

452| `MCP_CLIENT_SECRET` | Rahasia klien OAuth untuk server MCP yang memerlukan [kredensial yang dikonfigurasi sebelumnya](/docs/id/mcp#use-pre-configured-oauth-credentials). Menghindari prompt interaktif saat menambahkan server dengan `--client-secret` |459| `MCP_CLIENT_SECRET` | Rahasia klien OAuth untuk server MCP yang memerlukan [kredensial yang dikonfigurasi sebelumnya](/docs/id/mcp#use-pre-configured-oauth-credentials). Menghindari prompt interaktif saat menambahkan server dengan `--client-secret` |

453| `MCP_CONNECTION_NONBLOCKING` | Mengontrol apakah startup menunggu server MCP terhubung sebelum kueri pertama. Startup MCP tidak memblokir secara default: server terhubung di latar belakang dan alat mereka menjadi tersedia saat mereka selesai. Atur ke `0` untuk membuat Claude Code menunggu server terhubung sebelum kueri pertama. Server yang dikonfigurasi dengan [`alwaysLoad: true`](/docs/id/mcp#exempt-a-server-from-deferral) masih membuat startup menunggu terlepas dari itu, kecuali ketika dilayani dari [cache penemuan](/docs/id/mcp#server-status-detail), karena alat mereka harus ada ketika prompt pertama dibangun. Dalam mode non-interaktif (`-p`), Claude Code juga menunggu server yang masih tertunda sebelum giliran pertama terlepas dari variabel ini, dengan tenggat waktu lebih lama ketika Anda meneruskan [`--mcp-config`](/docs/id/cli-reference#cli-flags) secara eksplisit; lihat entri flag itu untuk pengecualian server yang di-cache |460| `MCP_CONNECTION_NONBLOCKING` | Mengontrol apakah startup menunggu server MCP terhubung sebelum kueri pertama. Startup MCP non-blocking secara default: server terhubung di latar belakang dan alat mereka menjadi tersedia saat mereka selesai. Atur ke `0` untuk membuat Claude Code menunggu server terhubung sebelum kueri pertama. Server yang dikonfigurasi dengan [`alwaysLoad: true`](/docs/id/mcp#exempt-a-server-from-deferral) masih membuat startup menunggu terlepas dari itu, kecuali ketika dilayani dari [cache penemuan](/docs/id/mcp#server-status-detail), karena alat mereka harus ada ketika prompt pertama dibangun. Dalam mode non-interaktif (`-p`) tanpa `--input-format stream-json`, Claude Code juga menunggu server yang masih tertunda sebelum giliran pertama terlepas dari variabel ini. Ketika Anda meneruskan [`--mcp-config`](/docs/id/cli-reference#cli-flags) secara eksplisit, tunggu memiliki tenggat waktu yang lebih lama; lihat entri flag itu untuk pengecualian server yang di-cache |

454| `MCP_CONNECT_TIMEOUT_MS` | Berapa lama startup MCP yang memblokir menunggu, dalam milidetik, untuk batch koneksi sebelum mengambil snapshot daftar alat (default: 5000). Berlaku ketika `MCP_CONNECTION_NONBLOCKING=0` atau untuk server yang ditandai [`alwaysLoad: true`](/docs/id/mcp#exempt-a-server-from-deferral). Server yang masih tertunda pada tenggat waktu terus terhubung di latar belakang. Berbeda dari `MCP_TIMEOUT`, yang mengikat upaya koneksi server individual |461| `MCP_CONNECT_TIMEOUT_MS` | Berapa lama startup MCP yang memblokir menunggu, dalam milidetik, untuk batch koneksi sebelum mengambil snapshot daftar alat (default: 5000). Berlaku ketika `MCP_CONNECTION_NONBLOCKING=0` atau untuk server yang ditandai [`alwaysLoad: true`](/docs/id/mcp#exempt-a-server-from-deferral). Server yang masih tertunda pada tenggat waktu terus terhubung di latar belakang. Berbeda dari `MCP_TIMEOUT`, yang mengikat upaya koneksi server individual |

455| `MCP_DISCOVERY_CACHE` | Mengaktifkan atau menonaktifkan [cache penemuan MCP](/docs/id/mcp#server-status-detail). Dengan cache aktif, server HTTP atau SSE jarak jauh yang pernah Anda gunakan sebelumnya dapat menampilkan [status `cached`](/docs/id/mcp#server-status-detail), dan Claude Code menghubungkannya pada panggilan alat pertama daripada saat startup. Cache dimatikan secara default kecuali rollout bertahap telah mengaktifkannya untuk akun Anda. Atur ke `1` untuk mengaktifkannya, atau `0` untuk menjaganya tetap mati bahkan ketika rollout telah mengaktifkannya. Sebelum v2.1.238, cache aktif secara default. Status `cached` memerlukan Claude Code v2.1.221 atau lebih baru |462| `MCP_DISCOVERY_CACHE` | Mengaktifkan atau menonaktifkan [cache penemuan MCP](/docs/id/mcp#server-status-detail). Dengan cache aktif, server HTTP atau SSE jarak jauh yang pernah Anda gunakan sebelumnya dapat menampilkan [status `cached`](/docs/id/mcp#server-status-detail), dan Claude Code menghubungkannya pada panggilan alat pertama daripada saat startup. Cache dimatikan secara default kecuali rollout bertahap telah mengaktifkannya untuk akun Anda. Atur ke `1` untuk mengaktifkannya, atau `0` untuk menyimpannya dimatikan bahkan ketika rollout telah mengaktifkannya. Sebelum v2.1.238, cache aktif secara default. Status `cached` memerlukan Claude Code v2.1.221 atau lebih baru |

456| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Usia maksimum, dalam detik, dari entri [cache penemuan](/docs/id/mcp#server-status-detail) (default: 14400, atau 4 jam). Pada startup di mana entri lebih lama dari itu, Claude Code membuangnya dan menghubungkan server saat startup, seperti yang dilakukannya dengan cache dimatikan. Claude Code membatasi nilai pada 7 hari. Sebelum v2.1.238, default adalah 86400, atau 24 jam, dan Claude Code tidak membatasi nilai |463| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Usia maksimum, dalam detik, dari entri [cache penemuan](/docs/id/mcp#server-status-detail) (default: 14400, atau 4 jam). Pada startup di mana entri lebih lama dari itu, Claude Code membuangnya dan menghubungkan server saat startup, seperti yang dilakukannya dengan cache dimatikan. Claude Code membatasi nilai pada 7 hari. Sebelum v2.1.238, default adalah 86400, atau 24 jam, dan Claude Code tidak membatasi nilai |

457| `MCP_DISCOVERY_CACHE_STRIKES` | Pada startup di mana entri [cache penemuan](/docs/id/mcp#server-status-detail) lebih lama dari `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code menyegarkannya di latar belakang. Variabel ini menetapkan berapa banyak penyegaran berturut-turut yang dapat gagal sebelum Claude Code membuang entri dan menghubungkan server pada startup berikutnya sebagai gantinya (default: 1). Naikkan jika koneksi jaringan Anda sesekali putus, jadi satu penyegaran yang gagal tidak membuang entri. Memerlukan Claude Code v2.1.238 atau lebih baru |464| `MCP_DISCOVERY_CACHE_STRIKES` | Pada startup di mana entri [cache penemuan](/docs/id/mcp#server-status-detail) lebih lama dari `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code menyegarkannya di latar belakang. Variabel ini menetapkan berapa banyak penyegaran berturut-turut yang dapat gagal sebelum Claude Code membuang entri dan menghubungkan server pada startup berikutnya sebagai gantinya (default: 1). Naikkan jika koneksi jaringan Anda sesekali putus, jadi satu penyegaran yang gagal tidak membuang entri. Memerlukan Claude Code v2.1.238 atau lebih baru |

458| `MCP_DISCOVERY_CACHE_TTL_S` | Detik di mana Claude Code menggunakan entri [cache penemuan](/docs/id/mcp#server-status-detail) tanpa menyegarkannya (default: 900). Pada startup di mana entri lebih lama dari itu, Claude Code masih menggunakannya tetapi menyegarkannya di latar belakang. Setelah entri lebih lama dari `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code membuangnya sebagai gantinya. Claude Code membatasi nilai pada `MCP_DISCOVERY_CACHE_MAX_STALE_S`, yang default 4 jam. Sebelum v2.1.238, Claude Code tidak membatasi nilai |465| `MCP_DISCOVERY_CACHE_TTL_S` | Detik di mana Claude Code menggunakan entri [cache penemuan](/docs/id/mcp#server-status-detail) tanpa menyegarkannya (default: 900). Pada startup di mana entri lebih lama dari itu, Claude Code masih menggunakannya tetapi menyegarkannya di latar belakang. Setelah entri lebih lama dari `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code membuangnya sebagai gantinya. Claude Code membatasi nilai pada `MCP_DISCOVERY_CACHE_MAX_STALE_S`, yang default 4 jam. Sebelum v2.1.238, Claude Code tidak membatasi nilai |

459| `MCP_OAUTH_CALLBACK_PORT` | Port tetap untuk callback pengalihan OAuth, sebagai alternatif untuk `--callback-port` saat menambahkan server MCP dengan [kredensial yang dikonfigurasi sebelumnya](/docs/id/mcp#use-pre-configured-oauth-credentials) |466| `MCP_OAUTH_CALLBACK_PORT` | Port tetap untuk callback pengalihan OAuth, sebagai alternatif untuk `--callback-port` saat menambahkan server MCP dengan [kredensial yang dikonfigurasi sebelumnya](/docs/id/mcp#use-pre-configured-oauth-credentials) |

460| `MCP_PROTOCOL_NEGOTIATION` | Pada [runtime klien MCP v2](/docs/id/mcp#mcp-client-runtimes) saja, apakah Claude Code menyelidiki server untuk revisi protokol MCP 2026-07-28. Atur `auto` untuk menyelidiki server HTTP, konektor claude.ai, dan stdio; server yang tidak menjawab probe terhubung pada protokol sebelumnya sebagai gantinya, seperti yang selalu dilakukan server SSE dan WebSocket. Atur `legacy` untuk melewati probe untuk setiap server. Tanpa variabel, Claude Code menyelidiki server HTTP dan konektor claude.ai pada Claude Code v2.1.232 atau lebih baru, dengan pengecualian yang tercantum bagian [runtime klien MCP](/docs/id/mcp#mcp-client-runtimes). Nilai lain apa pun diabaikan dengan peringatan dalam log debug. Memerlukan Claude Code v2.1.221 atau lebih baru |467| `MCP_PROTOCOL_NEGOTIATION` | Di [runtime klien MCP v2](/docs/id/mcp#mcp-client-runtimes) saja, apakah Claude Code menyelidiki server untuk revisi protokol MCP 2026-07-28. Atur `auto` untuk menyelidiki server HTTP, konektor claude.ai, dan stdio; server yang tidak menjawab probe terhubung pada protokol yang lebih awal sebagai gantinya, seperti yang selalu dilakukan server SSE dan WebSocket. Atur `legacy` untuk melewati probe untuk setiap server. Tanpa variabel, Claude Code menyelidiki server HTTP, dan juga menyelidiki server konektor claude.ai di sesi di mana itu [mengambil flag fitur](#features-that-need-feature-flag-fetching). Nilai apa pun diabaikan dengan peringatan di log debug. Memerlukan Claude Code v2.1.221 atau lebih baru |

461| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Jumlah maksimum server MCP jarak jauh (HTTP/SSE) untuk terhubung secara paralel selama startup (default: 20) |468| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Jumlah maksimum server MCP jarak jauh (HTTP/SSE) untuk terhubung secara paralel selama startup (default: 20) |

462| `MCP_SDK_GENERATION` | Sematkan [runtime klien MCP](/docs/id/mcp#mcp-client-runtimes) mana yang proses ini terhubung ke server MCP dengan: `v1`, dibangun di MCP TypeScript SDK 1.x, atau `v2`, dibangun di [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Tanpa variabel, Claude Code menggunakan v2 pada Claude Code v2.1.232 atau lebih baru, kecuali di mana bagian itu mengatakan itu menggunakan v1. Pada Claude Code v2.1.221 atau lebih baru, runtime v2 memeriksa penerbit yang dikembalikan server OAuth MCP dalam respons otorisasinya dan gagal sign-in dengan kesalahan yang dimulai `Issuer mismatch in authorization response` ketika tidak cocok. Runtime v1 tidak menjalankan pemeriksaan ini. Jika Anda menetapkan nilai yang tidak dikenali, Claude Code mengabaikannya dan menulis peringatan ke log debug. Claude Code membaca nilai sekali per proses. Memerlukan Claude Code v2.1.218 atau lebih baru |469| `MCP_SDK_GENERATION` | Sematkan [runtime klien MCP](/docs/id/mcp#mcp-client-runtimes) mana yang proses ini terhubung ke server MCP dengan: `v1`, dibangun di MCP TypeScript SDK 1.x, atau `v2`, dibangun di [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Tanpa variabel, Claude Code menggunakan v2, mulai dengan versi yang tercantum di bagian itu. Di Claude Code v2.1.221 atau lebih baru, runtime v2 memeriksa penerbit yang dikembalikan server OAuth MCP dalam respons otorisasinya dan gagal sign-in dengan kesalahan yang dimulai dengan `Issuer mismatch in authorization response` ketika tidak cocok. Runtime v1 tidak menjalankan pemeriksaan ini. Jika Anda menetapkan nilai yang tidak dikenali, Claude Code mengabaikannya dan menulis peringatan ke log debug. Claude Code membaca nilai sekali per proses. Memerlukan Claude Code v2.1.218 atau lebih baru |

463| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Jumlah maksimum server MCP lokal (stdio) untuk terhubung secara paralel selama startup (default: 3) |470| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Jumlah maksimum server MCP lokal (stdio) untuk terhubung secara paralel selama startup (default: 3) |

464| `MCP_TIMEOUT` | Timeout dalam milidetik untuk startup server MCP (default: 30000, atau 30 detik) |471| `MCP_TIMEOUT` | Timeout dalam milidetik untuk startup server MCP (default: 30000, atau 30 detik) |

465| `MCP_TOOL_TIMEOUT` | Timeout dalam milidetik untuk eksekusi alat MCP (default: 100000000, sekitar 28 jam). Untuk server HTTP, SSE, atau konektor claude.ai, setiap permintaan juga timeout setelah 60 detik secara default; atur variabel ini, atau `timeout` per-server, di atas 60000 untuk menaikkan batas per-permintaan itu. Nilai lebih rendah masih mempersingkat timeout eksekusi alat keseluruhan tetapi meninggalkan batas per-permintaan pada 60 detik. Server stdio dan WebSocket tidak memiliki timer per-permintaan. Bidang `timeout` per-server dalam `.mcp.json` mengganti ini untuk server itu. Bidang `timeout` per-server setidaknya 1000 juga menetapkan jendela idle minimum untuk panggilan alat server itu, jadi `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` tidak pernah menghentikan mereka lebih awal; lantai ini memerlukan Claude Code v2.1.203 atau lebih baru. Untuk variabel env, nilai di bawah 1000 didasarkan ke satu detik; untuk bidang per-server, nilai di bawah 1000 diabaikan |472| `MCP_TOOL_TIMEOUT` | Timeout dalam milidetik untuk eksekusi alat MCP (default: 100000000, sekitar 28 jam). Untuk server HTTP, SSE, atau konektor claude.ai, setiap permintaan juga timeout setelah 60 detik secara default; atur variabel ini, atau `timeout` per-server, di atas 60000 untuk menaikkan batas per-permintaan itu. Nilai yang lebih rendah masih mempersingkat timeout eksekusi alat keseluruhan tetapi meninggalkan batas per-permintaan pada 60 detik. Server stdio dan WebSocket tidak memiliki timer per-permintaan. Bidang `timeout` per-server di `.mcp.json` mengganti ini untuk server itu. Bidang `timeout` per-server setidaknya 1000 juga menetapkan jendela idle minimum untuk panggilan alat server itu, jadi `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` tidak pernah menghentikan mereka lebih awal; lantai ini memerlukan Claude Code v2.1.203 atau lebih baru. Untuk variabel env, nilai di bawah 1000 didasarkan ke satu detik; untuk bidang per-server, nilai di bawah 1000 diabaikan |

466| `NO_PROXY` | Daftar domain dan IP yang permintaan akan dikeluarkan secara langsung, melewati proxy |473| `NO_PROXY` | Daftar domain dan IP yang permintaannya akan dikeluarkan secara langsung, melewati proxy |

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

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

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

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

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

472| `OTEL_LOG_USER_PROMPTS` | Atur ke `1` untuk menyertakan teks prompt pengguna dalam jejak dan log OpenTelemetry. Dinonaktifkan secara default (prompt diredaksi). Lihat [Monitoring](/docs/id/monitoring-usage) |479| `OTEL_LOG_USER_PROMPTS` | Atur ke `1` untuk menyertakan teks prompt pengguna dalam jejak dan log OpenTelemetry. Dinonaktifkan secara default (prompt diredaksi). Lihat [Monitoring](/docs/id/monitoring-usage) |

473| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Atur ke `false` untuk mengecualikan UUID akun dari atribut metrik (default: disertakan). Lihat [Monitoring](/docs/id/monitoring-usage) |480| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Atur ke `false` untuk mengecualikan UUID akun dari atribut metrik (default: disertakan). Lihat [Monitoring](/docs/id/monitoring-usage) |

474| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Atur ke `true` untuk menyertakan titik masuk sesi dalam atribut metrik (default: dikecualikan). Ditambahkan di v2.1.152. Lihat [Monitoring](/docs/id/monitoring-usage) |481| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Atur ke `true` untuk menyertakan titik masuk sesi dalam atribut metrik (default: dikecualikan). Ditambahkan di v2.1.152. Lihat [Monitoring](/docs/id/monitoring-usage) |

482| `OTEL_METRICS_INCLUDE_REPOSITORY` | Atur ke `true` untuk menandai metrik dan acara OpenTelemetry dengan atribut `vcs.*` yang mengidentifikasi repositori sesi (default: dikecualikan). Memerlukan Claude Code v2.1.269 atau lebih baru. Lihat [Atribut repositori](/docs/id/monitoring-usage#repository-attributes) |

475| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Mulai dari v2.1.161, Claude Code melampirkan kunci `OTEL_RESOURCE_ATTRIBUTES` ke label titik data metrik. Atur ke `false` untuk mengecualikannya (default: disertakan). Lihat [Monitoring](/docs/id/monitoring-usage#multi-team-organization-support) |483| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Mulai dari v2.1.161, Claude Code melampirkan kunci `OTEL_RESOURCE_ATTRIBUTES` ke label titik data metrik. Atur ke `false` untuk mengecualikannya (default: disertakan). Lihat [Monitoring](/docs/id/monitoring-usage#multi-team-organization-support) |

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

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


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

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

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

496| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Ganti wilayah untuk Claude Fable 5.1 saat menggunakan Google Cloud's Agent Platform. Ditambahkan di v2.1.255 |504| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Ganti wilayah untuk Claude Fable 5.1 saat menggunakan Google Cloud's Agent Platform. Ditambahkan di v2.1.257 |

497| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Ganti wilayah untuk Claude Haiku 4.5 saat menggunakan Google Cloud's Agent Platform |505| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Ganti wilayah untuk Claude Haiku 4.5 saat menggunakan Google Cloud's Agent Platform |

498 506 

499Variabel pengekspor OpenTelemetry standar (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES`, dan varian spesifik sinyal) juga didukung. Lihat [Monitoring](/docs/id/monitoring-usage) untuk detail konfigurasi.507Variabel pengekspor OpenTelemetry standar (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES`, dan varian spesifik sinyal) juga didukung. Lihat [Monitoring](/docs/id/monitoring-usage) untuk detail konfigurasi.


517* [Mengirim pesan sesi di luar mesin ini](/docs/id/cross-session-messaging#message-sessions-on-other-machines); pesan antar sesi di mesin ini berfungsi dengan pengambilan dimatikan525* [Mengirim pesan sesi di luar mesin ini](/docs/id/cross-session-messaging#message-sessions-on-other-machines); pesan antar sesi di mesin ini berfungsi dengan pengambilan dimatikan

518* Menjalankan [`claude import` atau perintah `/import`](/docs/id/cli-reference#cli-commands)526* Menjalankan [`claude import` atau perintah `/import`](/docs/id/cli-reference#cli-commands)

519* Menjalankan [`/skill-doctor`](/docs/id/skills#find-unused-skills) atau membuka laporannya di tab **Stats** `/plugin`527* Menjalankan [`/skill-doctor`](/docs/id/skills#find-unused-skills) atau membuka laporannya di tab **Stats** `/plugin`

528* Mensinkronkan [skills](/docs/id/skills#where-synced-skills-load) dan [plugins](/docs/id/plugins-reference#synced-plugins) yang diaktifkan untuk akun claude.ai Anda ke dalam sesi terminal Anda

520* Menggunakan [alat penasihat](/docs/id/advisor#requirements)529* Menggunakan [alat penasihat](/docs/id/advisor#requirements)

521* Membaca atau membalas [komentar pada artefak](/docs/id/artifacts#collect-comments-on-an-artifact)530* Membaca atau membalas [komentar pada artefak](/docs/id/artifacts#collect-comments-on-an-artifact)

522* Mendapatkan [runtime klien MCP v2](/docs/id/mcp#mcp-client-runtimes) dan probe protokolnya tanpa menetapkan `MCP_SDK_GENERATION` dan `MCP_PROTOCOL_NEGOTIATION`; Claude Code menggunakan runtime v1 kecuali Anda menetapkan `MCP_SDK_GENERATION=v2`, dan melewati probe kecuali Anda menetapkan `MCP_PROTOCOL_NEGOTIATION=auto`531* Memiliki Claude Code menyelidiki server konektor claude.ai untuk [revisi protokol MCP 2026-07-28](/docs/id/mcp#mcp-client-runtimes) kecuali Anda menetapkan `MCP_PROTOCOL_NEGOTIATION=auto`

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

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

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

fast-mode.md +16 −3

Details

32* Ketik `/fast` dan tekan Tab untuk mengaktifkan atau menonaktifkan32* Ketik `/fast` dan tekan Tab untuk mengaktifkan atau menonaktifkan

33* Atur `"fastMode": true` di [file pengaturan pengguna Anda](/docs/id/settings)33* Atur `"fastMode": true` di [file pengaturan pengguna Anda](/docs/id/settings)

34 34 

35Secara default, mode cepat yang Anda aktifkan dalam sesi interaktif bertahan di seluruh sesi. Dalam [mode non-interaktif](/docs/id/headless), dengan flag `-p`, `/fast` hanya berfungsi dalam sesi yang diluncurkan dengan mode cepat dalam nilai [`--settings`](/docs/id/cli-reference#cli-flags) nya, misalnya `claude -p --settings '{"fastMode": true}'`; toggle kemudian berlaku hanya untuk sesi itu dan tidak disimpan sebagai default Anda, dan dalam sesi non-interaktif lainnya perintah melaporkan bahwa mode cepat tidak tersedia. Anda dapat mengonfigurasi mode cepat untuk disetel ulang setiap sesi. Lihat [require per-session opt-in](#require-per-session-opt-in) untuk detail.35Secara default, mode cepat yang Anda aktifkan dalam sesi interaktif bertahan di seluruh sesi. Anda dapat mengonfigurasi mode cepat untuk disetel ulang setiap sesi. Lihat [require per-session opt-in](#require-per-session-opt-in) untuk detail.

36 

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

36 38 

37Anda dapat menjalankan `/fast` saat Claude sedang bekerja, dan Claude Code mengalihkan mode cepat tanpa menunggu giliran berakhir. Claude Code menyelesaikan giliran yang sedang berjalan pada kecepatan aslinya, sehingga perubahan kecepatan berlaku mulai dari giliran Anda berikutnya. Jika model Anda saat ini tidak mendukung mode cepat, mengaktifkannya juga beralih ke model Anda, dan Claude Code menggunakan model baru dari permintaan berikutnya dalam giliran itu.39Anda dapat menjalankan `/fast` saat Claude sedang bekerja, dan Claude Code mengalihkan mode cepat tanpa menunggu giliran berakhir. Claude Code menyelesaikan giliran yang sedang berjalan pada kecepatan aslinya, sehingga perubahan kecepatan berlaku mulai dari giliran Anda berikutnya. Jika model Anda saat ini tidak mendukung mode cepat, mengaktifkannya juga beralih ke model Anda, dan Claude Code menggunakan model baru dari permintaan berikutnya dalam giliran itu.

38 40 


62 64 

63Claude Code mengirim ulang status mode cepat sesi ke perangkat yang terhubung melalui Remote Control setelah peralihan model, koneksi ulang, atau pemeriksaan [availability](#use-fast-mode-behind-proxies-and-llm-gateways) yang gagal.65Claude Code mengirim ulang status mode cepat sesi ke perangkat yang terhubung melalui Remote Control setelah peralihan model, koneksi ulang, atau pemeriksaan [availability](#use-fast-mode-behind-proxies-and-llm-gateways) yang gagal.

64 66 

67<h3 id="use-fast-mode-in-cloud-sessions">

68 Gunakan mode cepat dalam sesi cloud

69</h3>

70 

71Mode cepat berfungsi dalam [sesi cloud](/docs/id/claude-code-on-the-web) ketika tersedia di akun Anda, apakah sesi berjalan pada infrastruktur yang dikelola Anthropic atau [runner yang di-host sendiri](/docs/id/self-hosted-environments). Memerlukan Claude Code v2.1.271 atau lebih baru di lingkungan sesi.

72 

73Ketik `/fast on` dalam sesi untuk mengaktifkan mode cepat. Itu tetap aktif hanya untuk sesi itu dan tidak disimpan sebagai default Anda. [Persyaratan](#requirements) juga berlaku dalam sesi cloud.

74 

65<h2 id="understand-the-cost-tradeoff">75<h2 id="understand-the-cost-tradeoff">

66 Pahami pertukaran biaya76 Pahami pertukaran biaya

67</h2>77</h2>


135* **Aktivasi Owner untuk Teams dan Enterprise**: mode cepat dinonaktifkan secara default untuk organisasi Teams dan Enterprise. Seorang Owner harus secara eksplisit [mengaktifkan mode cepat](#enable-fast-mode-for-your-organization) sebelum pengguna dapat mengaksesnya.145* **Aktivasi Owner untuk Teams dan Enterprise**: mode cepat dinonaktifkan secara default untuk organisasi Teams dan Enterprise. Seorang Owner harus secara eksplisit [mengaktifkan mode cepat](#enable-fast-mode-for-your-organization) sebelum pengguna dapat mengaksesnya.

136 146 

137<Note>147<Note>

138 Jika mode cepat belum diaktifkan untuk organisasi Anda, perintah `/fast` akan menampilkan "Fast mode has been disabled by your organization." Jika daftar allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) organisasi Anda mengecualikan model Opus mode cepat, `/fast` ditolak dengan "is not in your organization's allowed models". Pengecualiannya adalah sesi yang sudah berjalan pada model Opus yang diizinkan yang mendukung mode cepat: `/fast` kemudian mengaktifkan mode cepat pada model Anda saat ini alih-alih beralih model.148 Dua pengaturan organisasi dapat memblokir pengaktifan mode cepat dengan `/fast`:

149 

150 * **Mode cepat tidak diaktifkan**: jika mode cepat belum diaktifkan untuk organisasi Anda, mengaktifkan mode cepat dengan `/fast` menampilkan "Fast mode has been disabled by your organization."

151 * **Model mode cepat tidak diizinkan**: jika daftar allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) organisasi Anda mengecualikan model Opus mode cepat, mengaktifkannya ditolak dengan "is not in your organization's allowed models". Dalam sesi yang sudah berjalan pada model Opus yang diizinkan yang mendukung mode cepat, `/fast` malah mengaktifkan mode cepat pada model Anda saat ini tanpa beralih model.

139</Note>152</Note>

140 153 

141<h3 id="enable-fast-mode-for-your-organization">154<h3 id="enable-fast-mode-for-your-organization">


173 186 

174Dalam kedua kasus, atur `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1` untuk mengembalikan mode cepat. `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` tidak berlaku untuk kedua kasus, karena hanya melewati pemeriksaan yang gagal dan keduanya menghasilkan respons yang dinonaktifkan. Allowlisting egress langsung tidak membantu kasus token pembawa, yang tidak pernah mengirim permintaan.187Dalam kedua kasus, atur `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1` untuk mengembalikan mode cepat. `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` tidak berlaku untuk kedua kasus, karena hanya melewati pemeriksaan yang gagal dan keduanya menghasilkan respons yang dinonaktifkan. Allowlisting egress langsung tidak membantu kasus token pembawa, yang tidak pernah mengirim permintaan.

175 188 

176Variabel hanya mempengaruhi pemeriksaan sisi klien. Ketika organisasi Anda memiliki mode cepat dinonaktifkan, API menolak permintaan mode cepat terlepas dari apakah variabel diatur atau tidak.189Variabel hanya mempengaruhi pemeriksaan sisi klien. Ketika organisasi Anda memiliki mode cepat dinonaktifkan, API menolak permintaan mode cepat terlepas dari apakah variabel diatur atau tidak. Penolakan dari API tetap berlaku bahkan dengan variabel lewati yang diatur. Claude Code mencoba kembali permintaan yang ditolak dengan kecepatan standar, mematikan mode cepat, dan `/fast` melaporkan bahwa organisasi Anda telah menonaktifkan mode cepat.

177 190 

178Menetapkan `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` juga menekan pemeriksaan ketersediaan. Tanpa pemeriksaan yang berhasil di-cache sebelumnya, `/fast` melaporkan "Fast mode is currently unavailable"; kedua variabel lewati mengembalikan mode cepat dalam konfigurasi itu juga.191Menetapkan `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` juga menekan pemeriksaan ketersediaan. Tanpa pemeriksaan yang berhasil di-cache sebelumnya, `/fast` melaporkan "Fast mode is currently unavailable"; kedua variabel lewati mengembalikan mode cepat dalam konfigurasi itu juga.

179 192 

Details

36* [Checkpoints](/docs/id/checkpointing), [sandboxing](/docs/id/sandboxing), dan [Workflows](/docs/id/workflows)36* [Checkpoints](/docs/id/checkpointing), [sandboxing](/docs/id/sandboxing), dan [Workflows](/docs/id/workflows)

37* Metrik [OpenTelemetry](/docs/id/monitoring-usage) dan [file pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms)37* Metrik [OpenTelemetry](/docs/id/monitoring-usage) dan [file pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms)

38 38 

39Tiga di antaranya memiliki perbedaan khusus penyedia:39Ini memiliki perbedaan khusus penyedia:

40 40 

41* **Memori CLAUDE.md**: File `CLAUDE.md` dimuat di setiap penyedia. Membaca [file `AGENTS.md`](/docs/id/memory#agents-md) sebagai instruksi proyek juga memerlukan sesi yang [mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching)

41* **Server MCP**: [konektor dari claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) dimuat hanya ketika langganan claude.ai Anda adalah metode autentikasi aktif. [Pencarian alat](/docs/id/mcp#configure-tool-search) dimatikan secara default ketika `ANTHROPIC_BASE_URL` menunjuk ke host non-pihak pertama, dan tidak didukung pada model Platform Agent Google Cloud yang lebih awal dari generasi Claude 4.5 atau pada [deployment Microsoft Foundry yang dihosting di Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)42* **Server MCP**: [konektor dari claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) dimuat hanya ketika langganan claude.ai Anda adalah metode autentikasi aktif. [Pencarian alat](/docs/id/mcp#configure-tool-search) dimatikan secara default ketika `ANTHROPIC_BASE_URL` menunjuk ke host non-pihak pertama, dan tidak didukung pada model Platform Agent Google Cloud yang lebih awal dari generasi Claude 4.5 atau pada [deployment Microsoft Foundry yang dihosting di Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)

42* **Subagents**: [subagent Explore](/docs/id/sub-agents#built-in-subagents) bawaan membatasi model yang diwariskan pada Opus di Claude API, dan mewarisi model percakapan utama secara langsung di penyedia lain mana pun, termasuk Claude Platform di AWS43* **Subagents**: [subagent Explore](/docs/id/sub-agents#built-in-subagents) bawaan membatasi model yang diwariskan pada Opus di Claude API, dan mewarisi model percakapan utama secara langsung di penyedia lain mana pun, termasuk Claude Platform di AWS

43* **[Commands](/docs/id/commands#all-commands)**:44* **[Commands](/docs/id/commands#all-commands)**:


226 227 

227<Note>228<Note>

228 Jika Anda melakukan autentikasi melalui [gateway LLM](/docs/id/llm-gateway), ketersediaan fitur cocok dengan penyedia yang mendasarinya yang gateway teruskan, kecuali untuk fitur yang Claude Code sendiri matikan. Kapan pun `ANTHROPIC_BASE_URL` menunjuk ke host selain `api.anthropic.com`, Claude Code mematikan fitur seperti [Remote Control](/docs/id/remote-control#requirements) dan [pengaturan terkelola server](/docs/id/server-managed-settings#platform-availability), apa pun yang gateway teruskan. Beberapa fitur khusus Anthropic seperti [Advisor](/docs/id/advisor) hanya bekerja jika gateway meneruskan permintaan utuh ke API Anthropic.229 Jika Anda melakukan autentikasi melalui [gateway LLM](/docs/id/llm-gateway), ketersediaan fitur cocok dengan penyedia yang mendasarinya yang gateway teruskan, kecuali untuk fitur yang Claude Code sendiri matikan. Kapan pun `ANTHROPIC_BASE_URL` menunjuk ke host selain `api.anthropic.com`, Claude Code mematikan fitur seperti [Remote Control](/docs/id/remote-control#requirements) dan [pengaturan terkelola server](/docs/id/server-managed-settings#platform-availability), apa pun yang gateway teruskan. Beberapa fitur khusus Anthropic seperti [Advisor](/docs/id/advisor) hanya bekerja jika gateway meneruskan permintaan utuh ke API Anthropic.

230 

231 Untuk cara permintaan yang Claude Code kirim berbeda antara gateway format Amazon Bedrock atau Agent Platform, gateway `ANTHROPIC_BASE_URL`, dan masuk gateway aplikasi Claude, lihat [perilaku klien menurut metode koneksi](/docs/id/llm-gateway-protocol#how-the-connection-method-changes-client-behavior).

229</Note>232</Note>

230 233 

231<h3 id="summary-by-provider">234<h3 id="summary-by-provider">


303 306 

304| Fitur | Pro | Max | Team | Enterprise |307| Fitur | Pro | Max | Team | Enterprise |

305| :-------------------------------------------------------------------------- | :-- | :-- | :------------ | :-------------------------------- |308| :-------------------------------------------------------------------------- | :-- | :-- | :------------ | :-------------------------------- |

306| [Claude Code di web](/docs/id/claude-code-on-the-web) | ✓ | ✓ | ✓ | ✓ <sup><a href="#fn6">6</a></sup> |309| [Cloud sessions](/docs/id/claude-code-on-the-web) | ✓ | ✓ | ✓ | ✓ <sup><a href="#fn6">6</a></sup> |

307| [Routines](/docs/id/routines) | ✓ | ✓ | ✓ | ✓ |310| [Routines](/docs/id/routines) | ✓ | ✓ | ✓ | ✓ |

308| [Remote Control](/docs/id/remote-control) | ✓ | ✓ | Admin-enabled | Admin-enabled |311| [Remote Control](/docs/id/remote-control) | ✓ | ✓ | Admin-enabled | Admin-enabled |

309| [Channels](/docs/id/channels) | ✓ | ✓ | Admin-enabled | Admin-enabled |312| [Channels](/docs/id/channels) | ✓ | ✓ | Admin-enabled | Admin-enabled |


319| [Compliance API](https://platform.claude.com/docs/en/api/compliance) | ✗ | ✗ | ✗ | ✓ |322| [Compliance API](https://platform.claude.com/docs/en/api/compliance) | ✗ | ✗ | ✗ | ✓ |

320| [Zero Data Retention](/docs/id/zero-data-retention) | ✗ | ✗ | ✗ | ✓ <sup><a href="#fn7">7</a></sup> |323| [Zero Data Retention](/docs/id/zero-data-retention) | ✗ | ✗ | ✗ | ✓ <sup><a href="#fn7">7</a></sup> |

321 324 

322<span id="fn6" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>6</sup> Di Enterprise, memerlukan kursi premium atau kursi Chat + Claude Code. Lihat [Claude Code di web](/docs/id/claude-code-on-the-web).<br />325<span id="fn6" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>6</sup> Di Enterprise, memerlukan kursi premium atau kursi Chat + Claude Code. Lihat [Use Claude Code in the cloud](/docs/id/claude-code-on-the-web).<br />

323<span id="fn7" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>7</sup> Tidak termasuk dalam paket Enterprise standar. Memerlukan aktivasi terpisah oleh Anthropic untuk akun yang memenuhi syarat. Lihat [Zero Data Retention](/docs/id/zero-data-retention).326<span id="fn7" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>7</sup> Tidak termasuk dalam paket Enterprise standar. Memerlukan aktivasi terpisah oleh Anthropic untuk akun yang memenuhi syarat. Lihat [Zero Data Retention](/docs/id/zero-data-retention).

324 327 

325Untuk harga dan perbandingan paket lengkap, lihat [Paket Team](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) dan [Paket Enterprise](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan).328Untuk harga dan perbandingan paket lengkap, lihat [Paket Team](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) dan [Paket Enterprise](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan).

Details

294 294 

295 * Prompt sistem agen, bukan prompt sistem Claude Code295 * Prompt sistem agen, bukan prompt sistem Claude Code

296 * Konten penuh skills yang tercantum di field `skills:` agen296 * Konten penuh skills yang tercantum di field `skills:` agen

297 * CLAUDE.md dan status git, kecuali agen Explore dan Plan bawaan [menghilangkan keduanya](/docs/id/sub-agents#what-loads-at-startup)297 * CLAUDE.md dan status git, kecuali agen Explore dan Plan bawaan [menghilangkan keduanya](/docs/id/sub-agents#what-loads-at-startup), dan agen yang definisinya menetapkan [`omitClaudeMd`](/docs/id/sub-agents#supported-frontmatter-fields) melewati file CLAUDE.md pengguna, proyek, dan lokal

298 * Apa pun konteks yang agen utama lewatkan dalam prompt298 * Apa pun konteks yang agen utama lewatkan dalam prompt

299 299 

300 Untuk [fork](/docs/id/sub-agents#fork-the-current-conversation), Claude Code memuat percakapan induk sejauh ini, prompt sistem, dan alat sebagai gantinya.300 Untuk [fork](/docs/id/sub-agents#fork-the-current-conversation), Claude Code memuat percakapan induk sejauh ini, prompt sistem, dan alat sebagai gantinya.

fullscreen.md +8 −7

Details

102* **Klik saran dalam daftar perintah `/` atau file `@`** untuk menerimanya. Mengarahkan kursor menyoroti baris di bawah kursor Anda.102* **Klik saran dalam daftar perintah `/` atau file `@`** untuk menerimanya. Mengarahkan kursor menyoroti baris di bawah kursor Anda.

103* **Klik opsi dalam menu pilih** untuk memilihnya. Ini mencakup prompt izin, `/model`, `/config`, dan dialog lainnya yang menampilkan daftar opsi. Mengarahkan kursor menunjukkan pointer pada baris di bawah kursor Anda. Memerlukan Claude Code v2.1.187 atau lebih baru.103* **Klik opsi dalam menu pilih** untuk memilihnya. Ini mencakup prompt izin, `/model`, `/config`, dan dialog lainnya yang menampilkan daftar opsi. Mengarahkan kursor menunjukkan pointer pada baris di bawah kursor Anda. Memerlukan Claude Code v2.1.187 atau lebih baru.

104* **Klik opsi dalam menu multi-pilih** untuk mengalihnya, dan klik tombol kirim untuk mengonfirmasi pilihan Anda. Mengklik baris teks bebas, seperti baris `Other` dalam pertanyaan pilihan ganda, memfokuskan bidang inputnya sehingga Anda dapat mengetik jawaban. Memerlukan Claude Code v2.1.208 atau lebih baru.104* **Klik opsi dalam menu multi-pilih** untuk mengalihnya, dan klik tombol kirim untuk mengonfirmasi pilihan Anda. Mengklik baris teks bebas, seperti baris `Other` dalam pertanyaan pilihan ganda, memfokuskan bidang inputnya sehingga Anda dapat mengetik jawaban. Memerlukan Claude Code v2.1.208 atau lebih baru.

105* **Klik hasil tool yang diciutkan** untuk memerluasnya dan melihat output lengkapnya. Klik lagi untuk menciutkan. Panggilan tool dan hasilnya berkembang bersama. Hanya pesan yang memiliki lebih banyak untuk ditampilkan yang dapat diklik.105* **Klik nilai pengaturan di panel `/config`** untuk mengubahnya, dan gulir daftar pengaturan dengan roda mouse. Memerlukan Claude Code v2.1.271 atau lebih baru.

106 * Mengklik juga memperluas output perintah shell `!`, baik hasil lama yang terpotong maupun baris progres langsung saat perintah berjalan. Memerlukan Claude Code v2.1.257 atau lebih baru.106* **Klik hasil tool yang diciutkan** untuk memerluasnya dan melihat output lengkap. Klik lagi untuk menciutkan. Panggilan tool dan hasilnya berkembang bersama. Hanya pesan yang memiliki lebih banyak untuk ditampilkan yang dapat diklik.

107 * Mengklik juga memerluaskan output dari perintah shell `!`, baik hasil yang dipotong lebih lama atau baris kemajuan langsung saat perintah berjalan. Memerlukan Claude Code v2.1.257 atau lebih baru.

107* **Tahan `Cmd` di macOS, atau `Ctrl` di Linux dan Windows, dan klik URL atau jalur file** untuk membukanya. URL `http://` dan `https://` biasa terbuka di browser Anda, dan jalur file dalam output tool, seperti yang dicetak setelah Edit atau Write, terbuka di aplikasi default Anda. Klik biasa tanpa pengubah tidak membuka tautan, sesuai dengan perilaku terminal asli.108* **Tahan `Cmd` di macOS, atau `Ctrl` di Linux dan Windows, dan klik URL atau jalur file** untuk membukanya. URL `http://` dan `https://` biasa terbuka di browser Anda, dan jalur file dalam output tool, seperti yang dicetak setelah Edit atau Write, terbuka di aplikasi default Anda. Klik biasa tanpa pengubah tidak membuka tautan, sesuai dengan perilaku terminal asli.

108 * Claude Code merender jalur jaringan (UNC), seperti `\\server\share\file.ts`, sebagai teks biasa tanpa tautan, karena membuka jalur jaringan dapat mengirimkan kredensial Windows Anda ke host yang dinamainya.109 * Claude Code merender jalur jaringan (UNC), seperti `\\server\share\file.ts`, sebagai teks biasa tanpa tautan, karena membuka jalur jaringan dapat mengirimkan kredensial Windows Anda ke host yang dinamainya.

109 * Beberapa terminal macOS meneruskan `Cmd`+klik ke aplikasi yang berjalan alih-alih membuka tautan sendiri, dan protokol mouse terminal tidak memiliki cara untuk mengkodekan kunci `Cmd`, jadi Claude Code menerima klik biasa. Di Ghostty, dan di Warp di macOS, Claude Code mendeteksi ini dan membiarkan klik biasa pada tautan membukanya, dan menahan `Cmd` masih berfungsi.110 * Beberapa terminal macOS meneruskan `Cmd`+klik ke aplikasi yang berjalan alih-alih membuka tautan sendiri, dan protokol mouse terminal tidak memiliki cara untuk mengkodekan kunci `Cmd`, jadi Claude Code menerima klik biasa. Di Ghostty, dan di Warp di macOS, Claude Code mendeteksi ini dan membiarkan klik biasa pada tautan membukanya, dan menahan `Cmd` masih berfungsi.

110 * Di terminal terintegrasi VS Code dan terminal berbasis xterm.js serupa, Claude Code menyerahkan kepada penanganan tautan terminal sendiri, yang menggunakan gestur yang sama.111 * Di terminal terintegrasi VS Code dan terminal berbasis xterm.js serupa, Claude Code menyerahkan kepada penanganan tautan terminal sendiri, yang menggunakan gestur yang sama.

111* **Klik dan seret** untuk memilih teks di mana saja dalam percakapan. Klik dua kali memilih kata, sesuai dengan batas kata iTerm2 sehingga jalur file dipilih sebagai satu unit. Klik dua kali pada URL memilih seluruh URL, termasuk skemanya. Klik tiga kali memilih baris.112* **Klik dan seret** untuk memilih teks di mana saja dalam percakapan. Klik dua kali memilih kata, sesuai dengan batas kata iTerm2 sehingga jalur file memilih sebagai satu unit. Klik dua kali pada URL memilih seluruh URL, termasuk skema. Klik tiga kali memilih baris.

112* **Gulir dengan roda mouse** untuk bergerak melalui percakapan.113* **Gulir dengan roda mouse** untuk bergerak melalui percakapan.

113 114 

114Teks yang dipilih disalin ke clipboard Anda secara otomatis saat pelepasan mouse. Untuk mematikannya, alihkan Copy on select di `/config`.115Teks yang dipilih disalin ke clipboard Anda secara otomatis saat pelepasan mouse. Untuk mematikannya, alihkan Copy on select di `/config`.

115 116 

116Dengan Copy on select dimatikan, tekan `Ctrl+Shift+c` untuk menyalin secara manual. Di terminal yang mendukung protokol keyboard kitty, seperti kitty, WezTerm, Ghostty, dan iTerm2, `Cmd+c` juga berfungsi. Jika Anda memiliki pilihan aktif, `Ctrl+c` menyalin alih-alih membatalkan.117Dengan Copy on select dimatikan, tekan `Ctrl+Shift+c` untuk menyalin secara manual. Di terminal yang mendukung protokol keyboard kitty, seperti kitty, WezTerm, Ghostty, dan iTerm2, `Cmd+c` juga berfungsi. Jika Anda memiliki pilihan aktif, `Ctrl+c` menyalin alih-alih membatalkan.

117 118 

118Dengan pilihan aktif, tahan `Shift` dan tekan tombol panah untuk memperluasnya dari keyboard. `Shift+↑` dan `Shift+↓` menggulir viewport saat pilihan mencapai tepi atas atau bawah. `Shift+Home` dan `Shift+End` memperluas ke awal atau akhir baris saat ini.119Dengan pilihan aktif, tahan `Shift` dan tekan tombol panah untuk memperpanjangnya dari keyboard. `Shift+↑` dan `Shift+↓` menggulir viewport saat pilihan mencapai tepi atas atau bawah. `Shift+Home` dan `Shift+End` memperpanjang ke awal atau akhir baris saat ini.

119 120 

120Dalam tampilan prompt normal, apa yang terjadi pada pilihan aktif tergantung pada kunci yang Anda tekan:121Dalam tampilan prompt normal, apa yang terjadi pada pilihan aktif tergantung pada kunci yang Anda tekan:

121 122 

122* **`Esc`**: Claude Code melakukan tindakan biasa kunci, seperti mengganggu respons yang sedang berjalan atau menutup dialog terbuka, dan pilihan tetap disorot.123* **`Esc`**: Claude Code melakukan tindakan biasa kunci, seperti mengganggu respons yang berjalan atau menutup dialog terbuka, dan pilihan tetap disorot.

123* **`PgUp`, `PgDn`, `Ctrl+Home`, `Ctrl+End`, atau `Shift`, `Alt` atau `Option`, atau `Cmd`, `Win`, atau `Super` dengan panah, `Home`, atau kunci `End`**: pilihan tetap.124* **`PgUp`, `PgDn`, `Ctrl+Home`, `Ctrl+End`, atau `Shift`, `Alt` atau `Option`, atau `Cmd`, `Win`, atau `Super` dengan panah, `Home`, atau kunci `End`**: pilihan tetap.

124* **Kunci apa pun, termasuk tombol panah biasa, `Enter`, dan karakter yang diketik**: Claude Code menghapus pilihan.125* **Kunci lainnya, termasuk tombol panah biasa, `Enter`, dan karakter yang diketik**: Claude Code menghapus pilihan.

125* **Kunci yang terikat ke [`selection:clear`](/docs/id/keybindings#scroll-actions)**: Claude Code menghapus pilihan, bahkan ketika kuncinya adalah `Esc` atau kunci lain yang sebaliknya menyimpannya. Tindakan ini tidak memiliki pengikatan default.126* **Kunci yang terikat ke [`selection:clear`](/docs/id/keybindings#scroll-actions)**: Claude Code menghapus pilihan, bahkan ketika kunci adalah `Esc` atau kunci lain yang sebaliknya menyimpannya. Tindakan tidak memiliki pengikatan default.

126 127 

127Dalam [mode transkrip](#search-and-review-the-conversation), kunci navigasi dan pencarian yang tercantum di sana juga menyimpan pilihan.128Dalam [mode transkrip](#search-and-review-the-conversation), kunci navigasi dan pencarian yang tercantum di sana juga menyimpan pilihan.

128 129 

Details

11Beberapa produk berbagi nama Claude Code. Halaman ini mencakup integrasi alur kerja `claude-code-action`, yang Anda konfigurasi dengan file alur kerja di repositori Anda. Untuk produk terkait, lihat:11Beberapa produk berbagi nama Claude Code. Halaman ini mencakup integrasi alur kerja `claude-code-action`, yang Anda konfigurasi dengan file alur kerja di repositori Anda. Untuk produk terkait, lihat:

12 12 

13* [Code Review](/docs/id/code-review): ulasan otomatis pada setiap pull request, tanpa menulis alur kerja13* [Code Review](/docs/id/code-review): ulasan otomatis pada setiap pull request, tanpa menulis alur kerja

14* [Claude Code di web](/docs/id/claude-code-on-the-web): sesi Claude Code dari browser atau ponsel Anda14* [Claude Code di cloud](/docs/id/claude-code-on-the-web): sesi Claude Code yang berjalan pada infrastruktur cloud alih-alih mesin Anda

15* [Claude Agent SDK](/docs/id/agent-sdk/overview): otomasi kustom di luar GitHub Actions. Claude Code GitHub Action dibangun di atas SDK15* [Claude Agent SDK](/docs/id/agent-sdk/overview): otomasi kustom di luar GitHub Actions. Claude Code GitHub Action dibangun di atas SDK

16* [GitHub Enterprise Server](/docs/id/github-enterprise-server): Claude Code dengan GitHub yang di-host sendiri16* [GitHub Enterprise Server](/docs/id/github-enterprise-server): Claude Code dengan GitHub yang di-host sendiri

17 17 


131 Izin GitHub App131 Izin GitHub App

132</h3>132</h3>

133 133 

134[Claude GitHub App](https://github.com/apps/claude) dibagikan oleh setiap fitur Claude yang terintegrasi dengan GitHub, termasuk Claude Code GitHub Action, [Code Review](/docs/id/code-review), dan [auto-fix untuk pull request](/docs/id/claude-code-on-the-web#auto-fix-pull-requests) di Claude Code di web. GitHub App memiliki set izin tunggal yang mencakup semua fiturnya, jadi set mencakup beberapa izin yang Claude Code GitHub Action tidak gunakan.134[Claude GitHub App](https://github.com/apps/claude) dibagikan oleh setiap fitur Claude yang terintegrasi dengan GitHub, termasuk Claude Code GitHub Action, [Code Review](/docs/id/code-review), dan [auto-fix untuk pull request](/docs/id/claude-code-on-the-web#auto-fix-pull-requests) di sesi cloud. GitHub App memiliki set izin tunggal yang mencakup semua fiturnya, jadi set mencakup beberapa izin yang Claude Code GitHub Action tidak gunakan.

135 135 

136Ketika Anda menginstal aplikasi, Anda memberikan izin berikut:136Ketika Anda menginstal aplikasi, Anda memberikan izin berikut:

137 137 

Details

41 Atur integrasi41 Atur integrasi

42</h2>42</h2>

43 43 

44Selain prasyarat, Anda membuat empat hal: identitas GitHub untuk Claude Code GitHub Action, konfigurasi kepercayaan sisi cloud, rahasia repositori, dan file alur kerja. Langkah-langkah di bawah memandu melalui masing-masing.44Selain prasyarat, Anda membuat identitas GitHub untuk Claude Code GitHub Action, konfigurasi kepercayaan sisi cloud, rahasia repositori, dan file alur kerja. Langkah-langkah di bawah memandu melalui masing-masing.

45 45 

46<Steps>46<Steps>

47 <Step title="Pilih identitas GitHub">47 <Step title="Pilih identitas GitHub">

48 Claude Code GitHub Action mendorong komit dan memposting komentar melalui identitas GitHub. [Pengaturan cepat](/docs/id/github-actions#quick-setup) memasang Claude GitHub App resmi untuk ini. Dengan penyedia cloud, Anda memilih identitas sendiri:48 Claude Code GitHub Action mendorong komit dan memposting komentar melalui identitas GitHub. [Pengaturan cepat](/docs/id/github-actions#quick-setup) memasang Claude GitHub App resmi untuk ini. Dengan penyedia cloud, Anda memilih identitas sendiri:

49 49 

50 * **[Claude GitHub App](https://github.com/apps/claude) resmi**: pasang di repositori, atau lewati ke langkah berikutnya jika sudah dipasang50 * **[Claude GitHub App](https://github.com/apps/claude) resmi**: pasang di repositori, atau lewati ke langkah berikutnya jika sudah dipasang

51 * **GitHub App kustom**: buat aplikasi Anda sendiri, dijelaskan di bawah, ketika Anda menginginkan hanya tiga izin yang digunakan Claude Code GitHub Action daripada [set lengkap app resmi](/docs/id/github-actions#github-app-permissions)51 * **GitHub App kustom**: buat aplikasi Anda sendiri ketika Anda menginginkan hanya tiga izin yang digunakan Claude Code GitHub Action daripada [set lengkap app resmi](/docs/id/github-actions#github-app-permissions)

52 * **Token `GITHUB_TOKEN` otomatis GitHub**: tidak ada aplikasi untuk dibuat atau dipasang, tetapi GitHub tidak memicu alur kerja CI Anda pada komit yang dibuat dengannya52 * **Token `GITHUB_TOKEN` otomatis GitHub**: tidak ada aplikasi untuk dibuat atau dipasang, tetapi GitHub tidak memicu alur kerja CI Anda pada komit yang dibuat dengannya

53 53 

54 Contoh alur kerja di langkah keempat mengautentikasi dengan aplikasi kustom. Langkah itu juga mengatakan apa yang harus diubah untuk dua opsi lainnya.54 Contoh alur kerja di langkah keempat mengautentikasi dengan aplikasi kustom. Langkah itu juga mengatakan apa yang harus diubah untuk dua opsi lainnya.

Details

4 4 

5# Claude Code dengan GitHub Enterprise Server5# Claude Code dengan GitHub Enterprise Server

6 6 

7> Hubungkan Claude Code ke instans GitHub Enterprise Server yang di-host sendiri untuk sesi web, tinjauan kode, dan pasar plugin.7> Hubungkan Claude Code ke instans GitHub Enterprise Server yang di-host sendiri untuk sesi cloud, tinjauan kode, dan pasar plugin.

8 8 

9<Note>9<Note>

10 Dukungan GitHub Enterprise Server tersedia untuk paket Team dan Enterprise.10 Dukungan GitHub Enterprise Server tersedia untuk paket Team dan Enterprise.

11</Note>11</Note>

12 12 

13Dukungan GitHub Enterprise Server (GHES) memungkinkan organisasi Anda menggunakan Claude Code dengan repositori yang dihosting di instans GitHub yang dikelola sendiri, bukan github.com. Setelah Owner menghubungkan instans GHES Anda, pengembang dapat menjalankan sesi web dan mendapatkan tinjauan kode otomatis tanpa konfigurasi per-repositori apa pun. Pasar plugin yang dihosting di instans Anda juga didukung; persyaratan kredensial bervariasi menurut permukaan, seperti yang dijelaskan dalam [Plugin marketplaces on GHES](#plugin-marketplaces-on-ghes).13Dukungan GitHub Enterprise Server (GHES) memungkinkan organisasi Anda menggunakan Claude Code dengan repositori yang dihosting di instans GitHub yang dikelola sendiri, bukan github.com. Setelah Owner menghubungkan instans GHES Anda, pengembang dapat menjalankan sesi cloud dan mendapatkan tinjauan kode otomatis tanpa konfigurasi per-repositori apa pun. Pasar plugin yang dihosting di instans Anda juga didukung; persyaratan kredensial bervariasi menurut permukaan, seperti yang dijelaskan dalam [Plugin marketplaces on GHES](#plugin-marketplaces-on-ghes).

14 14 

15Untuk repositori di github.com, lihat [Claude Code di web](/docs/id/claude-code-on-the-web) dan [Code Review](/docs/id/code-review). Untuk menjalankan Claude di infrastruktur CI Anda sendiri, lihat [GitHub Actions](/docs/id/github-actions).15Untuk repositori di github.com, lihat [Claude Code di web](/docs/id/claude-code-on-the-web) dan [Code Review](/docs/id/code-review). Untuk menjalankan Claude di infrastruktur CI Anda sendiri, lihat [GitHub Actions](/docs/id/github-actions).

16 16 


21Tabel di bawah menunjukkan fitur Claude Code mana yang mendukung GHES dan perbedaan apa pun dari perilaku github.com.21Tabel di bawah menunjukkan fitur Claude Code mana yang mendukung GHES dan perbedaan apa pun dari perilaku github.com.

22 22 

23| Fitur | Dukungan GHES | Catatan |23| Fitur | Dukungan GHES | Catatan |

24| :----------------- | :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- |24| :---------------- | :--------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- |

25| Claude Code di web | ✅ Didukung | Pemilik menghubungkan instans GHES sekali; pengembang menggunakan `claude --cloud` atau [claude.ai/code](https://claude.ai/code) seperti biasa |25| Cloud sessions | ✅ Didukung | Pemilik menghubungkan instans GHES sekali; pengembang menggunakan `claude --cloud` atau [claude.ai/code](https://claude.ai/code) seperti biasa |

26| Code Review | ✅ Didukung | Tinjauan PR otomatis yang sama seperti github.com |26| Code Review | ✅ Didukung | Tinjauan PR otomatis yang sama seperti github.com |

27| Claude Security | ✅ Didukung | Tersedia dalam beta publik untuk paket Enterprise di [claude.ai/security](https://claude.ai/security) |27| Claude Security | ✅ Didukung | Tersedia dalam beta publik untuk paket Enterprise di [claude.ai/security](https://claude.ai/security) |

28| Sesi Teleport | ✅ Didukung | Pindahkan sesi antara web dan terminal dengan `--teleport` |28| Teleport sessions | ✅ Didukung | Pindahkan sesi antara cloud dan terminal dengan `--teleport` |

29| Pasar plugin | ✅ Didukung | Persyaratan kredensial berbeda menurut permukaan. Lihat [Pasar plugin di GHES](#plugin-marketplaces-on-ghes) |29| Pasar plugin | ✅ Didukung | Persyaratan kredensial berbeda menurut permukaan. Lihat [Pasar plugin di GHES](#plugin-marketplaces-on-ghes) |

30| Metrik kontribusi | ✅ Didukung | Dikirimkan melalui webhook ke [dasbor analitik](/docs/id/analytics) |30| Metrik kontribusi | ✅ Didukung | Dikirimkan melalui webhook ke [dasbor analitik](/docs/id/analytics) |

31| GitHub Actions | ✅ Didukung | Memerlukan pengaturan alur kerja manual; `/install-github-app` hanya untuk github.com |31| GitHub Actions | ✅ Didukung | Memerlukan pengaturan alur kerja manual; `/install-github-app` hanya untuk github.com |


110cd api-service110cd api-service

111```111```

112 112 

113Kemudian mulai sesi web. Claude mendeteksi host GHES dari git remote Anda dan merutekan sesi melalui instans yang dikonfigurasi organisasi Anda:113Kemudian mulai sesi cloud. Claude mendeteksi host GHES dari git remote Anda dan merutekan sesi melalui instans yang dikonfigurasi organisasi Anda:

114 114 

115```bash theme={null}115```bash theme={null}

116claude --cloud "Add retry logic to the payment webhook handler"116claude --cloud "Add retry logic to the payment webhook handler"


122 Teleport sesi ke terminal Anda122 Teleport sesi ke terminal Anda

123</h3>123</h3>

124 124 

125Tarik sesi web ke terminal lokal Anda dengan `claude --teleport`. Teleport memverifikasi Anda berada di checkout repositori GHES yang sama sebelum mengambil cabang dan memuat riwayat sesi. Lihat [persyaratan teleport](/docs/id/claude-code-on-the-web#teleport-requirements) untuk detail.125Tarik sesi cloud ke terminal lokal Anda dengan `claude --teleport`. Teleport memverifikasi Anda berada di checkout repositori GHES yang sama sebelum mengambil cabang dan memuat riwayat sesi. Lihat [persyaratan teleport](/docs/id/claude-code-on-the-web#teleport-requirements) untuk detail.

126 126 

127<h2 id="plugin-marketplaces-on-ghes">127<h2 id="plugin-marketplaces-on-ghes">

128 Pasar plugin di GHES128 Pasar plugin di GHES


136| Pengaturan terkelola (`extraKnownMarketplaces`) | Claude Code mendaftarkan entri dan mengkloning repositori menggunakan kredensial git yang ada di mesin | Akses Git ke host GHES Anda dari mesin mereka |136| Pengaturan terkelola (`extraKnownMarketplaces`) | Claude Code mendaftarkan entri dan mengkloning repositori menggunakan kredensial git yang ada di mesin | Akses Git ke host GHES Anda dari mesin mereka |

137| Pengaturan plugin organisasi claude.ai | Pemilik memilih instans GHES sebagai sumber; backend Anthropic mengambil dan menyinkronkan repositori menggunakan GitHub App dari [pengaturan admin](#admin-setup) | Tidak ada per pengguna setelah ditambahkan. Pemilik yang menambahkannya memerlukan akun GitHub Enterprise mereka sendiri yang terhubung sebagai pemeriksaan akses, dan GitHub App harus diinstal di repositori pasar |137| Pengaturan plugin organisasi claude.ai | Pemilik memilih instans GHES sebagai sumber; backend Anthropic mengambil dan menyinkronkan repositori menggunakan GitHub App dari [pengaturan admin](#admin-setup) | Tidak ada per pengguna setelah ditambahkan. Pemilik yang menambahkannya memerlukan akun GitHub Enterprise mereka sendiri yang terhubung sebagai pemeriksaan akses, dan GitHub App harus diinstal di repositori pasar |

138| Pengaturan pengguna claude.ai | Backend Anthropic mengambil repositori menggunakan koneksi GitHub Enterprise pengguna yang mengirimkan | Akun GitHub Enterprise mereka sendiri yang terhubung ke Claude |138| Pengaturan pengguna claude.ai | Backend Anthropic mengambil repositori menggunakan koneksi GitHub Enterprise pengguna yang mengirimkan | Akun GitHub Enterprise mereka sendiri yang terhubung ke Claude |

139| Claude Code di web | Sesi cloud mengkloning pasar di dalam sandbox sesi. Sandbox hanya dapat menjangkau instans GHES Anda ketika repositori sesi berada di instans yang sama, dan kredensial git-nya dibatasi pada repositori sesi | Tidak dapat diandalkan untuk pasar yang dihosting GHES: host yang berbeda dari repositori sesi tidak dapat dijangkau, dan bahkan instalasi instans yang sama dapat gagal. Gunakan CLI, pengaturan terkelola, atau claude.ai sebagai gantinya |139| Sesi cloud | Sesi cloud mengkloning pasar di dalam sandbox sesi. Sandbox hanya dapat menjangkau instans GHES Anda ketika repositori sesi berada di instans yang sama, dan kredensial git-nya dibatasi pada repositori sesi | Tidak dapat diandalkan untuk pasar yang dihosting GHES: host yang berbeda dari repositori sesi tidak dapat dijangkau, dan bahkan instalasi instans yang sama dapat gagal. Gunakan CLI, pengaturan terkelola, atau claude.ai sebagai gantinya |

140 140 

141<Warning>141<Warning>

142 Koneksi GitHub Enterprise di claude.ai adalah per pengguna ketika pasar ditambahkan dari pengaturan pengguna. [Pengaturan admin](#admin-setup) menghubungkan instans GHES Anda ke organisasi Anda, tetapi tidak menghubungkan akun pengguna individual: setiap pengguna yang menambahkan pasar GHES dari pengaturan mereka sendiri harus terlebih dahulu menghubungkan akun GitHub Enterprise mereka sendiri, dan koneksi satu pengguna, termasuk Pemilik, tidak mencakup siapa pun yang lain. Pasar yang ditambahkan oleh Pemilik dalam pengaturan plugin organisasi tidak memberlakukan persyaratan ini pada pengguna, karena pengambilan berkelanjutan menggunakan GitHub App organisasi. Pemilik yang menambahkan pasar masih memerlukan akun GitHub Enterprise mereka sendiri yang terhubung pada waktu penambahan.142 Koneksi GitHub Enterprise di claude.ai adalah per pengguna ketika pasar ditambahkan dari pengaturan pengguna. [Pengaturan admin](#admin-setup) menghubungkan instans GHES Anda ke organisasi Anda, tetapi tidak menghubungkan akun pengguna individual: setiap pengguna yang menambahkan pasar GHES dari pengaturan mereka sendiri harus terlebih dahulu menghubungkan akun GitHub Enterprise mereka sendiri, dan koneksi satu pengguna, termasuk Pemilik, tidak mencakup siapa pun yang lain. Pasar yang ditambahkan oleh Pemilik dalam pengaturan plugin organisasi tidak memberlakukan persyaratan ini pada pengguna, karena pengambilan berkelanjutan menggunakan GitHub App organisasi. Pemilik yang menambahkan pasar masih memerlukan akun GitHub Enterprise mereka sendiri yang terhubung pada waktu penambahan.


220 Troubleshooting220 Troubleshooting

221</h2>221</h2>

222 222 

223<h3 id="web-session-fails-to-clone-repository">223<h3 id="cloud-session-fails-to-clone-repository">

224 Sesi web gagal mengkloning repositori224 Cloud session fails to clone repository

225</h3>225</h3>

226 226 

227Jika `claude --cloud` gagal dengan kesalahan kloning, verifikasi bahwa seorang Owner telah menyelesaikan pengaturan untuk instans GHES Anda dan bahwa GitHub App dipasang di repositori tempat Anda bekerja. Tanyakan kepada Owner yang menghubungkan instans untuk mengonfirmasi bahwa nama host yang terdaftar dalam pengaturan Claude cocok dengan nama host di git remote Anda.227Jika `claude --cloud` gagal dengan kesalahan kloning, verifikasi bahwa seorang Owner telah menyelesaikan pengaturan untuk instans GHES Anda dan bahwa GitHub App dipasang di repositori tempat Anda bekerja. Tanyakan kepada Owner yang menghubungkan instans untuk mengonfirmasi bahwa nama host yang terdaftar dalam pengaturan Claude cocok dengan nama host di git remote Anda.


246 Instans GHES tidak dapat dijangkau246 Instans GHES tidak dapat dijangkau

247</h3>247</h3>

248 248 

249Jika tinjauan atau sesi web habis waktu, instans GHES Anda mungkin tidak dapat dijangkau dari infrastruktur Anthropic. Konfirmasi firewall Anda memungkinkan koneksi masuk dari [alamat IP keluar Anthropic](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses). Sesi dalam [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) mencapai GHES dari dalam jaringan Anda, jadi untuk mereka periksa jalur jaringan runner sendiri dan [konektor SCM](/docs/id/self-hosted-environments-reference#scm-connector-flags) sebagai gantinya.249Jika tinjauan atau sesi cloud habis waktu, instans GHES Anda mungkin tidak dapat dijangkau dari infrastruktur Anthropic. Konfirmasi firewall Anda memungkinkan koneksi masuk dari [outbound IP addresses](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) Anthropic. Sesi dalam [self-hosted environment](/docs/id/self-hosted-environments) mencapai GHES dari dalam jaringan Anda, jadi untuk mereka periksa jalur jaringan runner sendiri dan [SCM connector](/docs/id/self-hosted-environments-reference#scm-connector-flags) sebagai gantinya.

250 250 

251<h3 id="session-start-fails-with-unable-to-get-organization-uuid">251<h3 id="session-start-fails-with-unable-to-get-organization-uuid">

252 Awal sesi gagal dengan `Unable to get organization UUID`252 Awal sesi gagal dengan `Unable to get organization UUID`

253</h3>253</h3>

254 254 

255Sesi web memerlukan organisasi Tim atau Enterprise. Masuk dengan `/login` menggunakan akun organisasi Anda. Jika Anda mengautentikasi dengan kunci API sebagai gantinya, sesi web gagal lebih awal dengan pesan yang meminta Anda menjalankan `/login`.255Sesi cloud memerlukan organisasi Tim atau Enterprise. Masuk dengan `/login` menggunakan akun organisasi Anda. Jika Anda mengautentikasi dengan kunci API sebagai gantinya, sesi cloud gagal lebih awal dengan pesan yang meminta Anda menjalankan `/login`.

256 256 

257<h2 id="related-resources">257<h2 id="related-resources">

258 Sumber daya terkait258 Sumber daya terkait

glossary.md +22 −5

Details

12 A12 A

13</h2>13</h2>

14 14 

15<h3 id="agents-md">

16 AGENTS.md

17</h3>

18 

19Sebuah file markdown dari instruksi proyek yang Anda tulis untuk agen coding AI. Jika repositori Anda memiliki satu dan tidak ada [CLAUDE.md](#claude-md), Claude membacanya sebagai instruksi proyek Anda tanpa Anda menambahkan file kedua. Anda dapat mengubah pengaturan **Project instructions** di `/config` untuk membuat Claude membaca kedua file atau hanya `CLAUDE.md`. Membaca `AGENTS.md` secara langsung memerlukan Claude Code v2.1.277 atau lebih baru dalam sesi yang mengambil feature flags; pada versi lain, impor dari CLAUDE.md.

20 

21Pelajari lebih lanjut: [AGENTS.md](/docs/id/memory#agents-md)

22 

15<h3 id="agent-teams">23<h3 id="agent-teams">

16 Agent teams24 Agent teams

17</h3>25</h3>


122 130 

123File markdown dari instruksi persisten yang Anda tulis untuk Claude, dimuat di awal setiap sesi sebagai pesan pengguna setelah system prompt. Letakkan konvensi proyek, catatan arsitektur, dan aturan "selalu lakukan X" di sini. Project-root CLAUDE.md bertahan [compaction](#compaction) dan dibaca ulang segar dari disk sesudahnya.131File markdown dari instruksi persisten yang Anda tulis untuk Claude, dimuat di awal setiap sesi sebagai pesan pengguna setelah system prompt. Letakkan konvensi proyek, catatan arsitektur, dan aturan "selalu lakukan X" di sini. Project-root CLAUDE.md bertahan [compaction](#compaction) dan dibaca ulang segar dari disk sesudahnya.

124 132 

125Anda dapat menempatkan CLAUDE.md di scope proyek di `./CLAUDE.md` atau `./.claude/CLAUDE.md`, di scope pengguna di `~/.claude/CLAUDE.md`, atau sebagai [managed policy](#managed-settings) untuk organisasi Anda. Semua file yang ditemukan digabungkan ke dalam konteks daripada menimpa satu sama lain, diurutkan dari scope terluas ke paling spesifik.133Anda dapat menempatkan CLAUDE.md di scope proyek di `./CLAUDE.md` atau `./.claude/CLAUDE.md`, di scope pengguna di `~/.claude/CLAUDE.md`, atau sebagai [managed policy](#managed-settings) untuk organisasi Anda. Semua file yang ditemukan digabungkan ke dalam konteks daripada menimpa satu sama lain, diurutkan dari scope terluas ke paling spesifik. Claude Code juga dapat memuat file [AGENTS.md](#agents-md) proyek, sendiri atau bersama CLAUDE.md.

126 134 

127Pelajari lebih lanjut: [CLAUDE.md files](/docs/id/memory#claude-md-files)135Pelajari lebih lanjut: [CLAUDE.md files](/docs/id/memory#claude-md-files)

128 136 

137<h3 id="cloud-session">

138 Cloud session

139</h3>

140 

141Sesi Claude Code yang terus berjalan setelah Anda menutup laptop, karena berjalan di infrastruktur cloud daripada mesin Anda: dikelola oleh Anthropic secara default, atau [self-hosted environment](/docs/id/self-hosted-environments) yang dioperasikan organisasi Anda. Anda memulainya dari claude.ai/code, aplikasi Claude mobile, aplikasi Desktop dengan **Cloud** dipilih, `claude --cloud`, atau [routine](/docs/id/routines). Sesi di terminal, IDE, atau aplikasi Desktop Anda dengan **Local** dipilih adalah sesi lokal; untuk menjangkau sesi lokal dari perangkat lain, gunakan [Remote Control](#remote-control).

142 

143Pelajari lebih lanjut: [Use Claude Code in the cloud](/docs/id/claude-code-on-the-web)

144 

129<h3 id="command">145<h3 id="command">

130 Command146 Command

131</h3>147</h3>


332 Remote Control348 Remote Control

333</h3>349</h3>

334 350 

335Cara untuk melanjutkan sesi Claude Code lokal dari telepon atau browser Anda melalui claude.ai. Eksekusi kode dan file Anda tetap di mesin Anda; antarmuka bersifat remote. Berbeda dari Claude Code di web, yang berjalan dalam sandbox cloud.351Cara untuk melanjutkan sesi Claude Code lokal dari telepon atau browser Anda melalui claude.ai. Eksekusi kode dan file Anda tetap di mesin Anda; antarmuka bersifat remote. Berbeda dari [sesi cloud](/docs/id/claude-code-on-the-web), yang berjalan dalam sandbox cloud.

336 352 

337Pelajari lebih lanjut: [Remote Control](/docs/id/remote-control)353Pelajari lebih lanjut: [Remote Control](/docs/id/remote-control)

338 354 


408 Teleport424 Teleport

409</h3>425</h3>

410 426 

411Perintah, `/teleport`, yang menarik sesi Claude Code cloud ke terminal lokal Anda. Claude mengambil branch, memuat riwayat percakapan, dan melanjutkan dari keadaan terakhir sesi web. Arah sebaliknya adalah `--cloud`, yang mengirim tugas lokal untuk dijalankan di web.427Perintah, `/teleport`, yang menarik sesi Claude Code cloud ke terminal lokal Anda. Claude mengambil branch, memuat riwayat percakapan, dan melanjutkan dari keadaan terakhir sesi cloud. Arah sebaliknya adalah `--cloud`, yang mengirim tugas lokal untuk dijalankan di cloud.

412 428 

413Pelajari lebih lanjut: [Dari web ke terminal](/docs/id/claude-code-on-the-web#from-web-to-terminal)429Pelajari lebih lanjut: [Dari cloud ke terminal](/docs/id/claude-code-on-the-web#from-cloud-to-terminal)

414 430 

415<h3 id="tool">431<h3 id="tool">

416 Tool432 Tool


461Istilah-istilah ini muncul dalam docs yang lebih lama, posting blog, dan konten komunitas. Gunakan nama saat ini saat mencari di situs ini.477Istilah-istilah ini muncul dalam docs yang lebih lama, posting blog, dan konten komunitas. Gunakan nama saat ini saat mencari di situs ini.

462 478 

463| Old term | Now called | Notes |479| Old term | Now called | Notes |

464| --------------- | --------------------------------------------- | ------------------------------------ |480| ----------------------------------------------------------------------- | --------------------------------------------- | ----------------------------------------------------------------------------- |

465| Headless mode | [Non-interactive mode](#non-interactive-mode) | Same `-p` flag, same behavior |481| Headless mode | [Non-interactive mode](#non-interactive-mode) | Same `-p` flag, same behavior |

482| Web session; "Claude Code on the web" as the name for any cloud session | [Cloud session](#cloud-session) | "Claude Code on the web" now names only the browser surface at claude.ai/code |

466| Custom commands | [Skills](#skill) | `.claude/commands/` files still work |483| Custom commands | [Skills](#skill) | `.claude/commands/` files still work |

467| Slash commands | Commands | "Slash" dropped from product copy |484| Slash commands | Commands | "Slash" dropped from product copy |

headless.md +7 −1

Details

343Bendera `--allowedTools` menggunakan [sintaks aturan izin](/docs/id/settings-reference#permission-rule-syntax). Spasi di akhir ` *` memungkinkan pencocokan awalan, jadi `Bash(git diff *)` memungkinkan perintah apa pun yang dimulai dengan `git diff`. Spasi sebelum `*` penting: tanpanya, `Bash(git diff*)` juga akan cocok dengan `git diff-index`.343Bendera `--allowedTools` menggunakan [sintaks aturan izin](/docs/id/settings-reference#permission-rule-syntax). Spasi di akhir ` *` memungkinkan pencocokan awalan, jadi `Bash(git diff *)` memungkinkan perintah apa pun yang dimulai dengan `git diff`. Spasi sebelum `*` penting: tanpanya, `Bash(git diff*)` juga akan cocok dengan `git diff-index`.

344 344 

345<Note>345<Note>

346 [skills](/docs/id/skills) yang dipanggil pengguna dan perintah kustom bekerja dalam mode `-p`: sertakan `/skill-name` dalam string prompt dan Claude Code memperluasnya sebelum menjalankan. Perintah bawaan yang hanya berjalan di antarmuka terminal, seperti `/login`, tidak tersedia dalam mode `-p`. `/model`, `/effort`, `/fast`, `/color`, dan `/rename` menerima nilai sebagai argumen, misalnya `/model sonnet`, dan `/mcp` tanpa argumen mencetak ringkasan teks status server; bentuk-bentuk ini memerlukan Claude Code v2.1.205 atau lebih baru dan mengikuti [catatan ketersediaan](/docs/id/commands#all-commands) setiap perintah. Untuk mengubah pengaturan dari invokasi `-p`, berikan `key=value` ke `/config`, misalnya `/config thinking=false`.346 Dukungan perintah berbeda dalam mode `-p`:

347 

348 * [skills](/docs/id/skills) yang dipanggil pengguna dan perintah kustom bekerja. Sertakan `/skill-name` dalam string prompt dan Claude Code memperluasnya sebelum menjalankan.

349 * Perintah bawaan yang hanya berjalan di antarmuka terminal, seperti `/login`, tidak tersedia.

350 * `/model`, `/effort`, `/fast`, `/color`, dan `/rename` menerima nilai sebagai argumen, misalnya `/model sonnet`, dan `/mcp` tanpa argumen mencetak ringkasan teks status server. Bentuk-bentuk ini memerlukan Claude Code v2.1.205 atau lebih baru dan mengikuti [catatan ketersediaan](/docs/id/commands#all-commands) setiap perintah.

351 * Untuk mengubah pengaturan, berikan `key=value` ke `/config`, misalnya `/config thinking=false`.

352 * `/output-style <style>` beralih [output styles](/docs/id/output-styles) dan `/output-style` saja mencantumnya. Memerlukan Claude Code v2.1.269 atau lebih baru.

347</Note>353</Note>

348 354 

349<h3 id="customize-the-system-prompt">355<h3 id="customize-the-system-prompt">

hooks.md +39 −6

Details

268| [Skill](/docs/id/skills) frontmatter | Sisa sesi setelah skill dipanggil. Lihat [Hooks dalam skills dan agents](#hooks-in-skills-and-agents) | Ya, didefinisikan dalam file skill |268| [Skill](/docs/id/skills) frontmatter | Sisa sesi setelah skill dipanggil. Lihat [Hooks dalam skills dan agents](#hooks-in-skills-and-agents) | Ya, didefinisikan dalam file skill |

269| [Subagent](/docs/id/sub-agents) frontmatter | Saat subagent itu berjalan | Ya, didefinisikan dalam file subagent |269| [Subagent](/docs/id/sub-agents) frontmatter | Saat subagent itu berjalan | Ya, didefinisikan dalam file subagent |

270 270 

271Sesi cloud di [Claude Code di web](/docs/id/claude-code-on-the-web) tidak membaca `~/.claude/settings.json` lokal Anda; hooks di sana berasal dari repo dan dari pengaturan yang dikelola server organisasi Anda. Dalam [lingkungan self-hosted](/docs/id/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code juga menjalankan hooks yang operator semai dari `~/.claude/` host runner, dan menjalankan hooks dalam file pengaturan terkelola image runner saat file itu termasuk dalam [sumber terkelola yang Claude Code terapkan](/docs/id/managed-settings#how-claude-code-combines-managed-sources), yang secara default berarti hanya ketika pengaturan yang dikelola server maupun kebijakan Claude Code yang dikirimkan MDM tidak menyediakan tingkat terkelola. Lihat [apa yang terbawa dari setup Anda](/docs/id/cloud-environments#what-carries-over-from-your-setup) untuk file mana yang mencapai sesi cloud.271Sesi cloud di [Claude Code di web](/docs/id/claude-code-on-the-web) tidak membaca `~/.claude/settings.json` lokal Anda; hooks di sana berasal dari repo, artinya `.claude/settings.json`-nya dalam sesi dengan satu repositori dan plugins yang dideklarasikannya dalam sesi apa pun, dan dari pengaturan yang dikelola server organisasi Anda. Dalam [lingkungan self-hosted](/docs/id/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code juga menjalankan hooks yang operator semai dari `~/.claude/` host runner, dan menjalankan hooks dalam file pengaturan terkelola image runner saat file itu termasuk dalam [sumber terkelola yang Claude Code terapkan](/docs/id/managed-settings#how-claude-code-combines-managed-sources), yang secara default berarti hanya ketika pengaturan yang dikelola server maupun kebijakan Claude Code yang dikirimkan MDM tidak menyediakan tingkat terkelola. Lihat [apa yang terbawa dari setup Anda](/docs/id/cloud-environments#what-carries-over-from-your-setup) untuk file mana yang mencapai sesi cloud.

272 272 

273Untuk detail tentang resolusi file pengaturan, lihat [settings](/docs/id/settings).273Untuk detail tentang resolusi file pengaturan, lihat [settings](/docs/id/settings).

274 274 


647Gunakan placeholders ini untuk mereferensikan skrip hook relatif terhadap akar proyek atau plugin, terlepas dari direktori kerja saat hook dijalankan:647Gunakan placeholders ini untuk mereferensikan skrip hook relatif terhadap akar proyek atau plugin, terlepas dari direktori kerja saat hook dijalankan:

648 648 

649* `${CLAUDE_PROJECT_DIR}`: akar proyek tempat sesi dimulai. Claude Code juga menetapkan variabel ini dalam lingkungan [stdio MCP servers](/docs/id/mcp#option-3-add-a-local-stdio-server) dan plugin LSP servers.649* `${CLAUDE_PROJECT_DIR}`: akar proyek tempat sesi dimulai. Claude Code juga menetapkan variabel ini dalam lingkungan [stdio MCP servers](/docs/id/mcp#option-3-add-a-local-stdio-server) dan plugin LSP servers.

650* `${CLAUDE_PLUGIN_ROOT}`: direktori instalasi plugin, untuk skrip yang dibundel dengan [plugin](/docs/id/plugins). Berubah pada setiap pembaruan plugin.650* `${CLAUDE_PLUGIN_ROOT}`: direktori instalasi plugin, untuk skrip yang dibundel dengan [plugin](/docs/id/plugins). Lihat [plugin environment variables](/docs/id/plugins-reference#environment-variables) untuk bagaimana path berperilaku di seluruh pembaruan.

651* `${CLAUDE_PLUGIN_DATA}`: [direktori data persisten](/docs/id/plugins-reference#persistent-data-directory) plugin, untuk dependensi dan status yang harus bertahan pembaruan plugin.651* `${CLAUDE_PLUGIN_DATA}`: [direktori data persisten](/docs/id/plugins-reference#persistent-data-directory) plugin, untuk dependensi dan status yang harus bertahan pembaruan plugin.

652 652 

653<Note>653<Note>


1199 1199 

1200Sebelum v2.1.214, sesi yang di-fork melaporkan sumber `"resume"`.1200Sebelum v2.1.214, sesi yang di-fork melaporkan sumber `"resume"`.

1201 1201 

1202Ketika Anda menjalankan `/clear` dalam sesi interaktif, hooks SessionStart yang cocok dijalankan di latar belakang dan prompt menerima input lagi segera. Respons pertama Claude masih menunggu hooks selesai, jadi konteks mereka mencapai Claude. Jika Anda menjalankan `/clear` lagi atau beralih ke percakapan lain dengan perintah seperti `/resume` sementara hooks itu masih berjalan, Claude Code membatalkannya dan membuang output mereka.1202Ketika Anda menjalankan sesi interaktif, melanjutkan percakapan saat peluncuran dengan `--continue` atau `--resume`, atau menjalankan `/clear`, SessionStart hooks dijalankan di latar belakang. Anda dapat mengetik segera, dan percakapan yang Anda lanjutkan muncul tanpa menunggu hooks. Respons pertama Claude masih menunggu hooks selesai, jadi konteks mereka mencapai Claude.

1203 

1204Ketika Anda beralih percakapan dengan `/resume` di dalam sesi, switch menunggu hooks selesai sebagai gantinya. Jika Anda menjalankan `/clear` atau beralih ke percakapan lain sementara background hooks masih berjalan, tidak ada yang mereka kembalikan berlaku untuk sesi.

1205 

1206Penantian yang sama berlaku saat peluncuran, termasuk sesi yang dilanjutkan: prompt yang Anda kirimkan sementara SessionStart hooks masih berjalan tidak mencapai Claude sampai mereka selesai.

1207 

1208Selama penantian apa pun, tekan `Esc` untuk mengambil kembali prompt ke input tanpa mengirimkannya. Hooks terus berjalan.

1203 1209 

1204<h4 id="sessionstart-input">1210<h4 id="sessionstart-input">

1205 SessionStart input1211 SessionStart input


1715 1721 

1716Bidang `tool_input` tergantung pada tool:1722Bidang `tool_input` tergantung pada tool:

1717 1723 

1724<a id="bash" />

1725 

1718<h5 id="bash">1726<h5 id="bash">

1719 Bash1727 Bash

1720</h5>1728</h5>


1728| `timeout` | number | `120000` | Timeout opsional dalam milidetik. Nilai di atas [maksimum](/docs/id/tools-reference#bash-tool-behavior) dikurangi ke maksimum daripada ditolak |1736| `timeout` | number | `120000` | Timeout opsional dalam milidetik. Nilai di atas [maksimum](/docs/id/tools-reference#bash-tool-behavior) dikurangi ke maksimum daripada ditolak |

1729| `run_in_background` | boolean | `false` | Apakah menjalankan perintah di latar belakang |1737| `run_in_background` | boolean | `false` | Apakah menjalankan perintah di latar belakang |

1730 1738 

1739Ketika perintah Bash mengubah file dalam repositori Git, Claude Code dapat mencatat apa yang berubah. Itu mencatat perubahan dalam setiap mode izin ketika pengaturan [`bashEditDiffEnabled`](/docs/id/settings-reference#basheditdiffenabled) mengaktifkan perekaman; entri pengaturan itu mengatakan file mana yang dapat mengaturnya. Jika tidak, itu mencatat mereka hanya dalam mode auto dan mode `bypassPermissions`, dan hanya ketika Claude Code mengarahkan Claude untuk mengedit file melalui Bash. Atur `bashEditDiffEnabled` ke `false` untuk mematikan perekaman. Perintah latar belakang dan perintah read-only tidak membawa diff.

1740 

1741Hook [PostToolUse](#posttooluse) Anda kemudian menerima file yang berubah dalam `tool_response.bashEditDiff`. Daftar mencakup apa yang berubah di bawah repositori sementara perintah berjalan. File yang Git abaikan dan file dalam submodules tidak terdaftar. Memerlukan Claude Code v2.1.269 atau lebih baru.

1742 

1743<Note>

1744 Daftar adalah best effort dan dalam beta publik. Claude Code dapat melewatkan perubahan, menyertakan file yang proses lain ubah pada waktu yang sama, atau berhenti di batas ukurannya. Bentuk bidang mungkin berubah. Gunakan daftar untuk menemukan apa yang harus ditinjau, bukan untuk menegakkan kebijakan.

1745</Note>

1746 

1747`changedFiles` dan `files` mencantumkan apa yang diubah perintah; bidang yang tersisa mengatakan seberapa lengkap dan seberapa andal daftar itu.

1748 

1749| Bidang | Tipe | Contoh | Deskripsi |

1750| :------------- | :------ | :------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1751| `changedFiles` | array | `["/path/to/src/app.ts"]` | Path absolut dari file yang diubah perintah, paling banyak 200. Hadir setiap kali `files` menyimpan diff atau `moreFiles` di atas nol |

1752| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs dari hingga 5 file yang berubah, untuk tampilan. `created` atau `deleted` adalah `true` untuk file yang ditambahkan atau dihapus perintah |

1753| `moreFiles` | number | `2` | Jumlah file yang berubah tanpa diff dalam `files` |

1754| `unavailable` | boolean | `true` | Diatur ketika diff tidak lengkap atau tidak dapat diambil |

1755| `skipped` | boolean | `true` | Diatur untuk perintah Git yang memindahkan pohon kerja, seperti `git checkout` atau `git stash`, jadi Claude Code tidak mengambil diff |

1756| `shared` | boolean | `true` | Diatur ketika pemanggilan tool Bash lain, seperti subagent, berjalan di repositori yang sama pada waktu yang sama, jadi beberapa perubahan yang terdaftar mungkin dari perintah itu |

1757 

1731<a id="powershell" />1758<a id="powershell" />

1732 1759 

1733<h5 id="powershell">1760<h5 id="powershell">


1855| :------------------ | :----- | :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1882| :------------------ | :----- | :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1856| `status` | string | `"completed"` | `"completed"` untuk subagents foreground, `"async_launched"` untuk subagents background. Mulai dari v2.1.198, subagents berjalan di latar belakang secara default, jadi `run_in_background` yang dihilangkan juga menghasilkan `"async_launched"` |1883| `status` | string | `"completed"` | `"completed"` untuk subagents foreground, `"async_launched"` untuk subagents background. Mulai dari v2.1.198, subagents berjalan di latar belakang secara default, jadi `run_in_background` yang dihilangkan juga menghasilkan `"async_launched"` |

1857| `agentId` | string | `"a4d2c8f1e0b3a297"` | Pengenal untuk run subagent |1884| `agentId` | string | `"a4d2c8f1e0b3a297"` | Pengenal untuk run subagent |

1858| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Blok teks akhir subagent |1885| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Blok teks akhir subagent, atau, untuk subagent yang laporannya melewati `SubagentHandback`, catatan singkat tentang hand-back itu di tempatnya |

1859| `resolvedModel` | string | `"claude-sonnet-4-5"` | Model yang dijalankan subagent, yang mungkin berbeda dari model yang diminta |1886| `resolvedModel` | string | `"claude-sonnet-4-5"` | Model yang dijalankan subagent, yang mungkin berbeda dari model yang diminta |

1860| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Model yang digunakan secara berurutan, dengan pengulangan berturut-turut yang runtuh; diatur hanya ketika model ditukar mid-run. Memerlukan Claude Code v2.1.212 atau lebih baru |1887| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Model yang digunakan secara berurutan, dengan pengulangan berturut-turut yang runtuh; diatur hanya ketika model ditukar mid-run. Memerlukan Claude Code v2.1.212 atau lebih baru |

1861| `totalTokens` | number | `12450` | Jumlah token dari permintaan API akhir subagent: input, output, dan cache tokens digabungkan. Ini bukan total di seluruh run |1888| `totalTokens` | number | `12450` | Jumlah token dari permintaan API akhir subagent: input, output, dan cache tokens digabungkan. Ini bukan total di seluruh run |


1863| `totalToolUseCount` | number | `7` | Jumlah pemanggilan tool yang dibuat subagent |1890| `totalToolUseCount` | number | `7` | Jumlah pemanggilan tool yang dibuat subagent |

1864| `usage` | object | `{"input_tokens": 8320, ...}` | Breakdown token per-tipe dari permintaan API akhir: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1891| `usage` | object | `{"input_tokens": 8320, ...}` | Breakdown token per-tipe dari permintaan API akhir: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1865 1892 

1893Pada Claude Code v2.1.271 atau lebih baru, subagent yang berjalan dengan tool [`SubagentHandback`](/docs/id/tools-reference), yang Claude Code sediakan dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), mengirimkan laporannya melalui tool itu daripada mengembalikannya sebagai teks. Bidang `content` dari hasil `completed`-nya kemudian membawa catatan singkat tentang hand-back itu daripada laporan itu sendiri. Untuk membaca laporan, cocokkan hook `PreToolUse` atau `PostToolUse` pada `SubagentHandback` dan baca `tool_input.message`.

1894 

1866Untuk subagents background, tool mengembalikan ketika tugas bergerak ke latar belakang, jadi `tool_response` tidak membawa bidang penggunaan: peluncuran background mengembalikan segera, dan tugas foreground yang Claude Code latar belakang mid-run mengembalikan pada transisi itu. Itu memiliki `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, dan `resolvedModel`.1895Untuk subagents background, tool mengembalikan ketika tugas bergerak ke latar belakang, jadi `tool_response` tidak membawa bidang penggunaan: peluncuran background mengembalikan segera, dan tugas foreground yang Claude Code latar belakang mid-run mengembalikan pada transisi itu. Itu memiliki `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, dan `resolvedModel`.

1867 1896 

1868Pada respons `completed`, `resolvedModel` menamai model yang dijalankan subagent, yang dapat berbeda dari nilai `model` dalam `tool_input`, seperti ketika `availableModels` atau override lain berlaku. Pada respons `async_launched`, `resolvedModel` menamai model yang digunakan ketika agent bergerak ke latar belakang, jadi swap yang terjadi sebelum backgrounding tercermin di sana. `modelsUsed` dan perilaku `resolvedModel` saat backgrounding memerlukan Claude Code v2.1.212 atau lebih baru.1897Pada respons `completed`, `resolvedModel` menamai model yang dijalankan subagent, yang dapat berbeda dari nilai `model` dalam `tool_input`, seperti ketika `availableModels` atau override lain berlaku. Pada respons `async_launched`, `resolvedModel` menamai model yang digunakan ketika agent bergerak ke latar belakang, jadi swap yang terjadi sebelum backgrounding tercermin di sana. `modelsUsed` dan perilaku `resolvedModel` saat backgrounding memerlukan Claude Code v2.1.212 atau lebih baru.


2541 2570 

2542Selain [bidang input umum](#common-input-fields), SubagentStop hooks menerima `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, dan `last_assistant_message`. Bidang `agent_type` adalah nilai yang digunakan untuk pemfilteran matcher. `transcript_path` adalah transkrip sesi utama, sementara `agent_transcript_path` adalah transkrip subagent sendiri yang disimpan dalam folder `subagents/` bersarang. Bidang `last_assistant_message` berisi konten teks respons akhir subagent, jadi hooks dapat mengaksesnya tanpa mengurai file transkrip.2571Selain [bidang input umum](#common-input-fields), SubagentStop hooks menerima `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, dan `last_assistant_message`. Bidang `agent_type` adalah nilai yang digunakan untuk pemfilteran matcher. `transcript_path` adalah transkrip sesi utama, sementara `agent_transcript_path` adalah transkrip subagent sendiri yang disimpan dalam folder `subagents/` bersarang. Bidang `last_assistant_message` berisi konten teks respons akhir subagent, jadi hooks dapat mengaksesnya tanpa mengurai file transkrip.

2543 2572 

2573Pada Claude Code v2.1.271 atau lebih baru, subagent yang berjalan dengan tool [`SubagentHandback`](/docs/id/tools-reference) mengirimkan laporannya melalui tool itu sebelum berhenti. Bidang `last_assistant_message` kemudian menyimpan teks penutup subagent, jika ada, yang bukan laporan yang disampaikan. Laporan adalah input `message` panggilan itu, yang hook `PreToolUse` atau `PostToolUse` yang cocok pada `SubagentHandback` menerima sebagai `tool_input.message`.

2574 

2544SubagentStop hooks juga menerima array `background_tasks` dan `session_crons` yang dijelaskan di bawah [Stop input](#stop-input). Kedua array bersifat scoped ke sesi induk, bukan subagent.2575SubagentStop hooks juga menerima array `background_tasks` dan `session_crons` yang dijelaskan di bawah [Stop input](#stop-input). Kedua array bersifat scoped ke sesi induk, bukan subagent.

2545 2576 

2546```json theme={null}2577```json theme={null}


2803Selain [bidang input umum](#common-input-fields), StopFailure hooks menerima `error`, `error_details` opsional, dan `last_assistant_message` opsional. Bidang `error` mengidentifikasi tipe kesalahan dan digunakan untuk pemfilteran matcher.2834Selain [bidang input umum](#common-input-fields), StopFailure hooks menerima `error`, `error_details` opsional, dan `last_assistant_message` opsional. Bidang `error` mengidentifikasi tipe kesalahan dan digunakan untuk pemfilteran matcher.

2804 2835 

2805| Bidang | Deskripsi |2836| Bidang | Deskripsi |

2806| :----------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2837| :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2807| `error` | Tipe kesalahan: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, atau `unknown` |2838| `error` | Tipe kesalahan: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, atau `unknown` |

2808| `error_details` | Detail tambahan tentang kesalahan, ketika tersedia |2839| `error_details` | Detail tambahan tentang kesalahan, ketika tersedia |

2809| `last_assistant_message` | Teks kesalahan yang dirender ditampilkan dalam percakapan. Tidak seperti `Stop` dan `SubagentStop`, di mana bidang ini menyimpan output perca capan Claude, untuk `StopFailure` itu berisi string kesalahan API itu sendiri, seperti `"API Error: Rate limit reached"` |2840| `last_assistant_message` | Teks kesalahan yang dirender ditampilkan dalam percakapan. Tidak seperti `Stop` dan `SubagentStop`, di mana bidang ini menyimpan output percakapan Claude, untuk `StopFailure` itu berisi string kesalahan API itu sendiri, seperti `"API Error: Rate limit reached"` |

2810 2841 

2811```json theme={null}2842```json theme={null}

2812{2843{


3573CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3604CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude

3574```3605```

3575 3606 

3607Sebelum v2.1.268, `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` menaikkan hanya anggaran keseluruhan, dan hook tanpa `timeout` sendiri masih dibatalkan setelah 1.5 detik.

3608 

3576<h3 id="elicitation">3609<h3 id="elicitation">

3577 Elicitation3610 Elicitation

3578</h3>3611</h3>

Details

76* **Proyek Anda.** File di direktori dan subdirektori Anda, ditambah file di tempat lain dengan izin Anda.76* **Proyek Anda.** File di direktori dan subdirektori Anda, ditambah file di tempat lain dengan izin Anda.

77* **Terminal Anda.** Perintah apa pun yang dapat Anda jalankan: build tools, git, package managers, system utilities, scripts. Jika Anda dapat melakukannya dari command line, Claude juga dapat.77* **Terminal Anda.** Perintah apa pun yang dapat Anda jalankan: build tools, git, package managers, system utilities, scripts. Jika Anda dapat melakukannya dari command line, Claude juga dapat.

78* **Status git Anda.** Branch saat ini, perubahan yang belum di-commit, dan riwayat commit terbaru.78* **Status git Anda.** Branch saat ini, perubahan yang belum di-commit, dan riwayat commit terbaru.

79* **[CLAUDE.md](/docs/id/memory) Anda.** File markdown tempat Anda menyimpan instruksi khusus proyek, konvensi, dan konteks yang harus diketahui Claude setiap sesi.79* **[CLAUDE.md](/docs/id/memory) Anda.** File markdown tempat Anda menyimpan instruksi khusus proyek, konvensi, dan konteks yang harus diketahui Claude setiap sesi. Jika repositori Anda memiliki AGENTS.md untuk agen coding lainnya, Claude [dapat membacanya](/docs/id/memory#agents-md) sendiri atau bersama CLAUDE.md.

80* **[Auto memory](/docs/id/memory#auto-memory).** Pembelajaran yang disimpan Claude secara otomatis saat Anda bekerja, seperti preferensi Anda. 200 baris pertama atau 25KB MEMORY.md, mana pun yang lebih dulu, dimuat di awal setiap sesi.80* **[Auto memory](/docs/id/memory#auto-memory).** Pembelajaran yang disimpan Claude secara otomatis saat Anda bekerja, seperti preferensi Anda. 200 baris pertama atau 25KB MEMORY.md, mana pun yang lebih dulu, dimuat di awal setiap sesi.

81* **Ekstensi yang Anda konfigurasi.** [MCP servers](/docs/id/mcp) untuk layanan eksternal, [skills](/docs/id/skills) untuk workflow, [subagents](/docs/id/sub-agents) untuk pekerjaan yang didelegasikan, dan [Claude in Chrome](/docs/id/chrome) untuk interaksi browser.81* **Ekstensi yang Anda konfigurasi.** [MCP servers](/docs/id/mcp) untuk layanan eksternal, [skills](/docs/id/skills) untuk workflow, [subagents](/docs/id/sub-agents) untuk pekerjaan yang didelegasikan, dan [Claude in Chrome](/docs/id/chrome) untuk interaksi browser.

82 82 


86 Lingkungan dan interface86 Lingkungan dan interface

87</h2>87</h2>

88 88 

89Loop agentic, tools, dan kemampuan yang dijelaskan di atas sama di mana pun Anda menggunakan Claude Code. Apa yang berubah adalah di mana kode dieksekusi dan bagaimana Anda berinteraksi dengannya.89[Loop agentic](#the-agentic-loop), [tools](#tools), dan kemampuan adalah sama di mana pun Anda menggunakan Claude Code. Apa yang berubah adalah di mana kode dieksekusi dan bagaimana Anda berinteraksi dengannya.

90 90 

91<h3 id="execution-environments">91<h3 id="execution-environments">

92 Lingkungan eksekusi92 Lingkungan eksekusi

Details

615 615 

616* **Lompat ke file**: klik barisnya dalam daftar. Gulir panel dengan roda mouse. Ketika daftar file itu sendiri terlalu panjang untuk muat, gulir dengan `Alt+Up` dan `Alt+Down`, atau `Ctrl+Up` dan `Ctrl+Down`.616* **Lompat ke file**: klik barisnya dalam daftar. Gulir panel dengan roda mouse. Ketika daftar file itu sendiri terlalu panjang untuk muat, gulir dengan `Alt+Up` dan `Alt+Down`, atau `Ctrl+Up` dan `Ctrl+Down`.

617* **Tanyakan Claude tentang baris tertentu**: pilih baris tersebut di panel dengan mouse. Claude Code melampirkan pilihan ke prompt berikutnya Anda dan menampilkan jumlah baris di samping input sampai Anda mengirimnya.617* **Tanyakan Claude tentang baris tertentu**: pilih baris tersebut di panel dengan mouse. Claude Code melampirkan pilihan ke prompt berikutnya Anda dan menampilkan jumlah baris di samping input sampai Anda mengirimnya.

618 * Untuk mengirim prompt tanpa pilihan, pindahkan kursor ke tepat setelah indikator jumlah baris dan tekan `Backspace` untuk menghapusnya. Memerlukan Claude Code v2.1.271 atau lebih baru.

618* **Tampilkan file yang ditinggalkan panel**: daftar melewati file uji dan file yang dihasilkan, dan menciutkan perubahan dari sebelum sesi ini menjadi satu baris di bagian bawah. Klik salah satu baris hitungan untuk memperluasnya.619* **Tampilkan file yang ditinggalkan panel**: daftar melewati file uji dan file yang dihasilkan, dan menciutkan perubahan dari sebelum sesi ini menjadi satu baris di bagian bawah. Klik salah satu baris hitungan untuk memperluasnya.

619* **Ubah apa yang dibandingkan panel**: tekan `Ctrl+X B` untuk beralih dari perubahan sesi ini, ke perubahan yang tidak dikomitkan sebagai satu daftar, ke semuanya sejak cabang Anda terpisah dari cabang default. Claude Code mengingat pilihan untuk setiap proyek.620* **Ubah apa yang dibandingkan panel**: tekan `Ctrl+X B` untuk beralih dari perubahan sesi ini, ke perubahan yang tidak dikomitkan sebagai satu daftar, ke semuanya sejak cabang Anda terpisah dari cabang default. Claude Code mengingat pilihan untuk setiap proyek.

620 621 


650Di [panel chat VS Code extension](/docs/id/vs-code#use-the-prompt-box), `/btw` membuka panel daripada overlay yang dijelaskan bagian ini, dan Anda mengajukan pertanyaan lanjutan langsung di panel. Thread panel bertahan dari reload jendela, sesuai jadwal retensi yang dijelaskan halaman tersebut. Anda memerlukan extension pada v2.1.227 atau lebih baru. Versi extension yang lebih awal tidak menawarkan `/btw`.651Di [panel chat VS Code extension](/docs/id/vs-code#use-the-prompt-box), `/btw` membuka panel daripada overlay yang dijelaskan bagian ini, dan Anda mengajukan pertanyaan lanjutan langsung di panel. Thread panel bertahan dari reload jendela, sesuai jadwal retensi yang dijelaskan halaman tersebut. Anda memerlukan extension pada v2.1.227 atau lebih baru. Versi extension yang lebih awal tidak menawarkan `/btw`.

651 652 

652* **Tersedia saat Claude sedang bekerja**: Anda dapat menjalankan `/btw` bahkan saat Claude memproses respons. Pertanyaan sampingan berjalan secara independen dan tidak mengganggu giliran utama. Ini melihat semua yang ada dalam percakapan sejauh ini, kecuali balasan yang masih ditulis Claude.653* **Tersedia saat Claude sedang bekerja**: Anda dapat menjalankan `/btw` bahkan saat Claude memproses respons. Pertanyaan sampingan berjalan secara independen dan tidak mengganggu giliran utama. Ini melihat semua yang ada dalam percakapan sejauh ini, kecuali balasan yang masih ditulis Claude.

653* **Tidak ada akses alat**: pertanyaan sampingan hanya menjawab dari apa yang sudah ada dalam konteks. Claude tidak dapat membaca file, menjalankan perintah, atau mencari saat menjawab pertanyaan sampingan.654* **Tidak ada akses alat**: pertanyaan sampingan hanya menjawab dari apa yang sudah ada dalam konteks. Claude tidak dapat membaca file, menjalankan perintah, atau mencari saat menjawab pertanyaan sampingan. Jika Claude menulis panggilan alat sebagai teks bagaimanapun, jawaban berakhir dengan catatan bahwa tidak ada yang dieksekusi.

654* **Respons tunggal**: tidak ada giliran lanjutan dalam overlay. Untuk melanjutkan thread, ajukan pertanyaan `/btw` lainnya. Untuk melanjutkan dengan akses alat penuh dalam sesi lokal, tekan `f` untuk fork pertanyaan dan jawaban ini ke dalam [subagent latar belakang](/docs/id/sub-agents#fork-the-current-conversation).655* **Respons tunggal**: tidak ada giliran lanjutan dalam overlay. Untuk melanjutkan thread, ajukan pertanyaan `/btw` lainnya. Untuk melanjutkan dengan akses alat penuh dalam sesi lokal, tekan `f` untuk fork pertanyaan dan jawaban ini ke dalam [subagent latar belakang](/docs/id/sub-agents#fork-the-current-conversation).

655* **Biaya rendah**: saat [prompt cache](/docs/id/prompt-caching) percakapan hangat, pertanyaan sampingan biayanya sedikit di luar jawaban itu sendiri.656* **Biaya rendah**: saat [prompt cache](/docs/id/prompt-caching) percakapan hangat, pertanyaan sampingan biayanya sedikit di luar jawaban itu sendiri.

656 657 

jetbrains.md +1 −1

Details

231 Pertimbangan Keamanan231 Pertimbangan Keamanan

232</h2>232</h2>

233 233 

234Ketika Claude Code berjalan di JetBrains IDE dalam mode izin [`acceptEdits`](/docs/id/permission-modes#auto-approve-file-edits-with-acceptedits-mode), Claude Code mungkin dapat memodifikasi file konfigurasi IDE yang dapat dijalankan secara otomatis oleh IDE Anda. Ini dapat meningkatkan risiko menjalankan Claude Code dalam mode `acceptEdits` dan memungkinkan melewati prompt izin Claude Code untuk eksekusi bash.234Ketika Claude Code berjalan di JetBrains IDE dalam mode izin [`acceptEdits`](/docs/id/permission-modes#auto-approve-file-edits-with-acceptedits-mode), Claude Code mungkin dapat memodifikasi file konfigurasi IDE yang dapat dijalankan secara otomatis oleh IDE Anda. Ini dapat meningkatkan risiko menjalankan Claude Code dalam mode `acceptEdits` dan memungkinkan melewati prompt izin Claude Code untuk eksekusi Bash.

235 235 

236Saat berjalan di JetBrains IDEs, pertimbangkan:236Saat berjalan di JetBrains IDEs, pertimbangkan:

237 237 

llm-gateway.md +1 −1

Details

28* **Pencatatan audit**: catat setiap permintaan model untuk kepatuhan28* **Pencatatan audit**: catat setiap permintaan model untuk kepatuhan

29* **Peralihan penyedia**: ubah penyedia dalam konfigurasi gateway, tanpa menyentuh mesin pengembang29* **Peralihan penyedia**: ubah penyedia dalam konfigurasi gateway, tanpa menyentuh mesin pengembang

30 30 

31Semua ini kecuali peralihan penyedia berlaku apakah upstream adalah API Anthropic atau [penyedia cloud](/docs/id/third-party-integrations). Peralihan penyedia tanpa mengonfigurasi ulang mesin pengembang juga bergantung pada gateway yang mengekspos satu [endpoint format Anthropic](/docs/id/llm-gateway-protocol#api-formats) terlepas dari upstream; gateway yang mengekspos format penyedia sendiri mengikat konfigurasi klien ke penyedia itu.31Semua ini kecuali peralihan penyedia berlaku apakah upstream adalah API Anthropic atau [penyedia cloud](/docs/id/third-party-integrations). Peralihan penyedia tanpa mengonfigurasi ulang mesin pengembang juga bergantung pada gateway yang mengekspos satu [endpoint format Anthropic](/docs/id/llm-gateway-protocol#api-formats) terlepas dari upstream. Gateway yang mengekspos format penyedia sendiri mengikat konfigurasi klien ke penyedia itu dan mengubah [apa yang Claude Code kirimkan dan default mana yang diterapkannya](/docs/id/llm-gateway-protocol#how-the-connection-method-changes-client-behavior).

32 32 

33Pertukaran adalah bahwa gateway menjadi infrastruktur yang dioperasikan organisasi Anda. Claude Code menambahkan kemampuan dengan setiap rilis, dan gateway yang tidak meneruskannya merusak fitur yang sesuai, jadi produk gateway perlu tetap diperbarui seiring Claude Code berkembang. [Panduan kompatibilitas gateway](/docs/id/llm-gateway-protocol) mencakup apa yang harus diteruskan.33Pertukaran adalah bahwa gateway menjadi infrastruktur yang dioperasikan organisasi Anda. Claude Code menambahkan kemampuan dengan setiap rilis, dan gateway yang tidak meneruskannya merusak fitur yang sesuai, jadi produk gateway perlu tetap diperbarui seiring Claude Code berkembang. [Panduan kompatibilitas gateway](/docs/id/llm-gateway-protocol) mencakup apa yang harus diteruskan.

34 34 

Details

286 ```286 ```

287</CodeGroup>287</CodeGroup>

288 288 

289<h3 id="slack-web-and-remote-control">289<h3 id="slack-cloud-sessions-and-remote-control">

290 Slack, web, dan Remote Control290 Slack, sesi cloud, dan Remote Control

291</h3>291</h3>

292 292 

293[Claude Code di Slack](/docs/id/slack) dan [Claude Code di web](/docs/id/claude-code-on-the-web) adalah produk yang dihosting Anthropic yang selalu menggunakan API Anthropic; mereka bukan bagian dari penerapan gateway. Variabel gateway yang diatur dalam konfigurasi lingkungan sesi cloud tidak diterapkan. Jika lalu lintas Anda harus tetap di gateway, jangan aktifkan permukaan ini untuk pengguna tersebut.293[Claude Code di Slack](/docs/id/slack) dan [sesi cloud](/docs/id/claude-code-on-the-web) selalu menggunakan API Anthropic; mereka bukan bagian dari penerapan gateway. Variabel gateway yang diatur dalam konfigurasi lingkungan sesi cloud tidak diterapkan. Jika lalu lintas Anda harus tetap di gateway, jangan aktifkan permukaan ini untuk pengguna tersebut.

294 294 

295[Remote Control](/docs/id/remote-control) dan [voice dictation](/docs/id/voice-dictation) keduanya mengandalkan identitas claude.ai: Remote Control untuk memasangkan sesi langsung dengan akun Anda, dan voice dictation untuk menjangkau titik akhir transkripsi claude.ai. Mereka tidak tersedia sementara `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` aktif. Remote Control juga dinonaktifkan sementara `ANTHROPIC_BASE_URL` menunjuk ke host non-Anthropic, jadi masuk dengan claude.ai saja tidak cukup. Sebelum v2.1.196, URL dasar non-Anthropic tidak memblokir Remote Control.295[Remote Control](/docs/id/remote-control) dan [voice dictation](/docs/id/voice-dictation) keduanya mengandalkan identitas claude.ai: Remote Control untuk memasangkan sesi langsung dengan akun Anda, dan voice dictation untuk menjangkau titik akhir transkripsi claude.ai. Mereka tidak tersedia sementara `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` aktif. Remote Control juga dinonaktifkan sementara `ANTHROPIC_BASE_URL` menunjuk ke host non-Anthropic, jadi masuk dengan claude.ai saja tidak cukup. Sebelum v2.1.196, URL dasar non-Anthropic tidak memblokir Remote Control.

296 296 


587| Kesalahan `400` yang menamai `context_management`, `Extra inputs are not permitted`, atau bidang lain yang tidak dikenali | Gateway meneruskan permintaan ke upstream yang menolak bidang yang dikirim Claude Code ke titik akhir format Anthropic | Atur `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`, yang menekan sebagian besar bidang pra-rilis; lihat [feature pass-through](/docs/id/llm-gateway-protocol#feature-pass-through). Beberapa beta tidak dijaga oleh bendera ini; untuk itu, atur variabel penyedia `CLAUDE_CODE_USE_*` yang cocok sehingga Claude Code hanya mengirim apa yang diterima penyedia itu |587| Kesalahan `400` yang menamai `context_management`, `Extra inputs are not permitted`, atau bidang lain yang tidak dikenali | Gateway meneruskan permintaan ke upstream yang menolak bidang yang dikirim Claude Code ke titik akhir format Anthropic | Atur `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`, yang menekan sebagian besar bidang pra-rilis; lihat [feature pass-through](/docs/id/llm-gateway-protocol#feature-pass-through). Beberapa beta tidak dijaga oleh bendera ini; untuk itu, atur variabel penyedia `CLAUDE_CODE_USE_*` yang cocok sehingga Claude Code hanya mengirim apa yang diterima penyedia itu |

588| Kesalahan `400` yang menamai `thinking` atau `adaptive`, seperti `Input tag 'adaptive' found` | Build model upstream tidak menerima adaptive reasoning, yang diminta Claude Code untuk model Claude 4.6 dan lebih baru | Tingkatkan upstream gateway. Di Opus 4.6 dan Sonnet 4.6, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` berfungsi sebagai gantinya. Variabel kemampuan [konfigurasi model](/docs/id/model-config) hanya berlaku untuk konfigurasi penyedia, seperti `CLAUDE_CODE_USE_BEDROCK` dan `CLAUDE_CODE_USE_VERTEX`, bukan di belakang gateway `ANTHROPIC_BASE_URL` |588| Kesalahan `400` yang menamai `thinking` atau `adaptive`, seperti `Input tag 'adaptive' found` | Build model upstream tidak menerima adaptive reasoning, yang diminta Claude Code untuk model Claude 4.6 dan lebih baru | Tingkatkan upstream gateway. Di Opus 4.6 dan Sonnet 4.6, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` berfungsi sebagai gantinya. Variabel kemampuan [konfigurasi model](/docs/id/model-config) hanya berlaku untuk konfigurasi penyedia, seperti `CLAUDE_CODE_USE_BEDROCK` dan `CLAUDE_CODE_USE_VERTEX`, bukan di belakang gateway `ANTHROPIC_BASE_URL` |

589| Kesalahan `400` yang menyatakan batas konteks atau token dalam kata-kata gateway sendiri, seperti `ContextWindowExceededError` atau `prompt token count of N exceeds the limit of M` | Gateway memberlakukan konteks yang lebih kecil dari jendela asli model dan menulis ulang kesalahan upstream, jadi Claude Code tidak mengenalinya sebagai [kesalahan terlalu panjang](/docs/id/errors#prompt-is-too-long) dan tidak compact dan retry secara otomatis | Jalankan `/compact` untuk memulihkan sesi. Untuk mencegahnya, atur `CLAUDE_CODE_AUTO_COMPACT_WINDOW` ke batas gateway; Claude Code mengklem nilai ke setidaknya 100.000 token dan paling banyak jendela konteks model, jadi Anda tidak dapat mencocokkan batas gateway di bawah 100.000, dan `/compact` tetap menjadi pemulihan di sana. Juga atur `CLAUDE_CODE_MAX_OUTPUT_TOKENS` di bawah batas output model gateway |589| Kesalahan `400` yang menyatakan batas konteks atau token dalam kata-kata gateway sendiri, seperti `ContextWindowExceededError` atau `prompt token count of N exceeds the limit of M` | Gateway memberlakukan konteks yang lebih kecil dari jendela asli model dan menulis ulang kesalahan upstream, jadi Claude Code tidak mengenalinya sebagai [kesalahan terlalu panjang](/docs/id/errors#prompt-is-too-long) dan tidak compact dan retry secara otomatis | Jalankan `/compact` untuk memulihkan sesi. Untuk mencegahnya, atur `CLAUDE_CODE_AUTO_COMPACT_WINDOW` ke batas gateway; Claude Code mengklem nilai ke setidaknya 100.000 token dan paling banyak jendela konteks model, jadi Anda tidak dapat mencocokkan batas gateway di bawah 100.000, dan `/compact` tetap menjadi pemulihan di sana. Juga atur `CLAUDE_CODE_MAX_OUTPUT_TOKENS` di bawah batas output model gateway |

590| Kesalahan `400` pada setiap permintaan, dalam kata-kata gateway sendiri menolak skema input alat atau `pattern`-nya, pada Claude Code v2.1.265 hingga v2.1.267 | Dalam peluncuran bertahap pada versi tersebut, skema [alat Artifact](/docs/id/artifacts#availability) membawa ekspresi reguler dengan kelas karakter Unicode `\p{...}`. API Anthropic menerimanya, tetapi gateway atau upstream yang memeriksa `pattern` skema setiap alat dengan mesin regex-nya sendiri menolak seluruh permintaan | Perbarui ke v2.1.268 atau lebih baru, yang tidak mengirim ekspresi reguler. Pada versi yang terpengaruh, [matikan artifacts](/docs/id/artifacts#disable-artifacts), yang menghapus alat dan skemanya dari permintaan |

590| Model hilang dari pemilih `/model` | Nama model gateway tidak ada dalam daftar bawaan Claude Code, atau Claude Code menampilkan lineup [`modelPicker`](/docs/id/settings-reference#modelpicker) yang menggantikan opsi bawaan | Aktifkan [penemuan model gateway](#add-gateway-models-to-the-model-picker) atau tambahkan nama dengan variabel [konfigurasi model](/docs/id/model-config). Jika Claude Code menampilkan lineup `modelPicker` yang menggantikan, tambahkan model gateway ke dalamnya, atau minta administrator Anda untuk menambahkannya ketika pengaturan terkelola menyediakannya |591| Model hilang dari pemilih `/model` | Nama model gateway tidak ada dalam daftar bawaan Claude Code, atau Claude Code menampilkan lineup [`modelPicker`](/docs/id/settings-reference#modelpicker) yang menggantikan opsi bawaan | Aktifkan [penemuan model gateway](#add-gateway-models-to-the-model-picker) atau tambahkan nama dengan variabel [konfigurasi model](/docs/id/model-config). Jika Claude Code menampilkan lineup `modelPicker` yang menggantikan, tambahkan model gateway ke dalamnya, atau minta administrator Anda untuk menambahkannya ketika pengaturan terkelola menyediakannya |

591| `/fast` melaporkan `Fast mode unavailable due to network connectivity issues` sementara permintaan inference bekerja | Pemeriksaan ketersediaan [fast mode](/docs/id/fast-mode) berjalan langsung ke `api.anthropic.com` dan tidak mengikuti `ANTHROPIC_BASE_URL`, jadi egress langsung yang diblokir gagal pemeriksaan. Pesan yang sama muncul di jaringan terbuka ketika pemeriksaan menyajikan kunci yang dikeluarkan gateway dari `ANTHROPIC_API_KEY` atau `apiKeyHelper` dan Anthropic menolaknya | Daftar putih `api.anthropic.com` jika egress diblokir, atau atur variabel skip; untuk kunci gateway yang ditolak hanya variabel skip yang membantu. Lihat [gunakan fast mode di belakang proxy dan LLM gateway](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |592| `/fast` melaporkan `Fast mode unavailable due to network connectivity issues` sementara permintaan inference bekerja | Pemeriksaan ketersediaan [fast mode](/docs/id/fast-mode) berjalan langsung ke `api.anthropic.com` dan tidak mengikuti `ANTHROPIC_BASE_URL`, jadi egress langsung yang diblokir gagal pemeriksaan. Pesan yang sama muncul di jaringan terbuka ketika pemeriksaan menyajikan kunci yang dikeluarkan gateway dari `ANTHROPIC_API_KEY` atau `apiKeyHelper` dan Anthropic menolaknya | Daftar putih `api.anthropic.com` jika egress diblokir, atau atur variabel skip; untuk kunci gateway yang ditolak hanya variabel skip yang membantu. Lihat [gunakan fast mode di belakang proxy dan LLM gateway](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

592| `/fast` melaporkan `Fast mode has been disabled by your organization` dalam sesi yang diautentikasi dengan `ANTHROPIC_AUTH_TOKEN`, meskipun organisasi memiliki fast mode yang diaktifkan | Pemeriksaan ketersediaan memerlukan login claude.ai atau kunci API Anthropic; dengan hanya token bearer, Claude Code memperlakukan fast mode sebagai dinonaktifkan tanpa mengirim pemeriksaan | Atur `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; lihat [gunakan fast mode di belakang proxy dan LLM gateway](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |593| `/fast` melaporkan `Fast mode has been disabled by your organization` dalam sesi yang diautentikasi dengan `ANTHROPIC_AUTH_TOKEN`, meskipun organisasi memiliki fast mode yang diaktifkan | Pemeriksaan ketersediaan memerlukan login claude.ai atau kunci API Anthropic; dengan hanya token bearer, Claude Code memperlakukan fast mode sebagai dinonaktifkan tanpa mengirim pemeriksaan | Atur `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; lihat [gunakan fast mode di belakang proxy dan LLM gateway](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

Details

4 4 

5# Panduan kompatibilitas gateway Claude Code5# Panduan kompatibilitas gateway Claude Code

6 6 

7> Jaga gateway LLM tetap kompatibel dengan Claude Code: endpoint yang dipanggilnya, header dan field body yang harus diteruskan, dan apa yang rusak ketika dihapus.7> Jaga gateway LLM tetap kompatibel dengan Claude Code: endpoint yang dipanggilnya, header dan field body yang harus diteruskan, dan apa yang rusak saat dihapus.

8 8 

9Halaman ini mendokumentasikan permintaan yang dikirim Claude Code ke gateway, termasuk endpoint yang dipanggilnya, header dan field body yang harus diteruskan gateway, dan fitur mana yang berhenti berfungsi ketika tidak ada. Halaman ini ditulis untuk operator yang mengonfigurasi produk gateway agar bekerja dengan Claude Code.9Halaman ini mendokumentasikan permintaan yang dikirim Claude Code ke gateway, termasuk endpoint yang dipanggilnya, header dan field body yang harus diteruskan gateway, dan fitur mana yang berhenti berfungsi saat tidak ada. Halaman ini ditulis untuk operator yang mengonfigurasi produk gateway agar bekerja dengan Claude Code.

10 10 

11Gateway [Claude apps gateway](/docs/id/claude-apps-gateway), gateway yang dihosting sendiri oleh Anthropic, melayani referensi endpoint tersendiri di `GET /protocol`, mencakup endpoint sign-in, inference, managed settings, model discovery, dan telemetry gateway tersebut. Ini adalah dokumen terpisah dari panduan ini.11[Gateway aplikasi Claude](/docs/id/claude-apps-gateway), gateway yang di-host sendiri oleh Anthropic, melayani referensi endpoint-nya sendiri di `GET /protocol`, mencakup endpoint sign-in, inference, managed settings, model discovery, dan telemetry gateway tersebut. Ini adalah dokumen terpisah dari panduan ini.

12 12 

13<Note>13<Note>

14 * Untuk meluncurkan gateway yang sudah ada atau pihak ketiga untuk organisasi Anda, lihat [Meluncurkan gateway LLM](/docs/id/llm-gateway-rollout)14 * Untuk meluncurkan gateway yang ada atau pihak ketiga untuk organisasi Anda, lihat [Meluncurkan gateway LLM](/docs/id/llm-gateway-rollout)

15 * Jika Anda adalah pengembang individual yang mengautentikasi Claude Code ke gateway dengan kredensial yang diberikan kepada Anda, lihat [Menghubungkan Claude Code ke gateway LLM](/docs/id/llm-gateway-connect)15 * Jika Anda adalah pengembang individual yang mengautentikasi Claude Code ke gateway dengan kredensial yang diberikan kepada Anda, lihat [Hubungkan Claude Code ke gateway LLM](/docs/id/llm-gateway-connect)

16</Note>16</Note>

17 17 

18Halaman ini mencakup:18Halaman ini mencakup:

19 19 

20* [Format API](#api-formats) dan endpoint yang harus disajikan untuk masing-masing20* [Format API](#api-formats) dan endpoint yang harus dilayani untuk masing-masing

21* [Perilaku klien berdasarkan metode koneksi](#how-the-connection-method-changes-client-behavior): bagaimana ID model, nilai `anthropic-beta`, field permintaan, dan default berbeda antara format dan sign-in gateway aplikasi Claude

21* [Header permintaan](#request-headers): mana yang harus mencapai upstream dan mana yang dapat dikonsumsi gateway Anda22* [Header permintaan](#request-headers): mana yang harus mencapai upstream dan mana yang dapat dikonsumsi gateway Anda

22* [Blok atribusi prompt sistem](#system-prompt-attribution-block) dan cara berinteraksinya dengan prompt caching23* [Header respons](#response-headers): apa yang harus dikembalikan agar deteksi stall, retry, dan tampilan batas penggunaan berfungsi

23* [Penerusan fitur](#feature-pass-through): apa yang rusak ketika header atau field body dihapus24* Blok [atribusi prompt sistem](#system-prompt-attribution-block) dan bagaimana interaksinya dengan prompt caching

25* [Penerusan fitur](#feature-pass-through): apa yang rusak saat header atau field body dihapus

24* [Penemuan model](#model-discovery)26* [Penemuan model](#model-discovery)

25 27 

26Halaman ini menggunakan dua istilah untuk apa yang dilakukan gateway Anda dengan setiap header dan field body:28Halaman ini menggunakan dua istilah untuk apa yang dilakukan gateway Anda dengan setiap header dan field body:


34 Format API36 Format API

35</h2>37</h2>

36 38 

37Sebuah gateway harus mengekspos setidaknya salah satu dari format API berikut kepada klien Claude Code. Klien memilih format dan menunjukkan Claude Code ke gateway Anda dengan variabel di kolom Selected by dari tabel di bawah.39Gateway harus mengekspos setidaknya salah satu format API berikut kepada klien Claude Code. Klien memilih format dan menunjukkan Claude Code ke gateway Anda dengan variabel di kolom Selected by tabel di bawah.

38 40 

39Google Cloud's Agent Platform adalah endpoint Claude Google Cloud, sebelumnya Vertex AI; nama variabelnya tetap mempertahankan ejaan `VERTEX`.41Google Cloud's Agent Platform adalah endpoint Claude Google Cloud, sebelumnya Vertex AI; nama variabelnya tetap menggunakan ejaan `VERTEX`.

40 42 

41| Format | Selected by | Endpoints | Forward unchanged |43| Format | Selected by | Endpoints | Forward unchanged |

42| :--------------------------------------- | :-------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------- |44| :--------------------------------------- | :-------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------- |

43| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`, `/v1/messages/count_tokens` (optional) | `anthropic-beta` dan `anthropic-version` request headers |45| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`, `/v1/messages/count_tokens` (opsional) | header permintaan `anthropic-beta` dan `anthropic-version` |

44| Amazon Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` dengan `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`, `/model/{model}/invoke-with-response-stream`, `/model/{model}/count-tokens` (optional) | `anthropic_beta` dan `anthropic_version` request body fields |46| Amazon Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` dengan `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`, `/model/{model}/invoke-with-response-stream`, `/model/{model}/count-tokens` (opsional) | field body permintaan `anthropic_beta` dan `anthropic_version` |

45| Google Cloud's Agent Platform rawPredict | `ANTHROPIC_VERTEX_BASE_URL` dengan `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`, `:streamRawPredict`, `count-tokens:rawPredict` (optional) | `anthropic-beta` dan `anthropic-version` request headers, dan field `anthropic_version` request body |47| Google Cloud's Agent Platform rawPredict | `ANTHROPIC_VERTEX_BASE_URL` dengan `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`, `:streamRawPredict`, `count-tokens:rawPredict` (opsional) | header permintaan `anthropic-beta` dan `anthropic-version`, dan field body permintaan `anthropic_version` |

46 48 

47<h3 id="foundry-and-claude-platform-on-aws">49<h3 id="foundry-and-claude-platform-on-aws">

48 Foundry dan Claude Platform on AWS50 Foundry dan Claude Platform on AWS


51Microsoft Foundry dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws) mengimplementasikan format Anthropic Messages. Claude Code merutekan ke mereka melalui variabel mereka sendiri, `ANTHROPIC_FOUNDRY_BASE_URL` dan `ANTHROPIC_AWS_BASE_URL`, tetapi gateway yang berada di depan salah satu dari mereka mengimplementasikan baris Anthropic Messages di atas. Gateway yang berada di depan Claude Platform on AWS juga harus meneruskan header `anthropic-workspace-id`, yang [platform tersebut memerlukan pada setiap permintaan](/docs/id/claude-platform-on-aws).53Microsoft Foundry dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws) mengimplementasikan format Anthropic Messages. Claude Code merutekan ke mereka melalui variabel mereka sendiri, `ANTHROPIC_FOUNDRY_BASE_URL` dan `ANTHROPIC_AWS_BASE_URL`, tetapi gateway yang berada di depan salah satu dari mereka mengimplementasikan baris Anthropic Messages di atas. Gateway yang berada di depan Claude Platform on AWS juga harus meneruskan header `anthropic-workspace-id`, yang [platform tersebut memerlukan pada setiap permintaan](/docs/id/claude-platform-on-aws).

52 54 

53<h3 id="optional-endpoints-and-startup-traffic">55<h3 id="optional-endpoints-and-startup-traffic">

54 Endpoint opsional dan traffic startup56 Endpoint opsional dan lalu lintas startup

55</h3>57</h3>

56 58 

57Endpoint penghitungan token adalah satu-satunya yang opsional: ketika tidak ada, Claude Code kembali ke estimasi berbasis karakter dari penggunaan konteks.59Endpoint penghitungan token adalah satu-satunya yang opsional: ketika tidak ada, Claude Code kembali ke perkiraan berbasis karakter dari penggunaan konteks.

58 60 

59Cocokkan pada path, bukan URL lengkap:61Cocokkan pada path, bukan URL lengkap:

60 62 

61* Permintaan inferensi posting ke `/v1/messages?beta=true`63* Permintaan inferensi posting ke `/v1/messages?beta=true`

62* Metode Google Cloud's Agent Platform menambahkan sufiks ke path model penerbit, seperti dalam `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`64* Metode Google Cloud's Agent Platform menambahkan sufiks ke path model penerbit, seperti dalam `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`

63 65 

64Gateway juga melihat traffic startup best-effort yang dapat ditolak tanpa merusak apa pun. Gateway format Anthropic Messages menerima probe `HEAD /api/hello` connection-warming, yang Claude Code lewati ketika proxy HTTP atau sertifikat klien dikonfigurasi. Gateway format Amazon Bedrock menerima permintaan `GET /inference-profiles?type=SYSTEM_DEFINED` dan, ketika model yang dikonfigurasi adalah profil inferensi, pencarian `GET /inference-profiles/{profile}`.66Gateway juga melihat lalu lintas startup best-effort yang dapat ditolak tanpa merusak apa pun. Gateway format Anthropic Messages menerima probe pemanasan koneksi `HEAD /api/hello`, yang Claude Code lewati ketika proxy HTTP atau sertifikat klien dikonfigurasi. Gateway format Amazon Bedrock menerima permintaan `GET /inference-profiles?type=SYSTEM_DEFINED` dan, ketika model yang dikonfigurasi adalah profil inferensi, pencarian `GET /inference-profiles/{profile}`.

65 67 

66Pemeriksaan ketersediaan [fast mode](/docs/id/fast-mode) tidak pernah muncul dalam log gateway: ia memanggil `api.anthropic.com` secara langsung daripada mengikuti `ANTHROPIC_BASE_URL`, jadi pada jaringan yang memblokir egress langsung ke `api.anthropic.com`, fast mode dapat melaporkan kesalahan konektivitas sementara inferensi melalui gateway terus bekerja. [Pemeriksaan keamanan domain WebFetch](/docs/id/data-usage#webfetch-domain-safety-check) juga memanggil `api.anthropic.com` secara langsung. [Gunakan fast mode di belakang proxy dan gateway LLM](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) mencakup variabel yang memulihkannya.68Pemeriksaan ketersediaan [fast mode](/docs/id/fast-mode) tidak pernah muncul dalam log gateway: ia memanggil `api.anthropic.com` secara langsung daripada mengikuti `ANTHROPIC_BASE_URL`, jadi pada jaringan yang memblokir egress langsung ke `api.anthropic.com`, fast mode dapat melaporkan kesalahan konektivitas sementara inferensi melalui gateway terus bekerja. [Pemeriksaan keamanan domain WebFetch](/docs/id/data-usage#webfetch-domain-safety-check) juga memanggil `api.anthropic.com` secara langsung. [Gunakan fast mode di belakang proxy dan gateway LLM](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) mencakup variabel yang memulihkannya.

67 69 


71 73 

72Alirkan respons inferensi. Claude Code membaca aliran saat tiba, jadi jika gateway Anda membuffer respons lengkap sebelum meneruskannya, Claude Code macet.74Alirkan respons inferensi. Claude Code membaca aliran saat tiba, jadi jika gateway Anda membuffer respons lengkap sebelum meneruskannya, Claude Code macet.

73 75 

74Ketika klien berbicara format Amazon Bedrock, teruskan badan respons `InvokeModelWithResponseStream` dan header `Content-Type: application/vnd.amazon.eventstream` tanpa modifikasi, dan jangan konversi aliran ke server-sent events. Lihat [Streaming errors behind a gateway or proxy](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).76Ketika klien berbicara format Amazon Bedrock, teruskan body respons `InvokeModelWithResponseStream` dan header `Content-Type: application/vnd.amazon.eventstream` tanpa modifikasi, dan jangan konversi aliran ke server-sent events. Lihat [Streaming errors behind a gateway or proxy](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).

75 77 

76Teruskan ping keep-alive juga. Pada koneksi melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL`, Claude Code menghitung setiap byte yang gateway Anda teruskan, termasuk SSE `ping` events dan baris komentar, dan membatalkan aliran yang diam selama 300 detik secara default. Ping upstream adalah satu-satunya traffic selama jeda pemikiran panjang, jadi jika gateway Anda menghapus atau membuffer mereka, Claude Code membatalkan aliran selama jeda tersebut; [Automatic retries](/docs/id/errors#automatic-retries) mencakup apa yang dilaporkan aliran yang dibatalkan berdasarkan seberapa jauh respons telah maju. Upstream yang tidak mengirim ping sama sekali, seperti event-stream biner Amazon Bedrock, meninggalkan jeda tersebut tanpa apa pun untuk diteruskan. Ketika menerjemahkan dari upstream seperti itu, keluarkan `ping` events Anda sendiri selama celah senyap. Gateway yang dicapai melalui `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, atau `ANTHROPIC_FOUNDRY_BASE_URL` tidak dibungkus oleh watchdog tingkat byte ini, bahkan ketika mereka meneruskan format Anthropic Messages; di sana, [idle timeout 5 menit](/docs/id/env-vars) membatalkan aliran senyap sebagai gantinya, dan pada koneksi `ANTHROPIC_BEDROCK_BASE_URL` Anda dapat menambahkan watchdog byte dengan [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/id/env-vars).78Teruskan ping keep-alive juga. Pada koneksi melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL`, Claude Code menghitung setiap byte yang gateway Anda teruskan, termasuk event SSE `ping` dan baris komentar, dan membatalkan aliran yang diam selama 300 detik secara default. Ping upstream adalah satu-satunya lalu lintas selama jeda pemikiran panjang, jadi jika gateway Anda menghapus atau membuffer mereka, Claude Code membatalkan aliran selama jeda tersebut; [Automatic retries](/docs/id/errors#automatic-retries) mencakup apa yang dilaporkan aliran yang dibatalkan berdasarkan seberapa jauh respons telah maju. Upstream yang tidak mengirim ping sama sekali, seperti event-stream biner Amazon Bedrock, meninggalkan jeda tersebut tanpa apa pun untuk diteruskan. Ketika menerjemahkan dari upstream seperti itu, keluarkan event `ping` Anda sendiri selama celah senyap. Gateway yang dicapai melalui `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, atau `ANTHROPIC_FOUNDRY_BASE_URL` tidak dibungkus oleh watchdog tingkat byte ini, bahkan ketika mereka meneruskan format Anthropic Messages; di sana, [timeout idle 5 menit](/docs/id/env-vars) membatalkan aliran senyap sebagai gantinya, dan pada koneksi `ANTHROPIC_BEDROCK_BASE_URL` Anda dapat menambahkan watchdog byte dengan [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/id/env-vars).

77 79 

78<h3 id="format-mismatch-with-the-upstream">80<h3 id="format-mismatch-with-the-upstream">

79 Format mismatch dengan upstream81 Format mismatch dengan upstream

80</h3>82</h3>

81 83 

82Format apa yang digunakan klien menentukan apa yang diterima gateway Anda. Mode kegagalan umum adalah ketidaksesuaian antara format yang dikirim klien ke gateway Anda dan format yang diterima penyedia upstream di belakangnya.84Format mana yang digunakan klien menentukan apa yang diterima gateway Anda. Mode kegagalan umum adalah ketidaksesuaian antara format yang dikirim klien ke gateway Anda dan format yang diterima penyedia upstream di belakangnya.

83 85 

84* Ketika klien berbicara format Amazon Bedrock atau Google Cloud's Agent Platform, Claude Code mengirim hanya subset dari set kemampuan penuhnya yang diterima penyedia tersebut86* Ketika klien berbicara format Amazon Bedrock atau Google Cloud's Agent Platform, Claude Code mengirim hanya subset dari set kemampuan penuhnya yang diterima penyedia tersebut

85* Ketika klien berbicara format Anthropic Messages, Claude Code mengirim set lengkap, bahkan jika gateway Anda meneruskan ke upstream Amazon Bedrock atau Google Cloud's Agent Platform87* Ketika klien berbicara format Anthropic Messages, Claude Code mengirim set lengkap, bahkan jika gateway Anda meneruskan ke upstream Amazon Bedrock atau Google Cloud's Agent Platform

86 88 

87Menjembatani perbedaan itu adalah pekerjaan gateway Anda. [Feature pass-through](#feature-pass-through) menjelaskan apa yang rusak ketika gateway tidak melakukannya.89Menjembatani perbedaan itu adalah pekerjaan gateway Anda. [Feature pass-through](#feature-pass-through) menjelaskan apa yang rusak ketika tidak.

90 

91Jika upstream Anda adalah Amazon Bedrock atau Google Cloud's Agent Platform, Anda dapat menghindari penjembatanan dengan mengekspos format penyedia tersebut sebagai gantinya. [Route to a cloud provider through a gateway](/docs/id/llm-gateway-connect#route-to-a-cloud-provider-through-a-gateway) menunjukkan konfigurasi klien untuk format tersebut.

92 

93<h2 id="how-the-connection-method-changes-client-behavior">

94 Bagaimana metode koneksi mengubah perilaku klien

95</h2>

96 

97Cara pengembang terhubung ke gateway Anda menentukan ID model mana, nilai `anthropic-beta` mana, dan bidang permintaan mana yang dikirim Claude Code, serta default mana yang diterapkannya. Gateway Anda melihat salah satu dari tiga perilaku klien:

98 

99* **Format Amazon Bedrock atau Agent Platform**: pengembang menetapkan `CLAUDE_CODE_USE_BEDROCK=1` dengan `ANTHROPIC_BEDROCK_BASE_URL`, atau `CLAUDE_CODE_USE_VERTEX=1` dengan `ANTHROPIC_VERTEX_BASE_URL`, menunjuk ke gateway Anda. Claude Code menggunakan ID model, bidang permintaan, dan default penyedia tersebut.

100* **Format Anthropic Messages**: pengembang menetapkan `ANTHROPIC_BASE_URL` ke gateway Anda. Claude Code memperlakukan gateway sebagai Claude API dan tidak dapat mengetahui upstream mana yang Anda teruskan.

101* **Masuk ke gateway aplikasi Claude**: pengembang masuk ke [gateway aplikasi Claude](/docs/id/claude-apps-gateway). Gateway tersebut berbicara dalam format Anthropic Messages tetapi dapat merutekan ke upstream apa pun, jadi Claude Code hanya mengirimkan nilai `anthropic-beta` dan asumsi kemampuan model yang juga diterima Amazon Bedrock dan Agent Platform.

102 

103<h3 id="requests-and-defaults-by-connection-method">

104 Permintaan dan default menurut metode koneksi

105</h3>

106 

107Tabel di bawah membandingkan tiga metode koneksi, satu perilaku per baris. Tabel ini menghilangkan Microsoft Foundry dan Claude Platform di AWS, yang juga menggunakan format Anthropic Messages tetapi yang Claude Code jangkau melalui variabel mereka sendiri. Untuk itu, lihat halaman [Microsoft Foundry](/docs/id/microsoft-foundry) dan [Claude Platform di AWS](/docs/id/claude-platform-on-aws).

108 

109| Perilaku | Format Amazon Bedrock atau Agent Platform | Format Anthropic Messages | Masuk ke gateway aplikasi Claude |

110| :----------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------- |

111| ID model dalam permintaan secara default | Bentuk penyedia, seperti `us.anthropic.claude-opus-4-8` di Amazon Bedrock | ID Anthropic, seperti `claude-opus-4-8` | ID Anthropic |

112| Nilai `anthropic-beta` yang dikirim | Subset yang diterima Amazon Bedrock dan Agent Platform | Set lengkap yang dijelaskan di bawah [feature pass-through](#feature-pass-through), kecuali pengembang menetapkan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](#disable-pre-release-capabilities) | Subset yang diterima Amazon Bedrock dan Agent Platform |

113| Bidang permintaan untuk ID model yang tidak dikenali Claude Code, seperti alias gateway | Thinking dengan anggaran tetap daripada adaptive reasoning, dan tidak ada bidang effort atau context management | Semua yang diterima model Claude saat ini di Claude API, termasuk adaptive reasoning, effort, dan context management, yang upstream Amazon Bedrock atau Agent Platform dapat menolak | Sama dengan format Amazon Bedrock atau Agent Platform |

114| [TTL prompt cache](/docs/id/prompt-caching#choose-the-ttl-yourself) satu jam ketika pengembang memilih | Diminta melalui bidang `ttl` dalam `cache_control`, tanpa nilai beta | Diminta melalui bidang `ttl` plus nilai `extended-cache-ttl` dalam `anthropic-beta`, yang harus Anda teruskan | Lihat tabel [availability and limitations](/docs/id/claude-apps-gateway#availability-and-limitations) gateway aplikasi Claude |

115| Model untuk [background tasks](/docs/id/costs#background-token-usage) kecuali `ANTHROPIC_DEFAULT_HAIKU_MODEL` menetapkan satu | Model Sonnet default, atau model utama setelah satu dipilih, seperti yang dijelaskan halaman [Amazon Bedrock](/docs/id/amazon-bedrock#4-pin-model-versions) dan [Agent Platform](/docs/id/google-vertex-ai#5-pin-model-versions) | Model utama, atau model Haiku default ketika `ANTHROPIC_API_KEY` atau `apiKeyHelper` menyediakan kunci Anthropic Console dan `ANTHROPIC_AUTH_TOKEN` tidak diatur | Model utama |

116 

117Untuk fitur yang didukung setiap koneksi dan telemetri yang dikirimnya ke Anthropic secara default, lihat [Feature availability](/docs/id/feature-availability#availability-by-model-provider) dan [Default behaviors by API provider](/docs/id/data-usage#default-behaviors-by-api-provider).

118 

119<h3 id="settings-for-unrecognized-model-ids">

120 Pengaturan untuk ID model yang tidak dikenali

121</h3>

122 

123Dua pengaturan sisi klien mengubah apa yang diasumsikan Claude Code untuk ID model yang tidak dikenalinya, terlepas dari metode koneksi mana yang digunakan pengembang:

124 

125* **Context window**: Claude Code mengasumsikan 200K, atau 1M ketika ID membawa `[1m]`. Untuk mendeklarasikan jendela sebenarnya, lihat [Correct the window for a gateway or custom model ID](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id)

126* **Capabilities**: untuk memberikan alias gateway kemampuan model di belakangnya, petakan ID Anthropic model tersebut ke alias Anda dengan entri [`modelOverrides`](/docs/id/errors#unrecognized-model-id-on-a-request) dalam pengaturan yang Anda distribusikan. Untuk tempat variabel `ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` berlaku, lihat [feature pass-through](#feature-pass-through)

88 127 

89<h2 id="request-headers">128<h2 id="request-headers">

90 Header permintaan129 Header permintaan


115 154 

116Pengecualiannya adalah upstream non-Anthropic seperti Amazon Bedrock atau Google Cloud's Agent Platform, di mana menjembatani perbedaan skema adalah pekerjaan gateway; lihat [penerusan fitur](#feature-pass-through).155Pengecualiannya adalah upstream non-Anthropic seperti Amazon Bedrock atau Google Cloud's Agent Platform, di mana menjembatani perbedaan skema adalah pekerjaan gateway; lihat [penerusan fitur](#feature-pass-through).

117 156 

157<h2 id="response-headers">

158 Response headers

159</h2>

160 

161Claude Code membaca response headers ini untuk mendeteksi stalled streams, untuk memutuskan apakah dan kapan harus retry, dan untuk menampilkan usage limits. Tabel ini mencantumkan apa yang harus dikembalikan untuk masing-masing. Juga forward error response bodies tanpa modifikasi, sehingga [capability-rejection recovery](#automatic-retry-and-error-forwarding) Claude Code dapat mencocokkan wording error upstream.

162 

163| Header | Apa yang harus dikembalikan dan mengapa |

164| :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

165| `content-type` | Return `text/event-stream` pada streamed Anthropic Messages-format responses, dan `application/vnd.amazon.eventstream`, tanpa modifikasi, pada Amazon Bedrock-format responses, di mana [tipe yang berbeda gagal request](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). [Streaming](#streaming) mencantumkan koneksi mana yang menjalankan stall detection pada streams ini |

166| `retry-after` | Return integer seconds daripada HTTP date. Claude Code menunggu setidaknya selama itu sebelum [automatic retry](/docs/id/errors#automatic-retries) berikutnya, dan di luar [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/id/env-vars) sessions nilai di atas 60 menghentikan retries dan menampilkan error sekaligus |

167| `x-should-retry` | Pass nilai upstream melalui unchanged. Claude Code membaca header ini sebagai satu input ketika memutuskan apakah harus retry failed request: `true` menandai response retryable dan `false` menandai tidak retryable. Untuk retry counts, backoff, dan kegagalan mana yang Claude Code retry, lihat [automatic retries](/docs/id/errors#automatic-retries) |

168| `anthropic-ratelimit-unified-*` | Forward nilai upstream unchanged pada setiap response. Claude Code membacanya pada successful responses untuk menampilkan usage terhadap plan limits kepada developers yang signed in dengan claude.ai, dan pada `429` untuk membedakan plan limit atau spend cap dari temporary throttle; lihat [usage limits](/docs/id/errors#usage-limits) |

169 

118<h2 id="system-prompt-attribution-block">170<h2 id="system-prompt-attribution-block">

119 Blok atribusi prompt sistem171 Blok atribusi prompt sistem

120</h2>172</h2>


168Apa yang Claude Code lakukan setelah penolakan upstream tergantung pada apa yang ditolak:220Apa yang Claude Code lakukan setelah penolakan upstream tergantung pada apa yang ditolak:

169 221 

170* Ketika upstream menolak field `thinking`, pesan sistem mid-conversation, atau penanda `cache_control` pada pesan tersebut, Claude Code mengulangi permintaan dan menonaktifkan kemampuan yang ditolak untuk sisa percakapan222* Ketika upstream menolak field `thinking`, pesan sistem mid-conversation, atau penanda `cache_control` pada pesan tersebut, Claude Code mengulangi permintaan dan menonaktifkan kemampuan yang ditolak untuk sisa percakapan

171* Ketika upstream menolak [tanda tangan pemikiran](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), Claude Code mengulangi permintaan tanpa blok pemikiran sebelumnya percakapan dan menjaganya keluar dari setiap permintaan kemudian. Respons baru masih menyertakan pemikiran223* Ketika upstream menolak [tanda tangan pemikiran](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), termasuk dengan `400` yang pesannya mengatakan blok `bound to a different conversation`, Claude Code menghapus blok pemikiran sebelumnya dari permintaan, mengulangi, dan menjaganya keluar dari setiap permintaan kemudian. Respons baru masih menyertakan pemikiran

172* Claude Code tidak mengulangi penolakan manajemen konteks atau field skema alat, jadi kesalahan `400` tersebut mencapai pengembang224* Claude Code tidak mengulangi penolakan manajemen konteks atau field skema alat, jadi kesalahan `400` tersebut mencapai pengembang

173 225 

226Penolakan `bound to a different conversation` berasal dari pemeriksaan [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) API, yang gagal ketika konten `system`, `tools`, atau `messages` sebelumnya berbeda dari permintaan yang menghasilkan pemikiran. Gateway yang menulis ulang konten apa pun dari itu dapat menyebabkan penolakan itu sendiri; [Libraries, proxies, and gateways](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) mencakup apa yang harus dilewatkan tanpa perubahan.

227 

174Logika retry cocok dengan kata-kata kesalahan upstream, jadi teruskan body respons kesalahan tanpa modifikasi. Gateway yang membungkus kesalahan upstream dalam amplop miliknya sendiri memecah jalur pemulihan, bahkan ketika mempertahankan kode status, kecuali pesan amplop membawa token `capability_rejected:` yang stabil. [Gateway aplikasi Claude mengganti token tersebut untuk kata-kata kesalahan penyedia cloud](/docs/id/claude-apps-gateway-config#upstream-error-messages), misalnya `capability_rejected: prompt_too_long`.228Logika retry cocok dengan kata-kata kesalahan upstream, jadi teruskan body respons kesalahan tanpa modifikasi. Gateway yang membungkus kesalahan upstream dalam amplop miliknya sendiri memecah jalur pemulihan, bahkan ketika mempertahankan kode status, kecuali pesan amplop membawa token `capability_rejected:` yang stabil. [Gateway aplikasi Claude mengganti token tersebut untuk kata-kata kesalahan penyedia cloud](/docs/id/claude-apps-gateway-config#upstream-error-messages), misalnya `capability_rejected: prompt_too_long`.

175 229 

176<h3 id="disable-pre-release-capabilities">230<h3 id="disable-pre-release-capabilities">


209 Permintaan dan respons263 Permintaan dan respons

210</h3>264</h3>

211 265 

212Permintaan adalah `GET /v1/models?limit=1000` dengan timeout 3 detik, dan pengalihan apa pun diperlakukan sebagai kegagalan sehingga kredensial tidak dapat bocor ke target pengalihan. Gateway yang merespons lambat atau mengalihkan `/v1/models`, bahkan `http` ke `https`, gagal penemuan diam-diam; sajikan endpoint langsung di URL dasar yang dikonfigurasi.266Permintaan adalah `GET /v1/models?limit=1000` dengan timeout 3 detik secara default, dan pengalihan apa pun diperlakukan sebagai kegagalan sehingga kredensial tidak dapat bocor ke target pengalihan. Gateway yang merespons lebih lambat dari timeout, atau yang mengalihkan `/v1/models`, bahkan `http` ke `https`, gagal penemuan diam-diam; sajikan endpoint langsung di URL dasar yang dikonfigurasi.

267 

268Untuk memberikan gateway yang lambat waktu lebih lama, atur [`CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS`](/docs/id/env-vars#variables). Variabel memerlukan Claude Code v2.1.269 atau lebih baru.

213 269 

214Claude Code mengirim permintaan penemuan dengan kedua header kredensial di bawah dan menghilangkan header yang nilainya tidak diselesaikan. Mengirim kedua header memerlukan Claude Code v2.1.248 atau lebih baru. Versi sebelumnya mengirim hanya `Authorization` ketika `ANTHROPIC_AUTH_TOKEN` diatur dan hanya `x-api-key` sebaliknya.270Claude Code mengirim permintaan penemuan dengan kedua header kredensial di bawah dan menghilangkan header yang nilainya tidak diselesaikan. Mengirim kedua header memerlukan Claude Code v2.1.248 atau lebih baru. Versi sebelumnya mengirim hanya `Authorization` ketika `ANTHROPIC_AUTH_TOKEN` diatur dan hanya `x-api-key` sebaliknya.

215 271 

Details

282Setelah peluncuran, tiga jenis perubahan mencapai gateway seiring waktu. Masing-masing memiliki gejala untuk diperhatikan dan tindakan yang harus diambil.282Setelah peluncuran, tiga jenis perubahan mencapai gateway seiring waktu. Masing-masing memiliki gejala untuk diperhatikan dan tindakan yang harus diambil.

283 283 

284| Perubahan | Gejala ketika gateway belum mengikuti | Tindakan |284| Perubahan | Gejala ketika gateway belum mengikuti | Tindakan |

285| :------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |285| :------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

286| Rilis Claude Code baru menambahkan nilai `anthropic-beta` dan bidang badan permintaan | Pengembang melaporkan kesalahan `400` yang menyebutkan bidang baru setelah mereka memperbarui Claude Code; lihat [pass-through fitur](/docs/id/llm-gateway-protocol#feature-pass-through) | Teruskan header `anthropic-*` dan badan permintaan secara verbatim daripada allowlisting; uji rilis Claude Code baru terhadap gateway sebelum mencapai pengembang |286| Rilis Claude Code baru menambahkan nilai `anthropic-beta` dan bidang badan permintaan | Pengembang melaporkan kesalahan `400` yang menyebutkan bidang baru setelah mereka memperbarui Claude Code; lihat [pass-through fitur](/docs/id/llm-gateway-protocol#feature-pass-through) | Teruskan header `anthropic-*` dan badan permintaan secara verbatim daripada allowlisting; uji rilis Claude Code baru terhadap gateway sebelum mencapai pengembang, periksa area di [Rencanakan upgrade versi Claude Code](#plan-claude-code-version-upgrades) |

287| Model Claude baru menjadi tersedia | Pengembang memilih nama model baru mendapat `404`; pemilih `/model` tidak mencantumkannya | Tambahkan nama model ke konfigurasi perutean gateway, kemudian jalankan kembali [pemeriksaan perutean](#confirm-the-gateway-routes-your-models). Jika Anda mendistribusikan `ANTHROPIC_MODEL` atau variabel model default, perbarui pengaturan terkelola |287| Model Claude baru menjadi tersedia | Pengembang memilih nama model baru mendapat `404`; pemilih `/model` tidak mencantumkannya | Tambahkan nama model ke konfigurasi perutean gateway, kemudian jalankan kembali [pemeriksaan perutean](#confirm-the-gateway-routes-your-models). Jika Anda mendistribusikan `ANTHROPIC_MODEL` atau variabel model default, perbarui pengaturan terkelola |

288| Kredensial kedaluwarsa atau perlu rotasi | Semua permintaan pengembang mulai gagal dengan `401` dari upstream | Rotasi kredensial penyedia gateway sesuai jadwal sendiri; kunci pengembang berputar di gateway, dan [`apiKeyHelper`](/docs/id/llm-gateway-connect#rotate-credentials-with-apikeyhelper) menangani rotasi per pengembang tanpa mendistribusikan ulang pengaturan |288| Kredensial kedaluwarsa atau perlu rotasi | Semua permintaan pengembang mulai gagal dengan `401` dari upstream | Rotasi kredensial penyedia gateway sesuai jadwal sendiri; kunci pengembang berputar di gateway, dan [`apiKeyHelper`](/docs/id/llm-gateway-connect#rotate-credentials-with-apikeyhelper) menangani rotasi per pengembang tanpa mendistribusikan ulang pengaturan |

289 289 

290Saat mengukur batas laju per kunci, akun untuk klien [mencoba ulang kegagalan transien](/docs/id/errors#automatic-retries), termasuk respons `429`, hingga 10 kali dengan backoff, menghormati `Retry-After`. Simpan [panduan kompatibilitas](/docs/id/llm-gateway-protocol) sebagai referensi untuk apa yang dikirim setiap rilis Claude Code.290Saat mengukur batas laju per kunci, akun untuk klien [mencoba ulang kegagalan transien](/docs/id/errors#automatic-retries), termasuk respons `429`, hingga 10 kali dengan backoff, menghormati `Retry-After`. Simpan [panduan kompatibilitas](/docs/id/llm-gateway-protocol) sebagai referensi untuk apa yang dikirim setiap rilis Claude Code.

291 291 

292<h3 id="plan-claude-code-version-upgrades">

293 Rencanakan upgrade versi Claude Code

294</h3>

295 

296Beberapa perilaku Claude Code dibangun ke dalam versi yang diinstal daripada diatur di gateway Anda, jadi memindahkan pengembang ke rilis baru dapat mengubah perilaku di seluruh deployment Anda bahkan ketika konfigurasi gateway belum berubah. Untuk mengontrol kapan itu terjadi, pin pengembang ke versi yang telah diuji dengan [`requiredMaximumVersion`](/docs/id/settings-reference#requiredmaximumversion), atau dengan [`DISABLE_UPDATES`](/docs/id/setup#disable-auto-updates) jika Anda mendistribusikan Claude Code melalui saluran Anda sendiri. Sebelum Anda menaikkan pin, baca entri [changelog](/docs/en/changelog) rilis baru dan [uji terhadap gateway](#test-claude-code-against-the-gateway).

297 

298Ketika Anda menguji rilis, header baru atau bidang permintaan yang ditolak gateway muncul sebagai kesalahan `400` yang dijelaskan dalam [Pertahankan gateway](#maintain-the-gateway). Tabel di bawah mencakup perubahan yang bergantung pada versi yang tidak menghasilkan kesalahan, dengan pengaturan yang membuat masing-masing tetap konstan di seluruh upgrade.

299 

300| Area | Apa yang dapat berubah ketika pengembang upgrade | Pengaturan yang membuat tetap konstan |

301| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

302| Default flag fitur | Sesi yang [tidak mengambil flag fitur dari Anthropic](/docs/id/env-vars#features-that-need-feature-flag-fetching), seperti sesi di penyedia cloud atau dengan telemetri dimatikan, menggunakan default flag yang dibangun ke dalam versi yang diinstal. Ketika rilis mengubah salah satu default tersebut, perilaku berubah untuk pengembang tersebut segera setelah mereka upgrade | Pin versi itu sendiri, `requiredMaximumVersion` atau `DISABLE_UPDATES` |

303| Asumsi kemampuan model | ID model yang tidak dikenali versi yang diinstal, seperti alias gateway `prod-opus`, berjalan pada asumsi default untuk [adaptive reasoning](/docs/id/model-config#adaptive-reasoning-and-fixed-thinking-budgets), parameter effort, dan [jendela konteks](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) hingga versi yang lebih baru mengenali ID atau Anda memetakannya | Rute ID model Anthropic di gateway, atau tambahkan entri [`modelOverrides`](/docs/id/model-config#override-model-ids-per-version) yang memetakan ID model Anthropic ke alias Anda. Pada koneksi penyedia cloud, Anda dapat sebagai gantinya [mendeklarasikan kemampuan model yang di-pin](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

304| Model default dan alias | Model yang dimulai sesi baru secara default, dan model yang alias seperti `opus` dan `sonnet` selesaikan, [dibangun ke dalam setiap versi](/docs/id/model-config#pin-models-for-third-party-deployments) dan dapat berubah ketika pengembang upgrade | [`ANTHROPIC_DEFAULT_MODEL`](/docs/id/model-config#set-a-default-model-for-new-sessions) untuk model yang dimulai sesi baru, dan [variabel `ANTHROPIC_DEFAULT_*_MODEL`](/docs/id/model-config#environment-variables), seperti `ANTHROPIC_DEFAULT_OPUS_MODEL`, untuk apa yang setiap alias selesaikan. `ANTHROPIC_DEFAULT_MODEL` memerlukan Claude Code v2.1.236 atau lebih baru |

305 

292<h2 id="related-resources">306<h2 id="related-resources">

293 Sumber daya terkait307 Sumber daya terkait

294</h2>308</h2>

managed-mcp.md +26 −12

Details

48 Kontrol eksklusif dengan managed-mcp.json48 Kontrol eksklusif dengan managed-mcp.json

49</h2>49</h2>

50 50 

51Jika Anda menerapkan file `managed-mcp.json`, Claude Code hanya memuat server yang didefinisikan file tersebut, server yang Anda [sediakan melalui `managedMcpServers`](#provide-servers-through-managed-settings), ditambah server dalam proses apa pun yang aplikasi yang memulai sesi mendaftarkan, seperti server Claude Code sendiri dari ekstensi VS Code atau [konektor yang dikirimkan aplikasi desktop](/docs/id/mcp#how-connectors-reach-claude-code). Pengguna tidak dapat menambah, memodifikasi, atau menggunakan server MCP lainnya, termasuk server yang disediakan plugin dan server yang diteruskan dengan [flag CLI `--mcp-config`](/docs/id/cli-reference#cli-flags). File ini juga menekan konektor claude.ai yang Claude Code ambil sendiri kecuali Anda [mengizinkannya bersama set yang dikelola](#allow-claude-ai-connectors-alongside-the-managed-set).51Ketika Anda menerapkan file `managed-mcp.json`, Claude Code hanya memuat server MCP berikut:

52 

53* Server yang didefinisikan file

54* Server yang Anda [sediakan melalui `managedMcpServers`](#provide-servers-through-managed-settings)

55* Server dalam proses yang aplikasi yang memulai sesi mendaftarkan, seperti server Claude Code sendiri dari ekstensi VS Code atau [konektor yang dikirimkan aplikasi desktop](/docs/id/mcp#how-connectors-reach-claude-code)

56 

57Pengguna tidak dapat menambah, memodifikasi, atau menggunakan server MCP lainnya, termasuk server yang disediakan plugin dan server yang diteruskan dengan [flag CLI `--mcp-config`](/docs/id/cli-reference#cli-flags). File ini juga menekan konektor claude.ai yang Claude Code ambil sendiri kecuali Anda [mengizinkannya bersama set yang dikelola](#allow-claude-ai-connectors-alongside-the-managed-set).

52 58 

53<h3 id="deploy-managed-mcp-json">59<h3 id="deploy-managed-mcp-json">

54 Terapkan managed-mcp.json60 Terapkan managed-mcp.json


103 Server yang diteruskan dengan `--mcp-config` atau `--strict-mcp-config`109 Server yang diteruskan dengan `--mcp-config` atau `--strict-mcp-config`

104</h3>110</h3>

105 111 

106Ketika sesi menerima server melalui `--mcp-config` sementara `managed-mcp.json` diterapkan, apa yang dilihat pengguna berbeda antara workstation dan sesi cloud:112Ketika sesi menerima server melalui `--mcp-config` sementara `managed-mcp.json` yang dapat dibaca dan diurai Claude Code diterapkan, apa yang dilihat pengguna berbeda antara workstation dan sesi cloud:

107 113 

108* Di workstation, Claude Code keluar saat startup dengan `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.114* Di workstation, Claude Code keluar saat startup dengan `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

109* Dalam [sesi cloud](/docs/id/claude-code-on-the-web) di host tempat file diterapkan, seperti [runner yang di-host sendiri](/docs/id/self-hosted-environments-configuration#mcp-servers), Claude Code dimulai dengan server yang dikelola saja dan melewati konektor claude.ai dan server lainnya yang host cloud kirimkan melalui `--mcp-config`. Tidak ada dalam sesi yang memberi tahu pengguna server mana yang ditinggalkan. Claude Code menamakannya dalam peringatan di stderr-nya, yang runner yang di-host sendiri catat pada tingkat log `debug`.115* Dalam [sesi cloud](/docs/id/claude-code-on-the-web) di host tempat file diterapkan, seperti [runner yang di-host sendiri](/docs/id/self-hosted-environments-configuration#mcp-servers), Claude Code dimulai dengan server yang dikelola saja dan melewati konektor claude.ai dan server lainnya yang host cloud kirimkan melalui `--mcp-config`. Tidak ada dalam sesi yang memberi tahu pengguna server mana yang ditinggalkan. Claude Code menamakannya dalam peringatan di stderr-nya, yang runner yang di-host sendiri catat pada tingkat log `debug`.

110 116 

111Jika pengguna melewati `--strict-mcp-config`, Claude Code keluar saat startup di workstation dan dalam sesi cloud, karena flag itu meminta untuk mengganti set yang dikelola.117Flag `--strict-mcp-config` meminta untuk mengganti set yang dikelola. Jika pengguna meneruskannya sementara file seperti itu diterapkan, Claude Code keluar saat startup di workstation dan dalam sesi cloud.

112 118 

113<h3 id="how-allowlists-and-denylists-apply-to-the-managed-set">119<h3 id="how-allowlists-and-denylists-apply-to-the-managed-set">

114 Bagaimana allowlist dan denylist berlaku untuk set yang dikelola120 Bagaimana allowlist dan denylist berlaku untuk set yang dikelola


129 135 

130Untuk mengonfirmasi file berlaku, jalankan dua pemeriksaan pada mesin yang dikelola:136Untuk mengonfirmasi file berlaku, jalankan dua pemeriksaan pada mesin yang dikelola:

131 137 

1321. `claude mcp list` menampilkan hanya server di `managed-mcp.json`, ditambah yang Anda sediakan melalui `managedMcpServers`. Jika server pengguna sendiri masih muncul, file tidak dibaca; periksa jalur dan izin.1381. `claude mcp list` menampilkan hanya server di `managed-mcp.json`, ditambah yang Anda sediakan melalui `managedMcpServers`. Dua hasil lainnya berarti ada yang salah:

139 * Jika server pengguna sendiri masih muncul, Claude Code tidak membaca file, jadi periksa jalurnya dan izin pada direktori induknya.

140 * Jika server file tidak muncul dan bagian `MCP config diagnostics` menandai konfigurasi perusahaan sebagai gagal diurai, Claude Code tidak dapat membaca atau mengurai file. Perbaiki kesalahan yang bagian itu namai, kemudian minta pengguna untuk memulai ulang Claude Code.

1332. `claude mcp add --transport http test https://example.com/mcp` gagal dengan `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers`. URL tidak perlu menjadi server nyata, karena pemeriksaan kebijakan menolak perintah sebelum apa pun dihubungi.1412. `claude mcp add --transport http test https://example.com/mcp` gagal dengan `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers`. URL tidak perlu menjadi server nyata, karena pemeriksaan kebijakan menolak perintah sebelum apa pun dihubungi.

134 142 

135<h3 id="disable-mcp-entirely">143<h3 id="disable-mcp-entirely">


267 275 

268Untuk menerapkan server kepada pengguna, gunakan [`managed-mcp.json`](#exclusive-control-with-managed-mcp-json) atau [`managedMcpServers`](#provide-servers-through-managed-settings). Kedua daftar juga memfilter server yang dilewatkan dengan flag CLI [`--mcp-config`](/docs/id/cli-reference#cli-flags), kecuali entri `type: "sdk"` dalam proses; `--strict-mcp-config` membatasi file konfigurasi mana yang dimuat dan tidak melewati salah satu daftar.276Untuk menerapkan server kepada pengguna, gunakan [`managed-mcp.json`](#exclusive-control-with-managed-mcp-json) atau [`managedMcpServers`](#provide-servers-through-managed-settings). Kedua daftar juga memfilter server yang dilewatkan dengan flag CLI [`--mcp-config`](/docs/id/cli-reference#cli-flags), kecuali entri `type: "sdk"` dalam proses; `--strict-mcp-config` membatasi file konfigurasi mana yang dimuat dan tidak melewati salah satu daftar.

269 277 

270Untuk membuat allowlist berwenang, atur `allowedMcpServers` dan `allowManagedMcpServersOnly: true` bersama-sama dalam [sumber pengaturan terkelola](/docs/id/admin-setup#decide-how-settings-reach-devices), seperti pengaturan yang dikelola server atau file `managed-settings.json` yang diterapkan. [Batasi allowlist ke pengaturan terkelola saja](#restrict-the-allowlist-to-managed-settings-only) menunjukkan konfigurasi. Tanpa `allowManagedMcpServersOnly`, allowlist dari setiap cakupan pengaturan bergabung, termasuk `~/.claude/settings.json` pengguna sendiri, jadi pengguna dapat memperluas apa yang allowlist Anda izinkan. Denylist bergabung dari setiap cakupan terlepas.278Untuk membuat allowlist berwenang, atur `allowedMcpServers` dan `allowManagedMcpServersOnly: true` bersama-sama dalam [sumber pengaturan terkelola](/docs/id/admin-setup#decide-how-settings-reach-devices), seperti pengaturan yang dikelola server atau file `managed-settings.json` yang diterapkan.

279 

280Kunci berlaku dari setiap sumber terkelola admin, jadi penguncian dalam file yang diterapkan masih berlaku ketika pengaturan yang dikelola server yang tidak menyebutkan MCP juga digunakan. Saat kunci aktif, allowlist terkelola berasal dari sumber admin dengan peringkat tertinggi yang menetapkan satu. Membaca kunci dan allowlist di seluruh sumber memerlukan Claude Code v2.1.273 atau lebih baru.

281 

282[Batasi allowlist ke pengaturan terkelola saja](#restrict-the-allowlist-to-managed-settings-only) menunjukkan konfigurasi.

283 

284Tanpa `allowManagedMcpServersOnly`, allowlist dari setiap cakupan pengaturan bergabung, termasuk `~/.claude/settings.json` pengguna sendiri, jadi pengguna dapat memperluas apa yang allowlist Anda izinkan. Denylist bergabung dari setiap cakupan terlepas.

271 285 

272<Note>286<Note>

273 `allowManagedMcpServersOnly` terpisah dari `allowManagedPermissionRulesOnly`, yang mengunci [aturan izin](/docs/id/permissions#managed-settings) saja. Menetapkan flag itu tidak memberlakukan allowlist MCP.287 `allowManagedMcpServersOnly` terpisah dari `allowManagedPermissionRulesOnly`, yang mengunci [aturan izin](/docs/id/permissions#managed-settings) saja. Menetapkan flag itu tidak memberlakukan allowlist MCP.


300 314 

301Validasi `serverName` berbeda antara dua daftar:315Validasi `serverName` berbeda antara dua daftar:

302 316 

303* Di `deniedMcpServers`, `serverName` menerima string apa pun yang tidak kosong, jadi Anda dapat memblokir [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) berdasarkan nama tampilan mereka. Misalnya, `{ "serverName": "claude.ai Slack" }` memblokir konektor Slack. Lebih suka entri `serverUrl` ketika Anda memerlukan penolakan yang kuat terhadap penggantian nama, atau ketika nama konektor bertabrakan dan mendapatkan akhiran ` (N)`.317* Di `deniedMcpServers`, `serverName` menerima string apa pun yang tidak kosong tanpa spasi di awal atau akhir, jadi Anda dapat memblokir [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) berdasarkan nama tampilan mereka. Misalnya, `{ "serverName": "claude.ai Slack" }` memblokir konektor Slack. Lebih suka entri `serverUrl` ketika Anda memerlukan penolakan yang kuat terhadap penggantian nama, atau ketika nama konektor bertabrakan dan mendapatkan akhiran ` (N)`.

304* Di `allowedMcpServers`, `serverName` terbatas pada huruf, angka, tanda hubung, dan garis bawah. Gunakan `serverUrl` untuk allowlist konektor claude.ai yang Claude Code ambil sendiri; untuk konektor yang host cloud berikan ke sesi yang di-host sendiri, gunakan entri yang tercantum di bawah [Lalu lintas konektor meninggalkan jaringan Anda](/docs/id/self-hosted-environments-deploy#connector-traffic-leaves-your-network) sebagai gantinya.318* Di `allowedMcpServers`, `serverName` terbatas pada huruf, angka, tanda hubung, dan garis bawah. Gunakan `serverUrl` untuk allowlist konektor claude.ai yang Claude Code ambil sendiri; untuk konektor yang host cloud berikan ke sesi yang di-host sendiri, gunakan entri yang tercantum di bawah [Lalu lintas konektor meninggalkan jaringan Anda](/docs/id/self-hosted-environments-deploy#connector-traffic-leaves-your-network) sebagai gantinya.

305 319 

306Untuk mematikan semua konektor claude.ai yang Claude Code ambil sendiri, lihat [`disableClaudeAiConnectors`](/docs/id/mcp#disable-claude-ai-connectors).320Untuk mematikan semua konektor claude.ai yang Claude Code ambil sendiri, lihat [`disableClaudeAiConnectors`](/docs/id/mcp#disable-claude-ai-connectors).


311 325 

312Sebelum memuat server, termasuk yang dari `managed-mcp.json`, Claude Code menjalankan tiga pemeriksaan di bawah ini secara berurutan. Ini menjalankannya lagi ketika pengguna menghubungkan kembali server atau menghidupkan kembali yang dinonaktifkan di `/mcp`. Server `type: "sdk"` dalam proses, yang [aplikasi yang memulai sesi mendaftarkan](/docs/id/mcp#how-connectors-reach-claude-code), melewati ketiganya.326Sebelum memuat server, termasuk yang dari `managed-mcp.json`, Claude Code menjalankan tiga pemeriksaan di bawah ini secara berurutan. Ini menjalankannya lagi ketika pengguna menghubungkan kembali server atau menghidupkan kembali yang dinonaktifkan di `/mcp`. Server `type: "sdk"` dalam proses, yang [aplikasi yang memulai sesi mendaftarkan](/docs/id/mcp#how-connectors-reach-claude-code), melewati ketiganya.

313 327 

3141. **Gabungkan daftarnya.** Entri allowlist dan denylist dari setiap cakupan pengaturan bergabung menjadi satu allowlist dan satu denylist, dengan daftar cakupan terkelola berasal dari [sumber terkelola atau sumber yang Claude Code terapkan](/docs/id/managed-settings#how-claude-code-combines-managed-sources). Ketika `allowManagedMcpServersOnly` adalah `true`, hanya allowlist terkelola yang disimpan; denylist selalu bergabung dari setiap cakupan.3281. **Gabungkan daftarnya.** Entri allowlist dan denylist dari setiap cakupan pengaturan bergabung menjadi satu allowlist dan satu denylist. Ketika `allowManagedMcpServersOnly` adalah `true`, hanya allowlist terkelola yang disimpan; denylist selalu bergabung dari setiap cakupan. Ketika lebih dari satu sumber terkelola ada, [Kunci dibaca dari setiap sumber admin](/docs/id/managed-settings#keys-read-from-every-admin-source) mengatakan yang mana dari mereka yang memasok daftar cakupan terkelola.

3152. **Periksa denylist.** Server yang cocok dengan entri denylist apa pun, berdasarkan URL, perintah, atau nama, diblokir. Tidak ada yang menggantikan kecocokan denylist.3292. **Periksa denylist.** Server yang cocok dengan entri denylist apa pun, berdasarkan URL, perintah, atau nama, diblokir. Tidak ada yang menggantikan kecocokan denylist.

3163. **Periksa allowlist.** Jika `allowedMcpServers` tidak diatur di mana pun, setiap server yang melewati denylist dimuat. Jika diatur, apa yang harus cocok dengan server tergantung pada jenisnya, ditampilkan dalam tabel di bawah.3303. **Periksa allowlist.** Jika `allowedMcpServers` tidak diatur di mana pun, setiap server yang melewati denylist dimuat. Jika diatur, apa yang harus cocok dengan server tergantung pada jenisnya, ditampilkan dalam tabel di bawah.

317 331 


503| Server ada di daftar penolakan dan pengguna menjalankan `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |517| Server ada di daftar penolakan dan pengguna menjalankan `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |

504| Server tidak ada di daftar izin dan pengguna menjalankan `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |518| Server tidak ada di daftar izin dan pengguna menjalankan `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |

505| Pengguna menjalankan `claude mcp remove` pada server dari `managedMcpServers` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |519| Pengguna menjalankan `claude mcp remove` pada server dari `managedMcpServers` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |

506| Server yang sebelumnya dikonfigurasi sekarang diblokir oleh kebijakan | Server menghilang secara diam-diam dari `/mcp` dan `claude mcp list` tanpa peringatan |520| Server yang sebelumnya dikonfigurasi sekarang diblokir oleh kebijakan | Server menghilang dari `/mcp` dan `claude mcp list` |

507| Server diblokir saat sesi sedang berjalan, dan pengguna memilih **Reconnect** atau menyalakannya kembali di `/mcp` | [`MCP server <name> is blocked by enterprise managed policy`](/docs/id/errors#mcp-server-is-blocked-by-enterprise-managed-policy) |521| Server diblokir saat sesi sedang berjalan, dan pengguna memilih **Reconnect** atau menyalakannya kembali di `/mcp` | [`MCP server <name> is blocked by enterprise managed policy`](/docs/id/errors#mcp-server-is-blocked-by-enterprise-managed-policy) |

508 522 

509Ketika server menghilang secara diam-diam, pengguna tidak mendapatkan sinyal bahwa kebijakan adalah alasannya, jadi beritahu pengguna yang terkena dampak server mana yang diblokir ketika Anda meluncurkan pembatasan baru.523Ketika server menghilang secara diam-diam, pengguna tidak mendapatkan sinyal bahwa kebijakan adalah alasannya, jadi beritahu pengguna yang terkena dampak server mana yang diblokir ketika Anda meluncurkan pembatasan baru.


521Setiap file dan pengaturan yang dibahas halaman ini, apa yang dikontrolnya, dan cara mengirimkannya:535Setiap file dan pengaturan yang dibahas halaman ini, apa yang dikontrolnya, dan cara mengirimkannya:

522 536 

523| Permukaan | Apa yang dikontrol | Di mana itu berada | Cara mengirimkan |537| Permukaan | Apa yang dikontrol | Di mana itu berada | Cara mengirimkan |

524| :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |538| :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

525| `managed-mcp.json` | Set server tetap, kontrol eksklusif | Jalur sistem: `/Library/Application Support/ClaudeCode/`, `/etc/claude-code/`, atau `C:\Program Files\ClaudeCode\` | MDM, GPO, manajemen armada, atau proses apa pun dengan hak istimewa administrator. Tidak dapat diatur melalui pengaturan yang dikelola server |539| `managed-mcp.json` | Set server tetap, kontrol eksklusif | Jalur sistem: `/Library/Application Support/ClaudeCode/`, `/etc/claude-code/`, atau `C:\Program Files\ClaudeCode\` | MDM, GPO, manajemen armada, atau proses apa pun dengan hak istimewa administrator. Tidak dapat diatur melalui pengaturan yang dikelola server |

526| `managedMcpServers` | Server jarak jauh yang disediakan untuk setiap pengguna bersama dengan server mereka sendiri | Hanya sumber pengaturan yang dikelola; pengaturan tidak berpengaruh di tempat lain | [Sumber pengaturan yang dikelola](/docs/id/admin-setup#decide-how-settings-reach-devices): pengaturan yang dikelola server, kebijakan gateway, `managed-settings.json`, profil MDM, atau registri HKLM |540| `managedMcpServers` | Server jarak jauh yang disediakan untuk setiap pengguna bersama dengan server mereka sendiri | Hanya sumber pengaturan yang dikelola; pengaturan tidak berpengaruh di tempat lain | [Sumber pengaturan yang dikelola](/docs/id/admin-setup#decide-how-settings-reach-devices): pengaturan yang dikelola server, kebijakan gateway, `managed-settings.json`, profil MDM, atau registri HKLM |

527| `allowedMcpServers` | Daftar izin server yang diizinkan | Cakupan [pengaturan](/docs/id/settings#where-settings-live) apa pun; Claude Code menggabungkan daftar dari setiap cakupan kecuali `allowManagedMcpServersOnly` diatur, dan mengambil daftar cakupan yang dikelola dari [sumber yang dikelola yang dipilihnya](/docs/id/managed-settings#precedence-within-the-managed-tier) atau [menggabungkan](/docs/id/managed-settings#compose-every-managed-source) | Untuk penegakan, [sumber pengaturan yang dikelola](/docs/id/admin-setup#decide-how-settings-reach-devices): pengaturan yang dikelola server, `managed-settings.json`, profil MDM, atau registri |541| `allowedMcpServers` | Daftar izin server yang diizinkan | Cakupan [pengaturan](/docs/id/settings#where-settings-live) apa pun; [Cara server dievaluasi](#how-a-server-is-evaluated) menjelaskan bagaimana daftar dari beberapa cakupan dan sumber yang dikelola digabungkan | Untuk penegakan, [sumber pengaturan yang dikelola](/docs/id/admin-setup#decide-how-settings-reach-devices): pengaturan yang dikelola server, `managed-settings.json`, profil MDM, atau registri |

528| `deniedMcpServers` | Daftar penolakan server yang diblokir | Cakupan pengaturan apa pun; Claude Code menggabungkan daftar dari setiap cakupan, dan di seluruh sumber yang dikelola seperti [cara Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) menjelaskan | Sama seperti `allowedMcpServers` |542| `deniedMcpServers` | Daftar penolakan server yang diblokir | Cakupan pengaturan apa pun; [Cara server dievaluasi](#how-a-server-is-evaluated) menjelaskan bagaimana daftar dari beberapa cakupan dan sumber yang dikelola digabungkan | Sama seperti `allowedMcpServers` |

529| `allowManagedMcpServersOnly` | Mengunci daftar izin ke sumber yang dikelola saja | Hanya sumber pengaturan yang dikelola; pengaturan tidak berpengaruh di tempat lain | Sama seperti `allowedMcpServers` |543| `allowManagedMcpServersOnly` | Mengunci daftar izin ke sumber yang dikelola saja | Hanya sumber pengaturan yang dikelola; [Kunci yang dibaca dari setiap sumber admin](/docs/id/managed-settings#keys-read-from-every-admin-source) menjelaskan sumber yang dikelola mana yang dapat mengaktifkannya. Pengaturan tidak berpengaruh di cakupan lain | Sama seperti `allowedMcpServers` |

530| `allowAllClaudeAiMcps` | Memuat konektor claude.ai yang Claude Code ambil sendiri bersama `managed-mcp.json`. [File `managed-mcp.json` di host yang menjalankan sesi cloud masih menekan konektor sesi tersebut](#allow-claude-ai-connectors-alongside-the-managed-set) | Hanya sumber pengaturan yang dikelola; pengaturan tidak berpengaruh di tempat lain | Sama seperti `allowedMcpServers` |544| `allowAllClaudeAiMcps` | Memuat konektor claude.ai yang Claude Code ambil sendiri bersama `managed-mcp.json`. [File `managed-mcp.json` di host yang menjalankan sesi cloud masih menekan konektor sesi tersebut](#allow-claude-ai-connectors-alongside-the-managed-set) | Hanya sumber pengaturan yang dikelola; pengaturan tidak berpengaruh di tempat lain | Sama seperti `allowedMcpServers` |

531 545 

532<h2 id="related-resources">546<h2 id="related-resources">

Details

60File dalam langkah-langkah di atas adalah salah satu dari empat cara untuk mendapatkan pengaturan terkelola ke mesin. Setiap mekanisme membawa kunci kebijakan yang sama dengan file `settings.json`, sehingga [referensi pengaturan](/docs/id/settings-reference) berlaku untuk semuanya. Beberapa kunci terikat pada sumber tertentu, dan baris Scope setiap entri mengatakan yang mana:60File dalam langkah-langkah di atas adalah salah satu dari empat cara untuk mendapatkan pengaturan terkelola ke mesin. Setiap mekanisme membawa kunci kebijakan yang sama dengan file `settings.json`, sehingga [referensi pengaturan](/docs/id/settings-reference) berlaku untuk semuanya. Beberapa kunci terikat pada sumber tertentu, dan baris Scope setiap entri mengatakan yang mana:

61 61 

62* **Kontrol pengiriman**: [`policyHelper`](/docs/id/settings-reference#policyhelper), [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings), dan [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior)62* **Kontrol pengiriman**: [`policyHelper`](/docs/id/settings-reference#policyhelper), [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings), dan [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior)

63* **Kunci login gateway**: [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl) dan nilai `"gateway"` dari [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod)63* **Kunci login gateway**: [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/id/settings-reference#gatewayinternalnetworks), dan nilai `"gateway"` dari [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod)

64 64 

65File pengaturan terkelola, profil MDM, atau konsol claude.ai menerapkan satu kebijakan untuk semua orang yang dijangkaunya. Untuk memberikan satu kelompok pengembang kebijakan yang berbeda, terapkan file atau profil yang berbeda ke kelompok itu; konsol claude.ai [belum dapat menargetkan grup](/docs/id/server-managed-settings#current-limitations), sementara [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang di-host sendiri mengirimkan pengaturan terkelola per grup IdP.65File pengaturan terkelola, profil MDM, atau konsol claude.ai menerapkan satu kebijakan untuk semua orang yang dijangkaunya. Untuk memberikan satu kelompok pengembang kebijakan yang berbeda, terapkan file atau profil yang berbeda ke kelompok itu; konsol claude.ai [belum dapat menargetkan grup](/docs/id/server-managed-settings#current-limitations), sementara [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang di-host sendiri mengirimkan pengaturan terkelola per grup IdP.

66 66 


141 Bagaimana Claude Code menggabungkan sumber terkelola141 Bagaimana Claude Code menggabungkan sumber terkelola

142</h2>142</h2>

143 143 

144Ketika organisasi Anda mengirimkan lebih dari satu sumber terkelola ke mesin yang sama, kunci [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) memutuskan apa yang Claude Code lakukan dengan yang lain:144Ketika organisasi Anda mengirimkan lebih dari satu sumber terkelola ke mesin yang sama, kunci [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) menentukan apa yang Claude Code lakukan dengan yang lain:

145 145 

146* **`"first-wins"`, default**: Claude Code menggunakan sumber peringkat tertinggi yang mengirimkan setidaknya satu kunci kebijakan dan mengabaikan sisanya daripada menggabungkannya, terlepas dari beberapa kunci dalam [Kunci yang dibaca dari setiap sumber admin](#keys-read-from-every-admin-source). Claude Code tidak menunjukkan peringatan untuk sumber yang dilewatkan; `/status` [menamai sumber yang digunakan dan yang dilewatkan](#read-the-source-in-/status).146* **`"first-wins"`, pengaturan default**: Claude Code menggunakan sumber dengan peringkat tertinggi yang mengirimkan setidaknya satu kunci kebijakan dan mengabaikan sisanya daripada menggabungkannya, kecuali untuk kunci dalam [Kunci yang dibaca dari setiap sumber admin](#keys-read-from-every-admin-source). Claude Code tidak menampilkan peringatan untuk sumber yang dilewati; `/status` [menamai sumber yang digunakan dan yang dilewati](#read-the-source-in-/status).

147* **`"merge"`**: Claude Code menerapkan setiap sumber admin yang mengirimkan kunci kebijakan dan menggabungkannya berdasarkan jenis kunci: pada sebagian besar kunci nilai sumber peringkat lebih tinggi berlaku, daftar bersatu, dan kunci mengambil nilai paling ketat. [Susun setiap sumber terkelola](#compose-every-managed-source) mengatakan di mana menetapkan kunci dan bagaimana setiap jenis kunci digabungkan. Memerlukan Claude Code v2.1.242 atau lebih baru.147* **`"merge"`**: Claude Code menerapkan setiap sumber admin yang mengirimkan kunci kebijakan dan menggabungkannya berdasarkan jenis kunci: pada sebagian besar kunci nilai sumber dengan peringkat lebih tinggi berlaku, daftar bersatu, dan kunci mengambil nilai paling ketat. [Compose every managed source](#compose-every-managed-source) mengatakan di mana mengatur kunci dan bagaimana setiap jenis kunci menggabung. Memerlukan Claude Code v2.1.242 atau lebih baru.

148 148 

149Kedua pengaturan menentukan peringkat sumber dengan cara yang sama. Dua istilah berulang di bagian ini:149Kedua pengaturan mengurutkan sumber dengan cara yang sama. Istilah-istilah ini berulang di bagian ini:

150 150 

151* **Kunci kebijakan**: kunci pengaturan apa pun selain dua kunci kontrol, [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings) dan [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior). File pengaturan terkelola atau kebijakan MDM yang hanya berisi yang itu tidak dihitung, dan Claude Code melanjutkan ke sumber berikutnya.151* **Kunci kebijakan**: kunci pengaturan apa pun selain dua kunci kontrol, [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings) dan [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior). File pengaturan terkelola atau kebijakan MDM yang hanya berisi yang tersebut tidak dihitung, dan Claude Code melanjutkan ke sumber berikutnya.

152* **Sumber admin**: salah satu dari tiga sumber pertama di bawah. Registry HKCU yang dapat ditulis pengguna bukan satu.152* **Sumber admin**: salah satu dari tiga sumber pertama di bawah. Registri HKCU dapat ditulis pengguna dan bukan salah satunya.

153 153 

154Claude Code memeriksa sumber dalam urutan ini, prioritas tertinggi terlebih dahulu:154Claude Code memeriksa sumber dalam urutan ini, prioritas tertinggi terlebih dahulu:

155 155 

1561. Pengaturan jarak jauh, dikirimkan dari claude.ai sebagai [pengaturan terkelola server](/docs/id/server-managed-settings) atau oleh [gateway aplikasi Claude](/docs/id/claude-apps-gateway). Claude Code mengambil sumber ini hanya ketika sesi mengautentikasi ke API Anthropic secara langsung dengan [login atau kunci yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability), atau masuk ke gateway dengan `/login`. Pada penyedia lain, atau ketika `ANTHROPIC_BASE_URL` menunjuk ke tempat lain selain API Anthropic, dimulai dari sumber berikutnya1561. Pengaturan jarak jauh, dikirimkan dari claude.ai sebagai [pengaturan yang dikelola server](/docs/id/server-managed-settings) atau oleh [gateway aplikasi Claude](/docs/id/claude-apps-gateway). Claude Code mengambil sumber ini hanya ketika sesi mengautentikasi ke API Anthropic secara langsung dengan [login atau kunci yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability), atau masuk ke gateway dengan `/login`. Pada penyedia lain, atau ketika `ANTHROPIC_BASE_URL` menunjuk ke tempat lain selain API Anthropic, dimulai dari sumber berikutnya

1572. Kebijakan MDM atau tingkat OS: plist macOS atau kunci registry HKLM1572. Kebijakan MDM atau tingkat OS: plist macOS atau kunci registri HKLM

1583. File pengaturan terkelola, `managed-settings.d/*.json` dan `managed-settings.json` digabungkan bersama1583. File pengaturan terkelola, `managed-settings.d/*.json` dan `managed-settings.json` digabungkan bersama

1594. Registry HKCU, di Windows, dan di WSL setelah registry HKLM atau file pengaturan terkelola Windows mengaktifkan [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings) dan nilai HKCU juga menetapkannya. Claude Code membacanya hanya ketika tidak ada sumber di atasnya yang mengirimkan kunci kebijakan dan tidak ada [pengaturan induk yang disediakan host](#let-an-embedding-host-add-policy) yang menyediakan kunci yang ketat1594. Registri HKCU, di Windows, dan di WSL setelah registri HKLM atau file pengaturan terkelola Windows mengaktifkan [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings) dan nilai HKCU juga mengaturnya. Claude Code membacanya hanya ketika tidak ada sumber di atasnya yang mengirimkan kunci kebijakan dan tidak ada [pengaturan induk yang disediakan host](#let-an-embedding-host-add-policy) yang menyediakan kunci pembatasan

160 160 

161Diagram ini menunjukkan peringkat, dengan contoh kunci lintas sumber yang Claude Code baca dari tiga sumber pertama di bawah pengaturan apa pun:161Diagram ini menunjukkan peringkat, dengan contoh kunci lintas sumber yang Claude Code baca dari tiga sumber pertama di bawah pengaturan apa pun:

162 162 

163<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=53f6be49f06eff48e01422c8ae1bc2e6" className="dark:hidden" alt="Diagram menunjukkan empat sumber pengaturan terkelola yang diberi peringkat dari pengaturan jarak jauh di atas melalui MDM, file pengaturan terkelola, dan registry HKCU di bawah. Secara default sumber pertama dengan kunci kebijakan menyediakan kebijakan dan sisanya dilewatkan; dengan managedSourcesBehavior diatur untuk merge, setiap sumber admin dengan kunci kebijakan berkontribusi, digabungkan berdasarkan jenis kunci, dan registry HKCU tetap keluar. Panel samping menunjukkan bahwa kunci lintas sumber seperti kunci sandbox, forceRemoteSettingsRefresh, dan per-variabel env merge dibaca dari setiap sumber admin, yang mengecualikan registry HKCU." width="680" height="330" data-path="images/managed-source-precedence.svg" />163<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=53f6be49f06eff48e01422c8ae1bc2e6" className="dark:hidden" alt="Diagram menunjukkan empat sumber pengaturan terkelola yang diberi peringkat dari pengaturan jarak jauh di bagian atas melalui MDM, file pengaturan terkelola, dan registri HKCU di bagian bawah. Secara default sumber pertama dengan kunci kebijakan menyediakan kebijakan dan sisanya dilewati; dengan managedSourcesBehavior diatur ke merge, setiap sumber admin dengan kunci kebijakan berkontribusi, digabungkan berdasarkan jenis kunci, dan registri HKCU tetap keluar. Panel samping menunjukkan bahwa kunci lintas sumber seperti kunci sandbox, forceRemoteSettingsRefresh, dan per-variable env merge dibaca dari setiap sumber admin, yang mengecualikan registri HKCU." width="680" height="330" data-path="images/managed-source-precedence.svg" />

164 164 

165<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence-dark.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=ae407a9a08a3d680e80cf1a2af845d71" className="hidden dark:block" alt="Diagram menunjukkan empat sumber pengaturan terkelola yang diberi peringkat dari pengaturan jarak jauh di atas melalui MDM, file pengaturan terkelola, dan registry HKCU di bawah. Secara default sumber pertama dengan kunci kebijakan menyediakan kebijakan dan sisanya dilewatkan; dengan managedSourcesBehavior diatur untuk merge, setiap sumber admin dengan kunci kebijakan berkontribusi, digabungkan berdasarkan jenis kunci, dan registry HKCU tetap keluar. Panel samping menunjukkan bahwa kunci lintas sumber seperti kunci sandbox, forceRemoteSettingsRefresh, dan per-variabel env merge dibaca dari setiap sumber admin, yang mengecualikan registry HKCU." width="680" height="330" data-path="images/managed-source-precedence-dark.svg" />165<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence-dark.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=ae407a9a08a3d680e80cf1a2af845d71" className="hidden dark:block" alt="Diagram menunjukkan empat sumber pengaturan terkelola yang diberi peringkat dari pengaturan jarak jauh di bagian atas melalui MDM, file pengaturan terkelola, dan registri HKCU di bagian bawah. Secara default sumber pertama dengan kunci kebijakan menyediakan kebijakan dan sisanya dilewati; dengan managedSourcesBehavior diatur ke merge, setiap sumber admin dengan kunci kebijakan berkontribusi, digabungkan berdasarkan jenis kunci, dan registri HKCU tetap keluar. Panel samping menunjukkan bahwa kunci lintas sumber seperti kunci sandbox, forceRemoteSettingsRefresh, dan per-variable env merge dibaca dari setiap sumber admin, yang mengecualikan registri HKCU." width="680" height="330" data-path="images/managed-source-precedence-dark.svg" />

166 166 

167<h3 id="keys-read-from-every-admin-source">167<h3 id="keys-read-from-every-admin-source">

168 Kunci yang dibaca dari setiap sumber admin168 Kunci yang dibaca dari setiap sumber admin

169</h3>169</h3>

170 170 

171Di bawah pengaturan default `"first-wins"`, Claude Code membaca sebagian besar kunci hanya dari [sumber yang dipilihnya](#how-claude-code-combines-managed-sources), dan mengabaikan nilai dalam sumber peringkat lebih rendah bahkan ketika sumber yang dipilih membiarkan kunci itu tidak diatur.171Di bawah pengaturan default `"first-wins"`, Claude Code membaca sebagian besar kunci hanya dari [sumber yang dipilih](#how-claude-code-combines-managed-sources), dan mengabaikan nilai dalam sumber dengan peringkat lebih rendah bahkan ketika sumber yang dipilih membiarkan kunci itu tidak diatur.

172 172 

173Beberapa kunci bekerja berbeda. Claude Code membacanya dari setiap sumber admin, sehingga kebijakan MDM atau file pengaturan terkelola peringkat lebih rendah masih dapat menetapkannya ketika sumber yang dipilih tidak. Claude Code meninggalkan registry HKCU yang dapat ditulis pengguna dari pemindaian itu; ketika HKCU adalah satu-satunya sumber dan tidak ada host yang menyediakan pengaturan induk, HKCU berlaku seperti sumber yang dipilih.173Beberapa kunci bekerja berbeda. Claude Code membacanya dari setiap sumber admin, jadi kebijakan MDM atau file pengaturan terkelola dengan peringkat lebih rendah masih dapat mengaturnya ketika sumber yang dipilih tidak. Claude Code mengeluarkan registri HKCU yang dapat ditulis pengguna dari pemindaian itu; ketika HKCU adalah satu-satunya sumber dan tidak ada host yang menyediakan pengaturan induk, HKCU berlaku seperti sumber yang dipilih.

174 174 

175Kunci lintas sumber mencakup:175Kunci lintas sumber mencakup:

176 176 

177* `sandbox.network.allowManagedDomainsOnly` dan `sandbox.filesystem.allowManagedReadPathsOnly`: `true` dalam sumber admin apa pun mengaktifkan kunci. Saat kunci aktif, Claude Code menyatukan daftar yang dikunci, `sandbox.network.allowedDomains` bersama dengan aturan izin `WebFetch(domain:...)`, atau `sandbox.filesystem.allowRead`, di seluruh setiap sumber admin. Tanpa kunci, Claude Code memperlakukan daftar seperti kunci lainnya, jadi di bawah `"first-wins"` daftar sumber admin yang tidak dipilih diabaikan177* `sandbox.network.allowManagedDomainsOnly` dan `sandbox.filesystem.allowManagedReadPathsOnly`: `true` dalam sumber admin apa pun mengaktifkan kunci. Saat kunci aktif, Claude Code menyatukan daftar yang dikunci, `sandbox.network.allowedDomains` bersama dengan aturan izin `WebFetch(domain:...)`, atau `sandbox.filesystem.allowRead`, di seluruh setiap sumber admin. Tanpa kunci, Claude Code memperlakukan daftar seperti kunci lainnya, jadi di bawah `"first-wins"` daftar sumber admin yang tidak dipilih diabaikan

178* `allowAllClaudeAiMcps`178* `allowAllClaudeAiMcps`

179* `allowManagedMcpServersOnly`: `true` dalam sumber admin apa pun mengaktifkan kunci daftar izin MCP. Saat kunci aktif, daftar `allowedMcpServers` yang terkelola berasal dari sumber admin dengan peringkat tertinggi yang mengaturnya. Daftar yang dikelola server menggantikan daftar sumber yang lebih rendah daripada menggabungkannya.

180 

181 Jika tidak ada sumber admin yang mengatur daftar, setiap server yang melewati daftar penolakan dimuat, kecuali [pengaturan induk](#let-an-embedding-host-add-policy) menyediakan daftar.

182 

183 Tanpa kunci, Claude Code membaca `allowedMcpServers` dari sumber terkelola yang diterapkan, jadi di bawah `"first-wins"` daftar sumber admin yang tidak dipilih diabaikan. Memerlukan Claude Code v2.1.273 atau lebih baru

184* `deniedMcpServers` dan [`disableClaudeAiConnectors`](/docs/id/settings-reference#disableclaudeaiconnectors): entri atau `true` dalam sumber admin apa pun berlaku. Memerlukan Claude Code v2.1.273 atau lebih baru

179* Jalur biner sandbox `sandbox.bwrapPath` dan `sandbox.socatPath`185* Jalur biner sandbox `sandbox.bwrapPath` dan `sandbox.socatPath`

180* Biner sandbox `ripgrep`, [`sandbox.ripgrep`](/docs/id/settings-reference#sandbox-ripgrep)186* Biner sandbox `ripgrep`, [`sandbox.ripgrep`](/docs/id/settings-reference#sandbox-ripgrep)

181* `sandbox.filesystem.disabled` dan `sandbox.network.strictAllowlist`187* `sandbox.filesystem.disabled` dan `sandbox.network.strictAllowlist`

182* [`useAutoModeDuringPlan`](/docs/id/settings-reference#useautomodeduringplan) dan [`syncClaudeAiSkills`](/docs/id/settings-reference#syncclaudeaiskills), di mana `false` dari sumber admin apa pun mematikan perilaku. `false` dalam pengaturan pengguna atau lokal pengembang juga mematikannya; setiap kunci hanya dapat menolak188* [`useAutoModeDuringPlan`](/docs/id/settings-reference#useautomodeduringplan), [`syncClaudeAiSkills`](/docs/id/settings-reference#syncclaudeaiskills), dan [`syncClaudeAiPlugins`](/docs/id/settings-reference#syncclaudeaiplugins), di mana `false` dari sumber admin apa pun mematikan perilaku. `false` dalam pengaturan pengguna atau lokal pengembang juga mematikannya; setiap kunci hanya dapat menolak

183* [`enableArtifact`](/docs/id/settings-reference#enableartifact), di mana `false` dari sumber admin apa pun mematikan [alat Artifact](/docs/id/artifacts). `false` dalam pengaturan pengguna, proyek, atau lokal pengembang juga mematikannya, dan tidak ada sumber yang mengaktifkannya kembali; lihat [nilai tingkat lebih rendah mana yang masih berlaku](/docs/id/settings#exceptions-to-managed-settings-precedence). Memerlukan Claude Code v2.1.242 atau lebih baru189* [`enableArtifact`](/docs/id/settings-reference#enableartifact), di mana `false` dari sumber admin apa pun mematikan [alat Artifact](/docs/id/artifacts). `false` dalam pengaturan pengguna, proyek, atau lokal pengembang juga mematikannya, dan tidak ada sumber yang mengaktifkannya kembali; lihat [nilai tingkat lebih rendah mana yang masih dihitung](/docs/id/settings#exceptions-to-managed-settings-precedence). Memerlukan Claude Code v2.1.242 atau lebih baru

184* [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel), di mana batas terendah dalam sumber admin apa pun berlaku. Jika pengembang menetapkan batas lebih rendah dalam pengaturan mereka sendiri atau dengan `--settings`, Claude Code menerapkan yang itu; tidak ada sumber yang dapat menaikkan batas. Memerlukan Claude Code v2.1.267 atau lebih baru190* [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel), di mana batas terendah dalam sumber admin apa pun berlaku. Jika pengembang menetapkan batas lebih rendah dalam pengaturan mereka sendiri atau dengan `--settings`, Claude Code menerapkan yang itu; tidak ada sumber yang dapat menaikkan batas. Memerlukan Claude Code v2.1.267 atau lebih baru

185* Opt-out trailer commit dalam `attribution`, atau dalam `includeCoAuthoredBy` yang sudah usang, dari tingkat apa pun191* Opt-out trailer komit dalam `attribution`, atau dalam `includeCoAuthoredBy` yang sudah usang, dari tingkat apa pun

186* [`forceRemoteSettingsRefresh`](/docs/id/server-managed-settings)192* [`forceRemoteSettingsRefresh`](/docs/id/server-managed-settings)

187* `env`, digabungkan per variabel di seluruh sumber admin: setiap variabel berasal dari sumber prioritas tertinggi yang mendefinisikannya, jadi sumber lebih rendah mengisi variabel yang sumber lebih tinggi biarkan tidak diatur. Beberapa variabel mengikuti aturan mereka sendiri; [Pengecualian per kunci di seluruh sumber terkelola](/docs/id/server-managed-settings#per-key-exceptions-across-managed-sources) menamai masing-masing. Memerlukan Claude Code v2.1.223 atau lebih baru. Sebelum v2.1.223, Claude Code menerapkan blok `env` sumber yang dipilih secara keseluruhan saja193* `env`, digabungkan per variabel di seluruh sumber admin: setiap variabel berasal dari sumber prioritas tertinggi yang mendefinisikannya, jadi sumber lebih rendah mengisi variabel yang sumber lebih tinggi biarkan tidak diatur. Beberapa variabel mengikuti aturan mereka sendiri; [Per-key exceptions across managed sources](/docs/id/server-managed-settings#per-key-exceptions-across-managed-sources) menamai masing-masing. Memerlukan Claude Code v2.1.223 atau lebih baru. Sebelum v2.1.223, Claude Code menerapkan blok `env` seluruh sumber yang dipilih saja

188 194 

189Kunci [gateway login](#choose-a-delivery-mechanism), [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl) dan nilai `"gateway"` dari [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod), mengikuti aturan terpisah. Claude Code tidak pernah membacanya dari pengaturan terkelola server, jadi sementara pengaturan terkelola server adalah sumber yang dipilih, sumber admin peringkat tertinggi di mesin yang membawa kunci kebijakan masih menyediakannya. Nilai dalam sumber admin yang diberi peringkat di bawah itu, atau dalam registry HKCU, diabaikan.195Kunci [login gateway](#choose-a-delivery-mechanism) mengikuti aturan terpisah. Claude Code tidak pernah membacanya dari pengaturan yang dikelola server, jadi sementara pengaturan yang dikelola server adalah sumber yang dipilih, sumber admin dengan peringkat tertinggi di mesin yang membawa kunci kebijakan masih menyediakannya. Nilai dalam sumber admin yang diberi peringkat di bawah itu, atau dalam registri HKCU, diabaikan.

196 

197Ketika sumber admin mengatur `allowManagedMcpServersOnly` atau daftar `allowedMcpServers` dan nilai itu bukan yang berlaku, `/status` dan `claude doctor` menamai sumber dan kunci itu.

190 198 

191<h3 id="compose-every-managed-source">199<h3 id="compose-every-managed-source">

192 Susun setiap sumber terkelola200 Compose every managed source

193</h3>201</h3>

194 202 

195Untuk membuat Claude Code menerapkan setiap sumber admin yang organisasi Anda kirimkan, atur [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) ke `"merge"` dalam sumber peringkat tertinggi yang Anda terapkan. Claude Code membaca kunci hanya dari sumber peringkat tertinggi yang membawa kunci atau kunci kebijakan, jadi sumber lebih rendah tidak dapat memilih dirinya sendiri untuk merge dengan sumber di atasnya, dan mesin yang tidak pernah menerima pengaturan terkelola server memerlukan kunci dalam profil MDM-nya juga. Registry HKCU yang dapat ditulis pengguna tidak pernah merge dengan sumber lain. Memerlukan Claude Code v2.1.242 atau lebih baru.203Untuk membuat Claude Code menerapkan setiap sumber admin yang organisasi Anda kirimkan, atur [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) ke `"merge"` dalam sumber dengan peringkat tertinggi yang Anda terapkan. Claude Code membaca kunci hanya dari sumber dengan peringkat tertinggi yang membawa kunci atau kunci kebijakan, jadi sumber lebih rendah tidak dapat memilih dirinya sendiri untuk bergabung dengan sumber di atasnya, dan mesin yang tidak pernah menerima pengaturan yang dikelola server memerlukan kunci dalam profil MDM juga. Registri HKCU yang dapat ditulis pengguna tidak pernah bergabung dengan sumber lain. Memerlukan Claude Code v2.1.242 atau lebih baru.

196 204 

197Di bawah `"merge"`, Claude Code menambahkan entri daftar sumber lebih rendah, seperti aturan `permissions.allow` dan hooks, ke kebijakan, jadi aktifkan hanya ketika setiap sumber yang diberi peringkat di bawah yang tertinggi berada di bawah kontrol administrator.205Di bawah `"merge"`, Claude Code menambahkan entri daftar sumber lebih rendah, seperti aturan `permissions.allow` dan hooks, ke kebijakan, jadi aktifkan hanya ketika setiap sumber yang diberi peringkat di bawah yang tertinggi berada di bawah kontrol administrator.

198 206 

199Tabel ini menunjukkan bagaimana Claude Code menggabungkan setiap jenis kunci di bawah `"merge"`. Entri [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) menamai setiap kunci dalam tiga baris: daftar izin pembatasan, nilai yang diambil secara keseluruhan, dan kunci yang dibaca dari sumber peringkat tertinggi saja.207Tabel ini menunjukkan bagaimana Claude Code menggabungkan setiap jenis kunci di bawah `"merge"`. Entri [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) menamai setiap kunci dalam tiga baris: daftar izin pembatasan, nilai yang diambil seluruhnya, dan kunci yang dibaca dari sumber dengan peringkat tertinggi saja.

200 208 

201| Jenis kunci | Bagaimana Claude Code menggabungkannya | Contoh |209| Jenis kunci | Bagaimana Claude Code menggabungkannya | Contoh |

202| :----------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------- |210| :------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------- |

203| Daftar | Menggabungkan entri dari setiap sumber | `permissions.allow`, `hooks`, `sandbox.network.allowedDomains`, `deniedMcpServers` |211| Daftar | Menggabungkan entri dari setiap sumber | `permissions.allow`, `hooks`, `sandbox.network.allowedDomains`, `deniedMcpServers` |

204| Kunci | Menerapkan nilai paling ketat yang sumber apa pun tetapkan; nilai yang lebih longgar berlaku hanya dari sumber peringkat tertinggi | `allowManagedHooksOnly`, `permissions.disableBypassPermissionsMode`, `crossSessionInbound` |212| Kunci | Menerapkan nilai paling ketat yang ditetapkan sumber apa pun; nilai yang lebih longgar berlaku hanya dari sumber dengan peringkat tertinggi | `allowManagedHooksOnly`, `permissions.disableBypassPermissionsMode`, `crossSessionInbound` |

205| Daftar izin pembatasan | Mengambil daftar secara keseluruhan dari sumber peringkat tertinggi yang menetapkannya, tanpa menambahkan entri dari sumber lebih rendah | `availableModels`, `allowedMcpServers`, `strictKnownMarketplaces`, `allowedChannelPlugins`, dan rantai `fallbackModel` |213| Daftar izin pembatasan | Mengambil daftar seluruhnya dari sumber dengan peringkat tertinggi yang mengaturnya, tanpa menambahkan entri dari sumber lebih rendah | `availableModels`, `allowedMcpServers`, `strictKnownMarketplaces`, `allowedChannelPlugins`, dan rantai `fallbackModel` |

206| Nilai yang diambil secara keseluruhan | Mengambil nilai secara keseluruhan dari sumber peringkat tertinggi yang menetapkannya, tanpa menggabungkan entri atau bidang dari sumber lebih rendah | `sandbox.credentials.awsPairs`, `sandbox.ripgrep` |214| Nilai yang diambil seluruhnya | Mengambil nilai seluruhnya dari sumber dengan peringkat tertinggi yang mengaturnya, tanpa menggabungkan entri atau bidang dari sumber lebih rendah | `sandbox.credentials.awsPairs`, `sandbox.ripgrep` |

207| Server MCP yang disediakan | Menggabungkan nama server dari setiap sumber; ketika dua sumber menetapkan nama yang sama, menerapkan entri keseluruhan sumber peringkat lebih tinggi | `managedMcpServers` |215| Server MCP yang disediakan | Menggabungkan nama server dari setiap sumber; ketika dua sumber menetapkan nama yang sama, menerapkan entri seluruh sumber dengan peringkat lebih tinggi | `managedMcpServers` |

208| Kunci yang dibaca dari sumber peringkat tertinggi saja | Mengabaikan kunci di setiap sumber lebih rendah, bahkan ketika sumber peringkat tertinggi membiarkan kunci tidak diatur | Pembantu kredensial seperti `apiKeyHelper`, pin login seperti `forceLoginOrgUUID`, `modelPicker`, `permissions.defaultMode` |216| Kunci yang dibaca dari sumber dengan peringkat tertinggi saja | Mengabaikan kunci dalam setiap sumber lebih rendah, bahkan ketika sumber dengan peringkat tertinggi membiarkannya tidak diatur | Pembantu kredensial seperti `apiKeyHelper`, pin login seperti `forceLoginOrgUUID`, `modelPicker`, `permissions.defaultMode` |

209| `env` | Merge per variabel di seluruh sumber admin di bawah pengaturan apa pun, seperti [Kunci yang dibaca dari setiap sumber admin](#keys-read-from-every-admin-source) menjelaskan | |217| `env` | Menggabungkan per variabel di seluruh sumber admin di bawah pengaturan apa pun, seperti [Kunci yang dibaca dari setiap sumber admin](#keys-read-from-every-admin-source) menjelaskan | |

210| Setiap kunci lainnya | Mengambil nilai dari sumber peringkat tertinggi yang menetapkannya | `model`, `cleanupPeriodDays` |218| Setiap kunci lainnya | Mengambil nilai dari sumber dengan peringkat tertinggi yang mengaturnya | `model`, `cleanupPeriodDays` |

211 219 

212Untuk mengonfirmasi sumber mana yang digabungkan di mesin, [baca baris `Setting sources` dalam `/status`](#read-the-source-in-/status); bagian itu mengatakan apa arti setiap label.220Untuk mengonfirmasi sumber mana yang digabungkan di mesin, [baca baris `Setting sources` dalam `/status`](#read-the-source-in-/status); bagian itu mengatakan apa arti setiap label.

213 221 


215 Hitung kebijakan dengan program pembantu223 Hitung kebijakan dengan program pembantu

216</h3>224</h3>

217 225 

218[`policyHelper`](/docs/id/settings-reference#policyhelper) adalah executable yang kebijakan MDM atau file pengaturan terkelola Anda namai, dan Claude Code menjalankannya untuk menghitung pengaturan terkelola saat startup. Ketika sumber yang dipilih mengonfigurasi satu dan pembantu mengeluarkan objek `managedSettings`, output itu mengubah apa yang Claude Code baca:226[`policyHelper`](/docs/id/settings-reference#policyhelper) adalah executable yang dinamai kebijakan MDM atau file pengaturan terkelola Anda, dan Claude Code menjalankannya untuk menghitung pengaturan terkelola saat startup. Ketika sumber yang dipilih mengonfigurasi satu dan pembantu mengeluarkan objek `managedSettings`, output itu mengubah apa yang Claude Code baca:

219 227 

220* **Objek `managedSettings` yang dipancarkan adalah satu-satunya pengaturan terkelola untuk sesi**, termasuk untuk [kunci yang sebaliknya dibacanya dari setiap sumber admin](#keys-read-from-every-admin-source), terlepas dari [`forceRemoteSettingsRefresh`, yang memiliki aturan startup tersendiri](/docs/id/settings-reference#forceremotesettingsrefresh)228* **Objek `managedSettings` yang dipancarkan adalah satu-satunya pengaturan terkelola untuk sesi**, termasuk untuk [kunci yang sebaliknya dibaca dari setiap sumber admin](#keys-read-from-every-admin-source), terlepas dari [`forceRemoteSettingsRefresh`, yang memiliki aturan startup sendiri](/docs/id/settings-reference#forceremotesettingsrefresh)

221 229 

222Untuk pembantu mana yang gagal, dan apa yang Claude Code lakukan ketika satu gagal, lihat [Kegagalan pembantu](/docs/id/settings-reference#helper-failures).230Untuk kegagalan pembantu mana yang terjadi, dan apa yang Claude Code lakukan ketika terjadi, lihat [Helper failures](/docs/id/settings-reference#helper-failures).

223 231 

224<span id="parent-settings-from-embedding-hosts" />232<span id="parent-settings-from-embedding-hosts" />

225 233 


228<span id="merge-policy-from-an-embedding-host" />236<span id="merge-policy-from-an-embedding-host" />

229 237 

230<h3 id="let-an-embedding-host-add-policy">238<h3 id="let-an-embedding-host-add-policy">

231 Biarkan host embedding menambahkan kebijakan239 Biarkan host penyematan menambahkan kebijakan

232</h3>240</h3>

233 241 

234Ketika aplikasi lain meluncurkan Claude Code, seperti Claude Desktop, ekstensi IDE, atau aplikasi Agent SDK, host itu dapat melewatkan pengaturan terkelolanya sendiri melalui opsi SDK `managedSettings`. Claude Code menyebut ini pengaturan induk.242Ketika aplikasi lain meluncurkan Claude Code, seperti Claude Desktop, ekstensi IDE, atau aplikasi Agent SDK, host itu dapat melewatkan pengaturan terkelolanya sendiri melalui opsi SDK `managedSettings`. Claude Code menyebut ini pengaturan induk.

235 243 

236Secara default, Claude Code mengabaikan pengaturan induk setiap kali sumber admin ada: pengaturan terkelola server, kebijakan MDM atau tingkat OS, atau file pengaturan terkelola.244Secara default, Claude Code mengabaikan pengaturan induk setiap kali sumber admin ada: pengaturan yang dikelola server, kebijakan MDM atau tingkat OS, atau file pengaturan terkelola.

237 245 

238Untuk membuat Claude Code merge pengaturan induk bersama sumber admin, atur [`parentSettingsBehavior`](/docs/id/settings-reference#parentsettingsbehavior) ke `"merge"` dalam sumber terkelola prioritas tertinggi; Claude Code membaca kunci dari sumber itu saja.246Untuk membuat Claude Code menggabungkan pengaturan induk bersama sumber admin, atur [`parentSettingsBehavior`](/docs/id/settings-reference#parentsettingsbehavior) ke `"merge"` dalam sumber terkelola dengan prioritas tertinggi; Claude Code membaca kunci dari sumber itu saja.

239 247 

240Claude Code kemudian menyimpan hanya nilai host yang membatasi apa yang Claude dapat lakukan, dengan satu celah untuk diketahui: kecuali Anda juga menetapkan kunci `allowManaged*Only`, aturan izin allow host dan daftar izin sandbox masih berlaku. Lihat [Batasi pengaturan induk](/docs/id/claude-apps-gateway#restrict-parent-settings) untuk kunci.248Claude Code kemudian menyimpan hanya nilai host yang membatasi apa yang dapat dilakukan Claude, dengan satu celah untuk diketahui: kecuali Anda juga menetapkan kunci `allowManaged*Only`, aturan izin host dan daftar sandbox masih berlaku. Lihat [Restrict parent settings](/docs/id/claude-apps-gateway#restrict-parent-settings) untuk kunci.

241 249 

242[`policyHelper`](/docs/id/settings-reference#policyhelper) dapat mematikan penggabungan induk terlepas dari kunci ini; entrynya mengatakan kapan.250[`policyHelper`](/docs/id/settings-reference#policyhelper) dapat mematikan penggabungan induk terlepas dari kunci ini; entrinya mengatakan kapan.

243 251 

244Claude Code juga menerapkan pemeriksaan ini ke nilai yang disediakan induk sendiri:252Claude Code juga menerapkan pemeriksaan ini ke nilai yang disediakan induk sendiri:

245 253 

246* Ketika sumber admin apa pun menetapkan `allowManagedPermissionRulesOnly`, Claude Code menghapus aturan izin allow yang [disediakan induk](/docs/id/claude-apps-gateway#restrict-parent-settings) dan `additionalDirectories` saat membacanya, bahkan ketika sumber prioritas lebih tinggi membiarkan kunci tidak diatur. Efek kunci pada aturan izin Anda sendiri berasal dari pengaturan terkelola yang Claude Code terapkan, atau dari pengaturan induk yang telah Anda pilih untuk merge254* Ketika sumber admin apa pun menetapkan `allowManagedPermissionRulesOnly`, Claude Code menghapus aturan izin [yang disediakan induk](/docs/id/claude-apps-gateway#restrict-parent-settings) dan `additionalDirectories` saat membacanya, bahkan ketika sumber prioritas lebih tinggi membiarkan kunci tidak diatur. Efek kunci pada aturan Anda sendiri berasal dari pengaturan terkelola yang Claude Code terapkan, atau dari pengaturan induk yang telah Anda pilih untuk digabungkan

247* Claude Code memberlakukan nilai `forceLoginOrgUUID` atau `allowedMcpServers` dalam pengaturan terkelola yang diterapkannya dan memblokir yang disediakan induk. Nilai dalam sumber admin lebih rendah yang Claude Code tidak terapkan tidak berlaku atau memblokir yang disediakan induk. Entri [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) mengatakan sumber mana yang menyediakan setiap kunci di bawah `"merge"`. Sebelum v2.1.223, nilai dalam sumber admin apa pun memblokir yang disediakan induk255* Claude Code memberlakukan nilai `forceLoginOrgUUID` atau `allowedMcpServers` dalam pengaturan terkelola yang diterapkan dan memblokir yang disediakan induk. Di luar kunci daftar izin MCP, nilai dalam sumber admin lebih rendah yang Claude Code tidak terapkan tidak berlaku atau memblokir induk.

248* Nilai `availableModels` mengikuti aturan yang sama dengan `allowedMcpServers`256 

257 Pada Claude Code v2.1.273 atau lebih baru, saat `allowManagedMcpServersOnly` aktif, daftar `allowedMcpServers` dari sumber admin dengan peringkat tertinggi yang mengaturnya berlaku dan memblokir induk, sebagai [kunci lintas sumber](#keys-read-from-every-admin-source). Daftar induk berlaku hanya ketika tidak ada sumber admin yang mengaturnya. Entri [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) mengatakan sumber mana yang menyediakan setiap kunci di bawah `"merge"`. Sebelum v2.1.223, nilai dalam sumber admin apa pun memblokir induk

258* Untuk `availableModels`, Claude Code memberlakukan nilai dalam pengaturan terkelola yang diterapkan dan memblokir daftar yang disediakan induk

249 259 

250<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">260<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">

251 Pertahankan akses folder Cowork ketika hanya aturan terkelola yang berlaku261 Pertahankan akses folder Cowork ketika hanya aturan terkelola yang berlaku

252</h4>262</h4>

253 263 

254[Cowork](https://claude.com/docs/cowork/overview) di aplikasi Claude Desktop menjalankan sesinya di Claude Code dan memberikan setiap sesi akses ke folder kerjanya, seperti folder yang dihubungkan pengguna, melalui aturan izin yang disediakannya saat meluncurkan sesi. Ketika kebijakan terkelola Anda menetapkan [`allowManagedPermissionRulesOnly`](/docs/id/settings-reference#allowmanagedpermissionrulesonly), Claude Code menyimpan hanya aturan izin dalam kebijakan terkelola: itu menghapus aturan izin yang host sediakan sebagai pengaturan induk, sebagai `--allowedTools`, atau dalam file pengaturan, jadi penulisan ke folder itu kehilangan pra-persetujuan mereka. Dalam sesi Cowork yang meminta sebelum edit, Cowork tidak dapat menampilkan prompt, dan Claude melaporkan setiap penulisan sebagai diblokir karena jalur diselesaikan ke lokasi yang dilindungi atau jalur di luar folder yang terhubung.264[Cowork](https://claude.com/docs/cowork/overview) dalam aplikasi Claude Desktop menjalankan sesinya di Claude Code dan memberikan setiap sesi akses ke folder kerjanya, seperti folder yang dihubungkan pengguna, melalui aturan izin yang disediakannya saat meluncurkan sesi. Ketika kebijakan terkelola Anda menetapkan [`allowManagedPermissionRulesOnly`](/docs/id/settings-reference#allowmanagedpermissionrulesonly), Claude Code menyimpan hanya aturan izin dalam kebijakan terkelola: itu menghapus aturan izin yang disediakan host sebagai pengaturan induk, sebagai `--allowedTools`, atau dalam file pengaturan, jadi penulisan ke folder tersebut kehilangan pra-persetujuan mereka. Dalam sesi Cowork yang meminta sebelum edit, Cowork tidak dapat menampilkan prompt, dan Claude melaporkan setiap penulisan sebagai diblokir karena jalur diselesaikan ke lokasi yang dilindungi atau jalur di luar folder yang terhubung.

255 265 

256Untuk mengembalikan penulisan, tambahkan aturan izin untuk folder itu ke sumber terkelola yang Claude Code [pilih](#precedence-within-the-managed-tier) di mesin itu: di armada yang dikelola MDM, itu adalah kebijakan MDM daripada file pengaturan terkelola terpisah. Contoh ini menggunakan bentuk file, dan kebijakan MDM mengambil kunci yang sama. Itu menyimpan `allowManagedPermissionRulesOnly` diatur dan memungkinkan edit di bawah folder `CoworkProjects` di direktori home setiap pengguna; ganti jalur dengan folder yang pengguna Anda hubungkan:266Untuk memulihkan penulisan, tambahkan aturan izin untuk folder tersebut ke sumber terkelola yang Claude Code [pilih](#precedence-within-the-managed-tier) di mesin tersebut: di armada yang dikelola MDM, itu adalah kebijakan MDM daripada file pengaturan terkelola terpisah. Contoh ini menggunakan bentuk file, dan kebijakan MDM mengambil kunci yang sama. Itu menyimpan `allowManagedPermissionRulesOnly` diatur dan memungkinkan edit di bawah folder `CoworkProjects` di direktori home setiap pengguna; ganti jalur dengan folder yang dihubungkan pengguna Anda:

257 267 

258```json managed-settings.json theme={null}268```json managed-settings.json theme={null}

259{269{


266}276}

267```277```

268 278 

269Setelah Anda terapkan kebijakan, Claude dapat menyimpan file di bawah folder itu dalam sesi Cowork baru. [Aturan Read dan Edit](/docs/id/permissions#read-and-edit) mencakup sintaks jalur, termasuk bentuk `//` untuk jalur absolut.279Setelah Anda menerapkan kebijakan, Claude dapat menyimpan file di bawah folder itu dalam sesi Cowork baru. [Read and Edit rules](/docs/id/permissions#read-and-edit) mencakup sintaks jalur, termasuk bentuk `//` untuk jalur absolut.

270 280 

271<h3 id="what-a-developer-can-change">281<h3 id="what-a-developer-can-change">

272 Apa yang dapat diubah pengembang282 Apa yang dapat diubah pengembang

273</h3>283</h3>

274 284 

275File pengaturan pengembang sendiri, nilai `--settings`, dan file proyek tidak pernah mengganti nilai terkelola; [pengecualian](/docs/id/settings#exceptions-to-managed-settings-precedence) hanya membiarkan nilai tingkat lebih rendah yang lebih ketat berlaku. Empat hal duduk di luar aturan itu:285File pengaturan pengembang sendiri, nilai `--settings`, dan file proyek tidak pernah mengganti nilai terkelola; [pengecualian](/docs/id/settings#exceptions-to-managed-settings-precedence) hanya membiarkan nilai tingkat lebih rendah yang lebih ketat dihitung. Kasus-kasus ini berada di luar aturan itu:

276 286 

277* **Model untuk sesi**: `model` terkelola adalah default, bukan kunci. `--model` dan `ANTHROPIC_MODEL` masih memilih model untuk sesi itu, jadi terapkan [`availableModels`](/docs/id/settings-reference#availablemodels) untuk membatasi pilihan.287* **Model untuk sesi**: `model` terkelola adalah default, bukan kunci. `--model` dan `ANTHROPIC_MODEL` masih memilih model untuk sesi itu, jadi terapkan [`availableModels`](/docs/id/settings-reference#availablemodels) untuk membatasi pilihan.

278* **Hak admin lokal**: pengembang yang merupakan administrator di mesin dapat mengedit sumber terkelola itu sendiri, itulah mengapa alat MDM dapat menerapkan kembali profil atau file sesuai jadwal dan mengapa registry HKLM dan domain preferensi terkelola macOS ada.288* **Hak admin lokal**: pengembang yang merupakan administrator di mesin dapat mengedit sumber terkelola itu sendiri, itulah mengapa alat MDM dapat menerapkan kembali profil atau file sesuai jadwal dan mengapa registri HKLM dan domain preferensi terkelola macOS ada.

279* **Cache terkelola server**: pengaturan terkelola server berasal dari server Anthropic, dan edit ke cache lokal [berlaku hanya sampai pengambilan berhasil berikutnya](/docs/id/server-managed-settings#security-considerations).289* **Cache yang dikelola server**: pengaturan yang dikelola server berasal dari server Anthropic, dan edit ke cache lokal [berlangsung hanya sampai pengambilan berikutnya yang berhasil](/docs/id/server-managed-settings#security-considerations).

280* **Alat lain**: pengaturan terkelola mengikat Claude Code saja. Pengembang yang memanggil API dari alat lain tidak berada di bawahnya.290* **Alat lain**: pengaturan terkelola mengikat Claude Code saja. Pengembang yang memanggil API dari alat lain tidak berada di bawahnya.

281 291 

282<span id="verify-enforcement" />292<span id="verify-enforcement" />


362| `availableModels` | Diberlakukan sebagai daftar izin kosong sampai diperbaiki, jadi hanya model Default yang tersedia; entri non-string dilepas dan subset yang valid diberlakukan. |372| `availableModels` | Diberlakukan sebagai daftar izin kosong sampai diperbaiki, jadi hanya model Default yang tersedia; entri non-string dilepas dan subset yang valid diberlakukan. |

363| `enforceAvailableModels` | Diperlakukan sebagai `true`. |373| `enforceAvailableModels` | Diperlakukan sebagai `true`. |

364| `forceLoginOrgUUID` | Tidak ada organisasi yang diizinkan untuk masuk sampai nilai diperbaiki. |374| `forceLoginOrgUUID` | Tidak ada organisasi yang diizinkan untuk masuk sampai nilai diperbaiki. |

375| `gatewayInternalNetworks` | Ketika nilai yang tidak valid berasal dari sumber terkelola tertinggi di mesin, `/login` menolak setiap [gateway cloud](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) masuk baru di mesin itu sampai nilai diperbaiki. |

365| `crossSessionInbound` | Diperlakukan sebagai `refuse`, nilai paling ketat, jadi [pesan lintas sesi](/docs/id/cross-session-messaging#control-inbound-messages) masuk ditolak sampai nilai diperbaiki. Pengembang melihat [peringatan](/docs/id/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |376| `crossSessionInbound` | Diperlakukan sebagai `refuse`, nilai paling ketat, jadi [pesan lintas sesi](/docs/id/cross-session-messaging#control-inbound-messages) masuk ditolak sampai nilai diperbaiki. Pengembang melihat [peringatan](/docs/id/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |

366| `deniedMcpServers` | Entri individual yang tidak valid dilepas dan subset yang valid diberlakukan. Nilai yang sepenuhnya tidak valid dihapus dengan peringatan, karena menolak setiap server akan memblokir server yang kebijakan tidak pernah namai. |377| `deniedMcpServers` | Entri individual yang tidak valid dilepas dan subset yang valid diberlakukan. Nilai yang sepenuhnya tidak valid dihapus dengan peringatan, karena menolak setiap server akan memblokir server yang kebijakan tidak pernah namai. |

367| `sandbox.credentials` | Entri yang tidak valid yang dapat dipulihkan diturunkan ke `mode: "deny"` dengan peringatan; yang tidak dapat dipulihkan dilepas; entri yang valid tetap diberlakukan. Lihat [entri kredensial yang tidak valid](/docs/id/settings-reference#invalid-credential-entries-in-managed-settings) |378| `sandbox.credentials` | Entri yang tidak valid yang dapat dipulihkan diturunkan ke `mode: "deny"` dengan peringatan; yang tidak dapat dipulihkan dilepas; entri yang valid tetap diberlakukan. Lihat [entri kredensial yang tidak valid](/docs/id/settings-reference#invalid-credential-entries-in-managed-settings) |


389| [`allowAllClaudeAiMcps`](/docs/id/settings-reference#allowallclaudeaimcps) | Muat konektor claude.ai yang Claude Code ambil sendiri bersama `managed-mcp.json` yang diterapkan alih-alih menekannya |400| [`allowAllClaudeAiMcps`](/docs/id/settings-reference#allowallclaudeaimcps) | Muat konektor claude.ai yang Claude Code ambil sendiri bersama `managed-mcp.json` yang diterapkan alih-alih menekannya |

390| [`allowedChannelPlugins`](/docs/id/settings-reference#allowedchannelplugins) | Daftar izin plugin channel yang dapat mendorong pesan. Mengganti daftar izin Anthropic default ketika diatur. Memerlukan `channelsEnabled: true`. Lihat [Batasi plugin channel mana yang dapat berjalan](/docs/id/channels#restrict-which-channel-plugins-can-run) |401| [`allowedChannelPlugins`](/docs/id/settings-reference#allowedchannelplugins) | Daftar izin plugin channel yang dapat mendorong pesan. Mengganti daftar izin Anthropic default ketika diatur. Memerlukan `channelsEnabled: true`. Lihat [Batasi plugin channel mana yang dapat berjalan](/docs/id/channels#restrict-which-channel-plugins-can-run) |

391| [`allowManagedHooksOnly`](/docs/id/settings-reference#allowmanagedhooksonly) | Ketika `true`, membatasi hook mana yang berjalan; lihat [apa yang berjalan di bawah `allowManagedHooksOnly`](/docs/id/settings-reference#what-runs-under-allowmanagedhooksonly) untuk daftar efek lengkap |402| [`allowManagedHooksOnly`](/docs/id/settings-reference#allowmanagedhooksonly) | Ketika `true`, membatasi hook mana yang berjalan; lihat [apa yang berjalan di bawah `allowManagedHooksOnly`](/docs/id/settings-reference#what-runs-under-allowmanagedhooksonly) untuk daftar efek lengkap |

392| [`allowManagedMcpServersOnly`](/docs/id/settings-reference#allowmanagedmcpserversonly) | Ketika `true`, hanya `allowedMcpServers` dari pengaturan terkelola yang dihormati. `deniedMcpServers` masih merge dari semua sumber. Lihat [Konfigurasi MCP terkelola](/docs/id/managed-mcp) |403| [`allowManagedMcpServersOnly`](/docs/id/settings-reference#allowmanagedmcpserversonly) | Ketika `true`, hanya `allowedMcpServers` dari pengaturan terkelola yang dihormati. `deniedMcpServers` masih merge dari semua sumber. Lihat [Kunci yang dibaca dari setiap sumber admin](#keys-read-from-every-admin-source) untuk sumber terkelola mana yang dapat mengaturnya, dan [Konfigurasi MCP terkelola](/docs/id/managed-mcp) |

393| [`allowManagedPermissionRulesOnly`](/docs/id/settings-reference#allowmanagedpermissionrulesonly) | Membuat pengaturan terkelola satu-satunya sumber pengaturan aturan izin. Entri mencantumkan setiap sumber yang diabaikannya |404| [`allowManagedPermissionRulesOnly`](/docs/id/settings-reference#allowmanagedpermissionrulesonly) | Membuat pengaturan terkelola satu-satunya sumber pengaturan aturan izin. Entri mencantumkan setiap sumber yang diabaikannya |

394| [`blockedMarketplaces`](/docs/id/settings-reference#blockedmarketplaces) | Daftar blokir sumber marketplace. Sumber yang diblokir diperiksa sebelum mengunduh, jadi mereka tidak pernah menyentuh filesystem. Lihat [pembatasan marketplace terkelola](/docs/id/plugin-marketplaces#managed-marketplace-restrictions) |405| [`blockedMarketplaces`](/docs/id/settings-reference#blockedmarketplaces) | Daftar blokir sumber marketplace. Sumber yang diblokir diperiksa sebelum mengunduh, jadi mereka tidak pernah menyentuh filesystem. Lihat [pembatasan marketplace terkelola](/docs/id/plugin-marketplaces#managed-marketplace-restrictions) |

395| [`channelsEnabled`](/docs/id/settings-reference#channelsenabled) | Izinkan [channels](/docs/id/channels) untuk organisasi. Lihat [kontrol enterprise](/docs/id/channels#enterprise-controls) untuk default di setiap paket |406| [`channelsEnabled`](/docs/id/settings-reference#channelsenabled) | Izinkan [channels](/docs/id/channels) untuk organisasi. Lihat [kontrol enterprise](/docs/id/channels#enterprise-controls) untuk default di setiap paket |

mcp.md +66 −16

Details

151 151 

152 Tanpa `--`, Claude Code akan mencoba mengurai flag server, seperti `--port` di atas, sebagai opsinya sendiri.152 Tanpa `--`, Claude Code akan mencoba mengurai flag server, seperti `--port` di atas, sebagai opsinya sendiri.

153 153 

154 `--env` menerima beberapa pasangan `KEY=value`. Jika nama server datang langsung setelah `--env`, CLI membaca nama sebagai pasangan lain dan menolaknya, jadi tempatkan setidaknya satu opsi lain antara `--env` dan nama server, seperti dalam contoh di atas.154 `--env` menerima beberapa pasangan `KEY=value`. Jika nama server datang langsung setelah `--env`, CLI membaca nama sebagai pasangan lain dan menolaknya, jadi tempatkan setidaknya satu opsi lain, seperti `--transport stdio`, antara `--env` dan nama server.

155</Note>155</Note>

156 156 

157<h3 id="option-4-add-a-remote-websocket-server">157<h3 id="option-4-add-a-remote-websocket-server">


323* **Whitespace tersembunyi**: Claude Code memperingatkan ketika nilai config MCP membawa whitespace terkemuka atau tertinggal yang tersembunyi, yang sering berasal dari menempel token dengan newline tertinggal. Claude Code memeriksa `command`, `url`, setiap entri `args`, dan nilai dan nama kunci di bawah `env` dan `headers`. Claude Code menunjukkan peringatan dalam output `claude mcp list` dan di `/mcp`, menamai bidang yang terpengaruh tanpa menggema nilainya, misalnya `Leading or trailing whitespace in: headers.Authorization`. Claude Code tidak memangkas whitespace dan menggunakan nilai persis seperti yang ditulis, jadi edit konfigurasi untuk menghapusnya.323* **Whitespace tersembunyi**: Claude Code memperingatkan ketika nilai config MCP membawa whitespace terkemuka atau tertinggal yang tersembunyi, yang sering berasal dari menempel token dengan newline tertinggal. Claude Code memeriksa `command`, `url`, setiap entri `args`, dan nilai dan nama kunci di bawah `env` dan `headers`. Claude Code menunjukkan peringatan dalam output `claude mcp list` dan di `/mcp`, menamai bidang yang terpengaruh tanpa menggema nilainya, misalnya `Leading or trailing whitespace in: headers.Authorization`. Claude Code tidak memangkas whitespace dan menggunakan nilai persis seperti yang ditulis, jadi edit konfigurasi untuk menghapusnya.

324* **Nama yang sama di lebih dari satu cakupan**: jika Anda mendefinisikan nama server yang sama di lebih dari satu [cakupan](#mcp-installation-scopes) dengan endpoint berbeda, Claude Code memperingatkan tentang konflik dalam output `claude mcp list` dan di `/mcp`. Claude Code menyimpan sign-in OAuth per endpoint, jadi ketika Anda mengautentikasi definisi yang dimuat dalam satu proyek, Anda masih perlu sign in secara terpisah di proyek di mana definisi berbeda dimuat. Simpan endpoint yang Anda inginkan dan hapus yang lain dengan `claude mcp remove <name> --scope <scope>`. Dalam peringatan, Claude Code mengutip endpoint setiap cakupan seperti yang ditulis dalam konfigurasi Anda, dengan referensi [`${VAR}`](#environment-variable-expansion-in-mcp-json) tidak diperluas, jadi tidak pernah menunjukkan nilai yang diselesaikan seperti kunci API.324* **Nama yang sama di lebih dari satu cakupan**: jika Anda mendefinisikan nama server yang sama di lebih dari satu [cakupan](#mcp-installation-scopes) dengan endpoint berbeda, Claude Code memperingatkan tentang konflik dalam output `claude mcp list` dan di `/mcp`. Claude Code menyimpan sign-in OAuth per endpoint, jadi ketika Anda mengautentikasi definisi yang dimuat dalam satu proyek, Anda masih perlu sign in secara terpisah di proyek di mana definisi berbeda dimuat. Simpan endpoint yang Anda inginkan dan hapus yang lain dengan `claude mcp remove <name> --scope <scope>`. Dalam peringatan, Claude Code mengutip endpoint setiap cakupan seperti yang ditulis dalam konfigurasi Anda, dengan referensi [`${VAR}`](#environment-variable-expansion-in-mcp-json) tidak diperluas, jadi tidak pernah menunjukkan nilai yang diselesaikan seperti kunci API.

325* **Nama yang dicadangkan**: Claude Code mencadangkan nama server bawaan-nya, termasuk `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, dan `Claude Browser`. Jika konfigurasi Anda mendefinisikan server dengan nama yang dicadangkan, Claude Code melewatinya pada waktu muat dan menunjukkan peringatan meminta Anda untuk mengganti namanya. `claude mcp add` menolak nama yang dicadangkan dengan kesalahan. `Claude Preview` dan `Claude Browser` keduanya menamai server bawaan yang digunakan [pane preview aplikasi desktop Claude Code](/docs/id/desktop#preview-your-app). Sebelum v2.1.205, `Claude Browser` tidak dicadangkan, jadi server yang dikonfigurasi pengguna dapat mendaftar di bawah nama itu.325* **Nama yang dicadangkan**: Claude Code mencadangkan nama server bawaan-nya, termasuk `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, dan `Claude Browser`. Jika konfigurasi Anda mendefinisikan server dengan nama yang dicadangkan, Claude Code melewatinya pada waktu muat dan menunjukkan peringatan meminta Anda untuk mengganti namanya. `claude mcp add` menolak nama yang dicadangkan dengan kesalahan. `Claude Preview` dan `Claude Browser` keduanya menamai server bawaan yang digunakan [pane preview aplikasi desktop Claude Code](/docs/id/desktop#preview-your-app). Sebelum v2.1.205, `Claude Browser` tidak dicadangkan, jadi server yang dikonfigurasi pengguna dapat mendaftar di bawah nama itu.

326* **Variabel lingkungan yang hilang**: jika referensi [`${VAR}`](#environment-variable-expansion-in-mcp-json) dalam konfigurasi server menamai variabel yang tidak diatur dan tidak memiliki `:-default`, Claude Code memperingatkan dalam output `claude mcp list` dan di `/mcp`, menamai variabel, dan masih memuat server dengan teks `${VAR}` tidak diperluas. Atur variabel atau tambahkan fallback `${VAR:-default}`.326* **Variabel lingkungan yang hilang**: jika referensi [`${VAR}`](#environment-variable-expansion-in-mcp-json) dalam konfigurasi server menamai variabel yang tidak diatur dan tidak memiliki `:-default`, Claude Code memperingatkan dalam output `claude mcp list` dan di `/mcp`, menamai variabel, dan masih memuat server dengan teks `${VAR}` tidak diperluas. Atur variabel atau tambahkan fallback `${VAR:-default}`. Dalam URL dan `headers` server jarak jauh, beberapa variabel kredensial [membaca sebagai kosong](#credential-variables-that-read-as-empty) sebagai gantinya, tanpa peringatan.

327 327 

328<h4 id="tool-availability">328<h4 id="tool-availability">

329 Ketersediaan alat329 Ketersediaan alat


360 360 

361Claude Code terhubung ke server MCP melalui salah satu dari dua runtime klien. Runtime v1 dibangun di MCP TypeScript SDK 1.x. Runtime v2 adalah kode yang sama di [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), yang menambahkan revisi protokol MCP 2026-07-28. Sisa halaman ini berlaku untuk kedua runtime, kecuali bagian yang menamai runtime v2.361Claude Code terhubung ke server MCP melalui salah satu dari dua runtime klien. Runtime v1 dibangun di MCP TypeScript SDK 1.x. Runtime v2 adalah kode yang sama di [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), yang menambahkan revisi protokol MCP 2026-07-28. Sisa halaman ini berlaku untuk kedua runtime, kecuali bagian yang menamai runtime v2.

362 362 

363Pada Claude Code v2.1.232 atau lebih baru, Claude Code menggunakan runtime v2. Memilih runtime setiap kali Anda memulainya dan menyimpannya sampai Anda keluar. Menggunakan v1 ketika Anda menjalankannya:363Claude Code memilih runtime setiap kali Anda memulainya dan menyimpannya sampai Anda keluar. Dalam sesi di mana ia [mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), ia menggunakan runtime v2 pada Claude Code v2.1.232 atau lebih baru.

364 364 

365* Di Amazon Bedrock, Claude Platform di AWS, Agent Platform Google Cloud, atau Microsoft Foundry, kecuali platform host yang menyematkan Claude Code menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars)365Dalam sesi di mana ia tidak mengambil flag fitur, Claude Code menggunakan runtime v2 secara default pada Claude Code v2.1.274 atau lebih baru:

366* Masuk melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway)366 

367* Dengan [pengambilan flag fitur off](/docs/id/env-vars#features-that-need-feature-flag-fetching)367* Sesi di Amazon Bedrock, Claude Platform di AWS, Agent Platform Google Cloud, atau Microsoft Foundry, kecuali platform host yang menyematkan Claude Code menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars)

368* Sesi yang masuk melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway)

369* Sesi di mana Anda mematikan telemetri atau pengambilan flag fitur, misalnya dengan `DISABLE_TELEMETRY`

368 370 

369Pada v2, Claude Code juga:371Pada v2, Claude Code juga:

370 372 

371* Menanyakan server HTTP dan konektor claude.ai apakah mereka mendukung revisi yang lebih baru, dan menggunakannya dengan yang mendukung. Menanyakan server stdio hanya jika Anda menetapkan [`MCP_PROTOCOL_NEGOTIATION`](/docs/id/env-vars) ke `auto`, dan terhubung ke setiap server lain seperti v1 lakukan.373* Menanyakan server HTTP apakah mereka mendukung revisi yang lebih baru, dan menggunakannya dengan yang mendukung. Ia juga menanyakan server konektor claude.ai dalam sesi di mana ia mengambil flag fitur. Untuk membuatnya menanyakan server stdio, atau server konektor dalam setiap sesi, atur [`MCP_PROTOCOL_NEGOTIATION`](/docs/id/env-vars) ke `auto`. Ia terhubung ke setiap server lain seperti v1 lakukan.

372* Menerima notifikasi `list_changed` dari server pada revisi yang lebih baru melalui [stream yang dipegang terbuka](#notification-streams-on-the-v2-runtime).374* Menerima notifikasi `list_changed` dari server pada revisi yang lebih baru melalui [stream yang dipegang terbuka](#notification-streams-on-the-v2-runtime).

373* Tidak mendaftarkan server [channel](#push-messages-with-channels) yang terhubung pada revisi yang lebih baru, karena revisi itu tidak dapat membawa pesan channel.375* Tidak mendaftarkan server [channel](#push-messages-with-channels) yang terhubung pada revisi yang lebih baru, karena revisi itu tidak dapat membawa pesan channel.

374* Gagal [sign-in OAuth MCP](#authenticate-with-remote-mcp-servers) yang respons otorisasinya menamai penerbit yang tidak terduga.376* Gagal [sign-in OAuth MCP](#authenticate-with-remote-mcp-servers) yang respons otorisasinya menamai penerbit yang tidak terduga.

375 377 

376Anthropic dapat menyimpan server tertentu pada protokol sebelumnya, atau off stream itu, dengan flag fitur yang Claude Code ambil.378Anthropic dapat menyimpan server tertentu pada protokol sebelumnya, atau off stream itu, dengan flag fitur Claude Code ambil.

377 379 

378Untuk memilih runtime sendiri, atur [`MCP_SDK_GENERATION`](/docs/id/env-vars) ke `v1` atau `v2`. Untuk memutuskan apakah Claude Code menanyakan, atur [`MCP_PROTOCOL_NEGOTIATION`](/docs/id/env-vars) ke `auto` atau `legacy`. Di mana Claude Code menggunakan v1 secara default, menyematkan `v2` tidak membuatnya menanyakan, jadi atur `auto` juga.380Untuk memilih runtime sendiri, atur [`MCP_SDK_GENERATION`](/docs/id/env-vars) ke `v1` atau `v2`. Untuk memutuskan apakah Claude Code menanyakan, atur [`MCP_PROTOCOL_NEGOTIATION`](/docs/id/env-vars) ke `auto` atau `legacy`.

379 381 

380<h3 id="dynamic-tool-updates">382<h3 id="dynamic-tool-updates">

381 Pembaruan alat dinamis383 Pembaruan alat dinamis


540 * Jika Anda mengaktifkan atau menonaktifkan plugin selama sesi, Claude Code menghubungkan atau memutuskan server MCP-nya ketika perubahan diterapkan. [Terapkan perubahan plugin tanpa memulai ulang](/docs/id/discover-plugins#apply-plugin-changes-without-restarting) menjelaskan kapan itu terjadi. Dalam sesi tanpa terminal interaktif, `/reload-plugins` tidak menghubungkan atau memutuskan server MCP plugin; perubahan itu berlaku dalam sesi Anda berikutnya542 * Jika Anda mengaktifkan atau menonaktifkan plugin selama sesi, Claude Code menghubungkan atau memutuskan server MCP-nya ketika perubahan diterapkan. [Terapkan perubahan plugin tanpa memulai ulang](/docs/id/discover-plugins#apply-plugin-changes-without-restarting) menjelaskan kapan itu terjadi. Dalam sesi tanpa terminal interaktif, `/reload-plugins` tidak menghubungkan atau memutuskan server MCP plugin; perubahan itu berlaku dalam sesi Anda berikutnya

541 * Ketika Anda memuat ulang, Claude Code menyimpan koneksi langsung dari server plugin yang konfigurasinya tidak berubah, dan melakukan hal yang sama ketika Anda [mengganti daftar server MCP sesi](/docs/id/agent-sdk/typescript#mcpsetserversresult) dari Agent SDK tanpa menamakannya543 * Ketika Anda memuat ulang, Claude Code menyimpan koneksi langsung dari server plugin yang konfigurasinya tidak berubah, dan melakukan hal yang sama ketika Anda [mengganti daftar server MCP sesi](/docs/id/agent-sdk/typescript#mcpsetserversresult) dari Agent SDK tanpa menamakannya

542 * Ketika Anda [memindahkan sesi dengan `/cd`](/docs/id/permissions#move-the-session-to-another-directory) pada v2.1.246 atau lebih baru, Claude Code menghubungkan server plugin yang pengaturan direktori baru aktifkan dan memutuskan server plugin yang tidak lagi diaktifkan, jadi Anda tidak perlu menjalankan `/reload-plugins` setelah perpindahan544 * Ketika Anda [memindahkan sesi dengan `/cd`](/docs/id/permissions#move-the-session-to-another-directory) pada v2.1.246 atau lebih baru, Claude Code menghubungkan server plugin yang pengaturan direktori baru aktifkan dan memutuskan server plugin yang tidak lagi diaktifkan, jadi Anda tidak perlu menjalankan `/reload-plugins` setelah perpindahan

543 * Dalam [sesi web](/docs/id/claude-code-on-the-web), panggilan MCP ke server plugin yang belum terhubung, seperti tepat setelah sesi idle bangun, memulai server sesuai permintaan dan menunggu untuk terhubung545 * Dalam [sesi cloud](/docs/id/claude-code-on-the-web), panggilan MCP ke server plugin yang belum terhubung, seperti tepat setelah sesi idle bangun, memulai server sesuai permintaan dan menunggu untuk terhubung

544* **Placeholder jalur**: `${CLAUDE_PLUGIN_ROOT}` diselesaikan ke direktori instalasi plugin, `${CLAUDE_PLUGIN_DATA}` ke direktori [status persisten](/docs/id/plugins-reference#persistent-data-directory)-nya, dan `${CLAUDE_PROJECT_DIR}` ke akar proyek yang stabil. Substitusi berlaku untuk:546* **Placeholder jalur**: `${CLAUDE_PLUGIN_ROOT}` diselesaikan ke direktori instalasi plugin, `${CLAUDE_PLUGIN_DATA}` ke direktori [status persisten](/docs/id/plugins-reference#persistent-data-directory)-nya, dan `${CLAUDE_PROJECT_DIR}` ke akar proyek yang stabil. Substitusi berlaku untuk:

545 * server `stdio`: `command`, `args`, `env`547 * server `stdio`: `command`, `args`, `env`

546 * server `http`, `sse`, dan `ws`: `url`, `headers`, dan `headersHelper`. Sebelum v2.1.195, `headersHelper` meneruskan placeholder sebagai string literal548 * server `http`, `sse`, dan `ws`: `url`, `headers`, dan `headersHelper`. Sebelum v2.1.195, `headersHelper` meneruskan placeholder sebagai string literal


679 681 

680Claude Code mendukung ekspansi variabel lingkungan dalam file `.mcp.json`, memungkinkan tim untuk berbagi konfigurasi sambil mempertahankan fleksibilitas untuk jalur spesifik mesin dan nilai sensitif seperti kunci API.682Claude Code mendukung ekspansi variabel lingkungan dalam file `.mcp.json`, memungkinkan tim untuk berbagi konfigurasi sambil mempertahankan fleksibilitas untuk jalur spesifik mesin dan nilai sensitif seperti kunci API.

681 683 

682**Sintaks yang didukung:**684<h4 id="supported-syntax">

685 Sintaks yang didukung

686</h4>

683 687 

684* `${VAR}`: berkembang menjadi nilai variabel lingkungan `VAR`688* `${VAR}`: berkembang menjadi nilai variabel lingkungan `VAR`

685* `${VAR:-default}`: berkembang menjadi `VAR` jika diatur, jika tidak menggunakan `default`689* `${VAR:-default}`: berkembang menjadi `VAR` jika diatur, jika tidak menggunakan `default`

686 690 

687**Lokasi ekspansi:**691<h4 id="expansion-locations">

692 Lokasi ekspansi

693</h4>

694 

688Variabel lingkungan dapat berkembang dalam:695Variabel lingkungan dapat berkembang dalam:

689 696 

690* `command`: jalur executable server697* `command`: jalur executable server


693* `url`: untuk jenis server HTTP700* `url`: untuk jenis server HTTP

694* `headers`: untuk autentikasi server HTTP701* `headers`: untuk autentikasi server HTTP

695 702 

696**Contoh dengan ekspansi variabel:**703<h4 id="example-with-variable-expansion">

704 Contoh dengan ekspansi variabel

705</h4>

697 706 

698```json theme={null}707```json theme={null}

699{708{


709}718}

710```719```

711 720 

712Jika variabel lingkungan yang dirujuk tidak diatur dan tidak memiliki nilai default, konfigurasi masih dimuat: Claude Code melaporkan peringatan variabel yang hilang untuk server tersebut dalam output `claude mcp list` dan menggunakan teks `${VAR}` yang tidak diperluas sebagaimana adanya. Atur variabel atau tambahkan fallback `:-default` sehingga server dimulai dengan nilai yang Anda maksudkan.721<h4 id="unset-variables-without-a-default">

722 Variabel yang tidak diatur tanpa default

723</h4>

724 

725Jika variabel lingkungan yang dirujuk tidak diatur dan tidak memiliki nilai default, konfigurasi masih dimuat: Claude Code melaporkan peringatan variabel yang hilang untuk server tersebut dalam output `claude mcp list` dan menggunakan teks `${VAR}` yang tidak diperluas sebagaimana adanya. Atur variabel atau tambahkan fallback `:-default` sehingga server dimulai dengan nilai yang Anda maksudkan. Dalam `url` dan `headers` server jarak jauh, beberapa variabel kredensial [dibaca sebagai kosong](#credential-variables-that-read-as-empty) sebagai gantinya, tanpa peringatan.

726 

727<h4 id="credential-variables-that-read-as-empty">

728 Variabel kredensial yang dibaca sebagai kosong

729</h4>

730 

731Dalam `url` dan `headers` server jarak jauh, Claude Code membaca variabel kredensial dari lingkungan Anda sebagai kosong daripada memperluasnya. Ini mencegah `.mcp.json` proyek atau plugin dari mengirim kredensial Claude Code atau penyedia cloud Anda ke server yang dinamainya. Jika Anda menulis `Bearer ${ANTHROPIC_AUTH_TOKEN}`, server menerima `Bearer ` tanpa kredensial dan menolak permintaan, biasanya dengan `401`. Claude Code melaporkan itu sebagai koneksi yang gagal.

732 

733Nama yang tercakup adalah:

734 

735* Kredensial Claude Code sendiri, seperti `ANTHROPIC_API_KEY` dan `ANTHROPIC_AUTH_TOKEN`

736* Kredensial penyedia cloud Anda, seperti `AWS_BEARER_TOKEN_BEDROCK`

737* Kredensial lain yang dibawa lingkungan Anda, seperti `HTTPS_PROXY` dan `NPM_TOKEN`

738 

739Nama yang tercakup dibaca sebagai kosong apakah pun Anda telah menetapkan variabel, dan fallback `:-default` padanya diabaikan. URL dasar penyedia seperti `ANTHROPIC_BASE_URL` masih berkembang, jadi `"url": "${ANTHROPIC_BASE_URL}/mcp"` berfungsi, kecuali nilai URL itu sendiri menyematkan kredensial seperti nama pengguna dan kata sandi.

740 

741Nama di luar set ini, seperti `API_KEY`, berkembang seperti yang ditulis. Untuk memberikan server salah satu kredensial yang tercakup, salinnya ke dalam variabel dengan nama Anda sendiri dan referensikan nama itu sebagai gantinya.

742 

743Ketika `url` atau `headers` server jarak jauh mereferensikan variabel yang tercakup yang telah Anda atur, Claude Code menamakannya dalam baris log debug. Untuk membaca baris tersebut, jalankan `claude --debug-file /tmp/claude-debug.log` dan cari file itu untuk `never expanded toward a remote server`.

744 

745<h4 id="how-references-appear-in-/mcp-and-cli-output">

746 Bagaimana referensi muncul dalam output `/mcp` dan CLI

747</h4>

748 

749Untuk server dalam [cakupan](#mcp-installation-scopes) lokal, proyek, atau pengguna, permukaan berikut menampilkan referensi `${VAR}` berdasarkan nama daripada sebagai nilai yang diselesaikannya:

750 

751* URL atau baris perintah dalam tampilan detail `/mcp` server

752* Output `claude mcp list` dan `claude mcp get`

753 

754Tampilan detail `/mcp` menampilkan referensi dengan cara ini dalam Claude Code v2.1.268 atau lebih baru.

755 

756Untuk server yang disediakan organisasi Anda melalui pengaturan `managedMcpServers`, permukaan ini menampilkan [hanya host URL](/docs/id/managed-mcp#what-users-can-see-and-change).

757 

758Untuk memeriksa apa yang ditampilkan `claude mcp list`, `claude mcp get`, dan `/mcp` ketika koneksi gagal, lihat [Detail status server](#server-status-detail).

713 759 

714<h2 id="practical-examples">760<h2 id="practical-examples">

715 Contoh praktis761 Contoh praktis


779 825 

780* Untuk server yang belum Anda masuki, salah satu kode status ini menandainya di `/mcp` sehingga Anda dapat menyelesaikan alur OAuth.826* Untuk server yang belum Anda masuki, salah satu kode status ini menandainya di `/mcp` sehingga Anda dapat menyelesaikan alur OAuth.

781* Untuk [konektor claude.ai](#use-mcp-servers-from-claude-ai), `401` yang disebabkan oleh claude.ai menolak token sesi Anda tidak menandai konektor, karena mengotorisasi ulang konektor tidak dapat memperbaiki login Anda. Claude Code menampilkan [status token-sesi-ditolak](/docs/id/errors#claude-ai-rejected-the-session-token) sebagai gantinya.827* Untuk [konektor claude.ai](#use-mcp-servers-from-claude-ai), `401` yang disebabkan oleh claude.ai menolak token sesi Anda tidak menandai konektor, karena mengotorisasi ulang konektor tidak dapat memperbaiki login Anda. Claude Code menampilkan [status token-sesi-ditolak](/docs/id/errors#claude-ai-rejected-the-session-token) sebagai gantinya.

782* Untuk server yang header `Authorization` Anda konfigurasi, di `headers` atau melalui [`headersHelper`](#use-dynamic-headers-for-custom-authentication), `401` atau `403` saat menghubungkan tidak menandai server, karena kredensial untuk diperbaiki adalah yang Anda konfigurasi. Claude Code melaporkan koneksi sebagai gagal sebagai gantinya.828* Untuk server yang header `Authorization` Anda konfigurasi, di `headers` atau melalui [`headersHelper`](#use-dynamic-headers-for-custom-authentication), `401` atau `403` saat menghubungkan tidak menandai server, karena kredensial untuk diperbaiki adalah yang Anda konfigurasi. Claude Code melaporkan koneksi sebagai gagal sebagai gantinya. Jika Anda menetapkan header tersebut dari referensi `${VAR}`, periksa apakah variabel itu adalah salah satu yang Claude Code [baca sebagai kosong](#credential-variables-that-read-as-empty).

783* Untuk konektor [yang dikirimkan ke sesi cloud](#how-connectors-reach-claude-code), Claude Code tidak menjalankan alur sign-in, karena proxy sesi mengautentikasi ke konektor dengan otorisasi yang Anda berikan di claude.ai. Ketika konektor di sana memerlukan otorisasi lagi, hubungkan kembali di [claude.ai/customize/connectors](https://claude.ai/customize/connectors) daripada dari sesi.829* Untuk konektor [yang dikirimkan ke sesi cloud](#how-connectors-reach-claude-code), Claude Code tidak menjalankan alur sign-in, karena proxy sesi mengautentikasi ke konektor dengan otorisasi yang Anda berikan di claude.ai. Ketika konektor di sana memerlukan otorisasi lagi, hubungkan kembali di [claude.ai/customize/connectors](https://claude.ai/customize/connectors) daripada dari sesi.

784 830 

785Ketika permintaan ke server OAuth yang sudah Anda masuki mengembalikan `401 Unauthorized`, Claude Code menyegarkan token yang disimpan, terhubung kembali, dan mencoba ulang permintaan sekali. Itu menandai server di `/mcp` hanya jika percobaan ulang itu juga gagal. Sebelum v2.1.206, penyegaran token yang gagal karena alasan sementara, seperti kesalahan jaringan, menandai server OAuth sebagai memerlukan autentikasi untuk sisa sesi meskipun token penyegarannya masih valid.831Ketika permintaan ke server OAuth yang sudah Anda masuki mengembalikan `401 Unauthorized`, Claude Code menyegarkan token yang disimpan, terhubung kembali, dan mencoba ulang permintaan sekali. Itu menandai server di `/mcp` hanya jika percobaan ulang itu juga gagal. Sebelum v2.1.206, penyegaran token yang gagal karena alasan sementara, seperti kesalahan jaringan, menandai server OAuth sebagai memerlukan autentikasi untuk sisa sesi meskipun token penyegarannya masih valid.


790 836 

791Claude Code juga menampilkan pemberitahuan startup ketika satu atau lebih server yang dikonfigurasi memerlukan autentikasi, sehingga Anda tidak perlu membuka `/mcp` untuk menemukan server mana yang memerlukan sign-in. Pemberitahuan memerlukan Claude Code v2.1.193 atau lebih baru. Itu hanya menghitung server yang dapat Anda masuki dari Claude Code. Sebelum v2.1.218, itu juga menghitung [konektor claude.ai](#use-mcp-servers-from-claude-ai) yang tidak terhubung di claude.ai, yang hanya dapat Anda hubungkan dari pengaturan claude.ai.837Claude Code juga menampilkan pemberitahuan startup ketika satu atau lebih server yang dikonfigurasi memerlukan autentikasi, sehingga Anda tidak perlu membuka `/mcp` untuk menemukan server mana yang memerlukan sign-in. Pemberitahuan memerlukan Claude Code v2.1.193 atau lebih baru. Itu hanya menghitung server yang dapat Anda masuki dari Claude Code. Sebelum v2.1.218, itu juga menghitung [konektor claude.ai](#use-mcp-servers-from-claude-ai) yang tidak terhubung di claude.ai, yang hanya dapat Anda hubungkan dari pengaturan claude.ai.

792 838 

839Pemberitahuan mengumumkan setiap server sekali dan mengeluarkannya dari hitungan di peluncuran berikutnya sampai server itu telah terhubung dan memerlukan sign-in lagi. `/mcp` masih mencantumkan setiap server yang memerlukan sign-in.

840 

793Dalam mode non-interaktif tidak ada panel `/mcp`, jadi Claude Code tidak dapat menjalankan alur OAuth untuk Anda. Mulai dari v2.1.196, ketika server yang dikonfigurasi memerlukan autentikasi selama `claude -p` atau jalankan Agent SDK dengan [pencarian alat](#scale-with-mcp-tool-search) diaktifkan, yang merupakan default, Claude Code memberi tahu Claude bahwa alat server tidak tersedia sampai Anda mengotorisasinya. Claude kemudian dapat menyebutkan server yang memerlukan sign-in alih-alih merespons seolah-olah server tidak dikonfigurasi. Selesaikan sign-in dari sesi interaktif dengan `/mcp` atau `claude mcp login <name>`.841Dalam mode non-interaktif tidak ada panel `/mcp`, jadi Claude Code tidak dapat menjalankan alur OAuth untuk Anda. Mulai dari v2.1.196, ketika server yang dikonfigurasi memerlukan autentikasi selama `claude -p` atau jalankan Agent SDK dengan [pencarian alat](#scale-with-mcp-tool-search) diaktifkan, yang merupakan default, Claude Code memberi tahu Claude bahwa alat server tidak tersedia sampai Anda mengotorisasinya. Claude kemudian dapat menyebutkan server yang memerlukan sign-in alih-alih merespons seolah-olah server tidak dikonfigurasi. Selesaikan sign-in dari sesi interaktif dengan `/mcp` atau `claude mcp login <name>`.

794 842 

795Jika Anda mengonfigurasi `headers.Authorization` untuk server dan server menolak header tersebut, Claude Code melaporkan koneksi sebagai gagal alih-alih kembali ke OAuth. Periksa bahwa token valid untuk endpoint MCP, atau hapus header untuk menggunakan alur OAuth.843Jika Anda mengonfigurasi `headers.Authorization` untuk server dan server menolak header tersebut, Claude Code melaporkan koneksi sebagai gagal alih-alih kembali ke OAuth. Periksa bahwa token valid untuk endpoint MCP, atau hapus header untuk menggunakan alur OAuth.


983 1031 

984Jika server otorisasi mengiklankan `offline_access` dalam `scopes_supported`, Claude Code menambahkannya ke cakupan yang disematkan sehingga token akses dapat disegarkan tanpa login browser baru.1032Jika server otorisasi mengiklankan `offline_access` dalam `scopes_supported`, Claude Code menambahkannya ke cakupan yang disematkan sehingga token akses dapat disegarkan tanpa login browser baru.

985 1033 

986Jika server kemudian mengembalikan 403 `insufficient_scope` untuk panggilan alat, Claude Code melakukan autentikasi ulang dengan cakupan yang disematkan yang sama. Perluas `oauth.scopes` ketika alat yang Anda butuhkan memerlukan cakupan di luar set yang disematkan.1034Jika server kemudian mengembalikan 403 `insufficient_scope` untuk panggilan alat, panggilan gagal dengan pesan [`needs additional permissions`](/docs/id/errors#mcp-server-needs-you-to-sign-in-again) yang menyebutkan cakupan yang diminta server. Server ditampilkan sebagai memerlukan autentikasi di `/mcp`.

1035 

1036Jika cakupan itu tidak ada dalam `oauth.scopes` yang disematkan Anda, tambahkan, kemudian jalankan `/mcp` dan autentikasi server lagi. Claude Code meminta cakupan yang disematkan daripada cakupan yang dinamai server, jadi jika Anda melakukan autentikasi lagi tanpa menambahkannya, token yang Anda dapatkan masih tidak memilikinya.

987 1037 

988<h3 id="use-dynamic-headers-for-custom-authentication">1038<h3 id="use-dynamic-headers-for-custom-authentication">

989 Gunakan header dinamis untuk autentikasi khusus1039 Gunakan header dinamis untuk autentikasi khusus

mcp-quickstart.md +10 −10

Details

110 Tempat server disimpan110 Tempat server disimpan

111</h2>111</h2>

112 112 

113Perintah `claude mcp add` menulis detail server ke file konfigurasi. Secara default, ia mendaftarkan server di cakupan `local`: pribadi untuk Anda, aktif hanya dalam proyek saat ini. Teruskan `--scope user` untuk mendaftarkannya sekali untuk semua proyek Anda, atau `--scope project` untuk membagikannya dengan rekan tim. [Ubah cakupan server](#change-server-scope) memandu keduanya.113Perintah `claude mcp add` menulis detail server ke file konfigurasi. Secara default, perintah ini mendaftarkan server pada cakupan `local`: pribadi untuk Anda, aktif hanya di proyek saat ini. Berikan `--scope user` untuk mendaftarkannya sekali untuk semua proyek Anda, atau `--scope project` untuk membagikannya dengan rekan kerja. [Ubah cakupan server](#change-server-scope) menjelaskan keduanya.

114 114 

115<Note>115<Note>

116 `claude mcp add` bekerja sama di setiap shell, termasuk PowerShell dan Command Prompt. Di dalam sesi `claude`, gunakan perintah `/mcp` untuk memeriksa dan mengelola server yang telah Anda tambahkan.116 `claude mcp add` bekerja sama di setiap shell, termasuk PowerShell dan Command Prompt. Di dalam sesi `claude`, gunakan perintah `/mcp` untuk memeriksa dan mengelola server yang telah Anda tambahkan.

117</Note>117</Note>

118 118 

119Ada cara lain untuk menambahkan server, masing-masing tercakup nanti di halaman ini:119Ada cara lain untuk menambahkan server, masing-masing dengan bagiannya sendiri:

120 120 

121* [Tambahkan server lokal](#add-a-local-server): jalankan program di mesin Anda daripada terhubung ke URL.121* [Tambahkan server lokal](#add-a-local-server): jalankan program di mesin Anda alih-alih terhubung ke URL.

122* [Edit `.mcp.json` secara langsung](#edit-mcp-json-directly): tulis entri JSON sendiri daripada menggunakan perintah.122* [Edit `.mcp.json` secara langsung](#edit-mcp-json-directly): tulis entri JSON sendiri alih-alih menggunakan perintah.

123* [Terhubung ke server yang memerlukan masuk](#connect-a-server-that-requires-sign-in): tambahkan server yang dihosting yang memerlukan masuk browser sebelum alatnya berfungsi.123* [Hubungkan server yang memerlukan sign-in](#connect-a-server-that-requires-sign-in): tambahkan server yang dihosting yang memerlukan sign-in browser sebelum alatnya berfungsi.

124 124 

125<h3 id="find-your-configuration-on-disk">125<h3 id="find-your-configuration-on-disk">

126 Temukan konfigurasi Anda di disk126 Temukan konfigurasi Anda di disk

127</h3>127</h3>

128 128 

129Perintah `claude mcp add` menulis server ke salah satu dari tiga cakupan, disimpan di dua file, tergantung pada flag `--scope`. Anda tidak perlu mengedit file ini secara langsung, tetapi mengetahui di mana mereka berada membantu dengan debugging dan kontrol versi.129Perintah `claude mcp add` menulis server ke salah satu dari tiga cakupan, disimpan di dua file, tergantung pada flag `--scope`. Anda tidak perlu mengedit file ini secara langsung, tetapi mengetahui di mana file ini berada membantu dengan debugging dan kontrol versi.

130 130 

131| Cakupan | File | Tersedia untuk |131| Cakupan | File | Tersedia untuk |

132| :-------- | :--------------------------------------------------------- | :------------------------------------ |132| :-------- | :--------------------------------------------------------- | :------------------------------------ |

133| `local` | `~/.claude.json`, di bawah entri untuk proyek ini | Hanya Anda, hanya proyek ini. Default |133| `local` | `~/.claude.json`, di bawah entri untuk proyek ini | Hanya Anda, hanya proyek ini. Default |

134| `project` | `.mcp.json` di akar proyek Anda | Semua orang yang mengkloning proyek |134| `project` | `.mcp.json` di root proyek Anda | Semua orang yang mengkloning proyek |

135| `user` | `~/.claude.json`, di bawah kunci `mcpServers` tingkat atas | Hanya Anda, semua proyek |135| `user` | `~/.claude.json`, di bawah kunci `mcpServers` tingkat atas | Hanya Anda, semua proyek |

136 136 

137Di Windows, `~/.claude.json` diselesaikan ke `%USERPROFILE%\.claude.json`, biasanya `C:\Users\YourName\.claude.json`. Jika Anda telah menetapkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars), Claude Code membaca `.claude.json` dari dalam direktori itu.137Di Windows, `~/.claude.json` diselesaikan menjadi `%USERPROFILE%\.claude.json`, biasanya `C:\Users\YourName\.claude.json`. Jika Anda telah menetapkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars), Claude Code membaca `.claude.json` dari dalam direktori tersebut sebagai gantinya.

138 138 

139Jalankan `claude mcp get claude-code-docs` untuk melihat cakupan mana yang menyimpan definisi server. Untuk cara cakupan berinteraksi ketika server yang sama didefinisikan di lebih dari satu, lihat [cakupan instalasi MCP](/docs/id/mcp#mcp-installation-scopes).139Jalankan `claude mcp get claude-code-docs` untuk melihat cakupan mana yang menyimpan definisi server. Untuk cara cakupan berinteraksi ketika server yang sama didefinisikan di lebih dari satu, lihat [MCP installation scopes](/docs/id/mcp#mcp-installation-scopes).

140 140 

141<h2 id="change-server-scope">141<h2 id="change-server-scope">

142 Ubah cakupan server142 Ubah cakupan server


308* **Aplikasi desktop Claude Code**: tambahkan server melalui [UI Connectors](/docs/id/desktop#connect-external-tools).308* **Aplikasi desktop Claude Code**: tambahkan server melalui [UI Connectors](/docs/id/desktop#connect-external-tools).

309* **Aplikasi chat Claude Desktop**: aplikasi terpisah dari Claude Code. Untuk menyalin server dari `claude_desktop_config.json`-nya ke CLI, jalankan `claude mcp add-from-claude-desktop` di macOS atau WSL.309* **Aplikasi chat Claude Desktop**: aplikasi terpisah dari Claude Code. Untuk menyalin server dari `claude_desktop_config.json`-nya ke CLI, jalankan `claude mcp add-from-claude-desktop` di macOS atau WSL.

310* **VS Code**: lihat [Terhubung ke alat eksternal dengan MCP](/docs/id/vs-code#connect-to-external-tools-with-mcp).310* **VS Code**: lihat [Terhubung ke alat eksternal dengan MCP](/docs/id/vs-code#connect-to-external-tools-with-mcp).

311* **Claude Code di web**: membaca `.mcp.json` dari repositori Anda. Lihat [Edit .mcp.json secara langsung](#edit-mcp-json-directly).311* **Cloud sessions**: komit `.mcp.json` ke repositori Anda; sesi dengan satu repositori memuatnya. Lihat [Edit .mcp.json secara langsung](#edit-mcp-json-directly) dan [Apa yang terbawa dari pengaturan Anda](/docs/id/cloud-environments#what-carries-over-from-your-setup).

312* **Claude.ai**: konektor yang Anda tambahkan di [claude.ai/customize/connectors](https://claude.ai/customize/connectors) dimuat secara otomatis di CLI ketika Anda masuk dengan akun itu. Lihat [Gunakan server MCP dari Claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai).312* **Claude.ai**: konektor yang Anda tambahkan di [claude.ai/customize/connectors](https://claude.ai/customize/connectors) dimuat secara otomatis di CLI ketika Anda masuk dengan akun itu. Lihat [Gunakan server MCP dari Claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai).

313 313 

314<h2 id="troubleshooting">314<h2 id="troubleshooting">

memory.md +214 −85

Details

4 4 

5# Bagaimana Claude mengingat proyek Anda5# Bagaimana Claude mengingat proyek Anda

6 6 

7> Berikan Claude instruksi persisten dengan file CLAUDE.md, dan biarkan Claude mengumpulkan pembelajaran secara otomatis dengan auto memory.7> Berikan Claude instruksi persisten dengan file CLAUDE.md atau AGENTS.md, dan biarkan Claude mengumpulkan pembelajaran secara otomatis dengan auto memory.

8 8 

9Setiap sesi Claude Code dimulai dengan context window yang segar. Dua mekanisme membawa pengetahuan lintas sesi:9Setiap sesi Claude Code dimulai dengan context window yang segar. Dua mekanisme membawa pengetahuan lintas sesi:

10 10 

11* **File CLAUDE.md**: instruksi yang Anda tulis untuk memberikan Claude konteks persisten11* **File CLAUDE.md**: instruksi yang Anda tulis untuk memberikan Claude konteks persisten. Claude juga dapat membaca file [`AGENTS.md`](#agents-md) repositori, sendiri atau bersama CLAUDE.md

12* **Auto memory**: catatan yang Claude tulis sendiri berdasarkan koreksi dan preferensi Anda12* **Auto memory**: catatan yang Claude tulis sendiri berdasarkan koreksi dan preferensi Anda

13 13 

14Halaman ini mencakup cara untuk:14Halaman ini mencakup cara untuk:

15 15 

16* [Menulis dan mengorganisir file CLAUDE.md](#claude-md-files)16* [Menulis dan mengorganisir file CLAUDE.md](#claude-md-files)

17* [Menggunakan AGENTS.md yang sudah ada](#agents-md) sebagai instruksi proyek Anda, sendiri atau bersama CLAUDE.md

17* [Membatasi aturan ke tipe file tertentu](#organize-rules-with-claude/rules/) dengan `.claude/rules/`18* [Membatasi aturan ke tipe file tertentu](#organize-rules-with-claude/rules/) dengan `.claude/rules/`

18* [Mengonfigurasi auto memory](#auto-memory) agar Claude membuat catatan secara otomatis19* [Mengonfigurasi auto memory](#auto-memory) agar Claude membuat catatan secara otomatis

19* [Troubleshoot](#troubleshoot-memory-issues) ketika instruksi tidak diikuti20* [Troubleshoot](#troubleshoot-memory-issues) ketika instruksi tidak diikuti


40 File CLAUDE.md41 File CLAUDE.md

41</h2>42</h2>

42 43 

43File CLAUDE.md adalah file markdown yang memberikan Claude instruksi persisten untuk proyek, alur kerja pribadi Anda, atau seluruh organisasi Anda. Anda menulis file ini dalam teks biasa; Claude membacanya di awal setiap sesi.44File CLAUDE.md adalah file markdown yang memberikan instruksi persisten kepada Claude untuk proyek, alur kerja pribadi Anda, atau seluruh organisasi Anda. Anda menulis file ini dalam teks biasa; Claude membacanya di awal setiap sesi. Jika repositori Anda menggunakan `AGENTS.md` sebagai gantinya, lihat [AGENTS.md](#agents-md).

44 45 

45<h3 id="when-to-add-to-claude-md">46<h3 id="when-to-add-to-claude-md">

46 Kapan harus menambahkan ke CLAUDE.md47 Kapan menambahkan ke CLAUDE.md

47</h3>48</h3>

48 49 

49Perlakukan CLAUDE.md sebagai tempat Anda menulis apa yang sebaliknya akan Anda jelaskan kembali. Tambahkan ke dalamnya ketika:50Perlakukan CLAUDE.md sebagai tempat Anda menuliskan apa yang sebaliknya akan Anda jelaskan kembali. Tambahkan ke dalamnya ketika:

50 51 

51* Claude membuat kesalahan yang sama untuk kedua kalinya52* Claude membuat kesalahan yang sama untuk kedua kalinya

52* Tinjauan kode menangkap sesuatu yang seharusnya Claude ketahui tentang basis kode ini53* Tinjauan kode menangkap sesuatu yang seharusnya Claude ketahui tentang basis kode ini

53* Anda mengetik koreksi atau klarifikasi yang sama ke dalam chat yang Anda ketik di sesi terakhir54* Anda mengetik koreksi atau klarifikasi yang sama ke dalam chat yang Anda ketik di sesi terakhir

54* Anggota tim baru akan membutuhkan konteks yang sama untuk produktif55* Anggota tim baru akan membutuhkan konteks yang sama untuk produktif

55 56 

56Pertahankan fakta yang seharusnya Claude pegang di setiap sesi: perintah build, konvensi, tata letak proyek, aturan "selalu lakukan X". Jika entri adalah prosedur multi-langkah atau hanya penting untuk satu bagian dari basis kode, pindahkan ke [skill](/docs/id/skills) atau [aturan bersyarat jalur](#organize-rules-with-claude/rules/) sebagai gantinya. [Gambaran umum ekstensi](/docs/id/features-overview#build-your-setup-over-time) mencakup kapan menggunakan setiap mekanisme.57Pertahankan itu untuk fakta yang harus Claude pegang di setiap sesi: perintah build, konvensi, tata letak proyek, aturan "selalu lakukan X". Jika entri adalah prosedur multi-langkah atau hanya penting untuk satu bagian dari basis kode, pindahkan ke [skill](/docs/id/skills) atau [aturan dengan cakupan path](#organize-rules-with-claude/rules/) sebagai gantinya. [Ringkasan ekstensi](/docs/id/features-overview#build-your-setup-over-time) mencakup kapan menggunakan setiap mekanisme.

57 58 

58<h3 id="choose-where-to-put-claude-md-files">59<h3 id="choose-where-to-put-claude-md-files">

59 Pilih di mana menempatkan file CLAUDE.md60 Pilih di mana menempatkan file CLAUDE.md

60</h3>61</h3>

61 62 

62File CLAUDE.md dapat berada di beberapa lokasi, masing-masing dengan cakupan yang berbeda. Tabel di bawah mencantumkan mereka dalam urutan pemuatan, dari cakupan terluas hingga paling spesifik, jadi instruksi proyek muncul dalam konteks setelah instruksi pengguna.63File CLAUDE.md dapat berada di beberapa lokasi, masing-masing dengan cakupan berbeda. Tabel di bawah mencantumnya dalam urutan pemuatan, dari cakupan terluas hingga paling spesifik, sehingga instruksi proyek muncul dalam konteks setelah instruksi pengguna.

63 64 

64| Cakupan | Lokasi | Tujuan | Contoh kasus penggunaan | Dibagikan dengan |65| Cakupan | Lokasi | Tujuan | Contoh kasus penggunaan | Dibagikan dengan |

65| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------ | ---------------------------------- |66| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------ | ---------------------------------- |

66| **Kebijakan terkelola** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux dan WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | Instruksi di seluruh organisasi yang dikelola oleh IT/DevOps | Standar pengkodean perusahaan, kebijakan keamanan, persyaratan kepatuhan | Semua pengguna dalam organisasi |67| **Kebijakan terkelola** | • macOS: `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux dan WSL: `/etc/claude-code/CLAUDE.md`<br />• Windows: `C:\Program Files\ClaudeCode\CLAUDE.md` | Instruksi di seluruh organisasi yang dikelola oleh IT/DevOps | Standar pengkodean perusahaan, kebijakan keamanan, persyaratan kepatuhan | Semua pengguna dalam organisasi |

67| **Instruksi pengguna** | `~/.claude/CLAUDE.md` | Preferensi pribadi untuk semua proyek | Preferensi gaya kode, pintasan alat pribadi | Hanya Anda (semua proyek) |68| **Instruksi pengguna** | `~/.claude/CLAUDE.md` | Preferensi pribadi untuk semua proyek | Preferensi gaya kode, pintasan alat pribadi | Hanya Anda (semua proyek) |

68| **Instruksi proyek** | `./CLAUDE.md` atau `./.claude/CLAUDE.md` | Instruksi bersama tim untuk proyek | Arsitektur proyek, standar pengkodean, alur kerja umum | Anggota tim melalui kontrol sumber |69| **Instruksi proyek** | `./CLAUDE.md` atau `./.claude/CLAUDE.md`. Lihat [AGENTS.md](#agents-md) untuk kapan `./AGENTS.md` dimuat sebagai gantinya atau bersama dengannya | Instruksi bersama tim untuk proyek | Arsitektur proyek, standar pengkodean, alur kerja umum | Anggota tim melalui kontrol sumber |

69| **Instruksi lokal** | `./CLAUDE.local.md` | Preferensi pribadi khusus proyek; tambahkan ke `.gitignore` | URL sandbox Anda, data test pilihan | Hanya Anda (proyek saat ini) |70| **Instruksi lokal** | `./CLAUDE.local.md` | Preferensi pribadi khusus proyek; tambahkan ke `.gitignore` | URL sandbox Anda, data uji pilihan | Hanya Anda (proyek saat ini) |

70 71 

71File CLAUDE.md dan CLAUDE.local.md dalam hierarki direktori di atas direktori kerja dimuat sepenuhnya saat peluncuran. File di subdirektori dimuat sesuai permintaan ketika Claude membaca file di direktori tersebut. Lihat [Bagaimana file CLAUDE.md dimuat](#how-claude-md-files-load) untuk urutan resolusi lengkap.72File CLAUDE.md dan CLAUDE.local.md dalam hierarki direktori di atas direktori kerja dimuat saat peluncuran. File di subdirektori dimuat sesuai permintaan ketika Claude membaca file di direktori tersebut. Lihat [Bagaimana file CLAUDE.md dimuat](#how-claude-md-files-load) untuk urutan resolusi lengkap.

72 73 

73Untuk proyek besar, Anda dapat memecah instruksi menjadi file khusus topik menggunakan [aturan proyek](#organize-rules-with-claude/rules/). Aturan memungkinkan Anda membatasi instruksi ke tipe file atau subdirektori tertentu.74Untuk proyek besar, Anda dapat memecah instruksi menjadi file khusus topik menggunakan [aturan proyek](#organize-rules-with-claude/rules/). Aturan memungkinkan Anda membatasi instruksi ke jenis file atau subdirektori tertentu.

74 75 

75<h3 id="set-up-a-project-claude-md">76<h3 id="set-up-a-project-claude-md">

76 Siapkan CLAUDE.md proyek77 Siapkan CLAUDE.md proyek


88 Tulis instruksi yang efektif89 Tulis instruksi yang efektif

89</h3>90</h3>

90 91 

91File CLAUDE.md dimuat ke dalam context window di awal setiap sesi, mengonsumsi token bersama percakapan Anda. [Visualisasi context window](/docs/id/context-window) menunjukkan di mana CLAUDE.md dimuat relatif terhadap sisa startup context. Karena mereka adalah konteks daripada konfigurasi yang diberlakukan, cara Anda menulis instruksi mempengaruhi seberapa andal Claude mengikutinya. Instruksi yang spesifik, ringkas, dan terstruktur dengan baik bekerja paling baik.92File CLAUDE.md dimuat ke jendela konteks di awal setiap sesi, mengonsumsi token bersama percakapan Anda. [Visualisasi jendela konteks](/docs/id/context-window) menunjukkan di mana CLAUDE.md dimuat relatif terhadap sisa konteks startup. Karena mereka adalah konteks daripada konfigurasi yang ditegakkan, cara Anda menulis instruksi mempengaruhi seberapa andal Claude mengikutinya. Instruksi yang spesifik, ringkas, dan terstruktur dengan baik bekerja paling baik.

92 93 

93**Ukuran**: targetkan di bawah 200 baris per file CLAUDE.md. File yang lebih panjang mengonsumsi lebih banyak konteks dan mengurangi kepatuhan. Jika instruksi Anda berkembang besar, gunakan [aturan bersyarat jalur](#path-specific-rules) sehingga instruksi hanya dimuat ketika Claude bekerja dengan file yang cocok, menghemat ruang konteks. Anda juga dapat membagi konten menjadi [impor](#import-additional-files) untuk organisasi, meskipun file yang diimpor masih dimuat dan memasuki context window saat peluncuran.94**Ukuran**: targetkan di bawah 200 baris per file CLAUDE.md. File yang lebih panjang mengonsumsi lebih banyak konteks dan mengurangi kepatuhan. Jika instruksi Anda berkembang besar, gunakan [aturan dengan cakupan path](#path-specific-rules) sehingga instruksi hanya dimuat ketika Claude bekerja dengan file yang cocok. Anda juga dapat membagi konten menjadi [impor](#import-additional-files) untuk organisasi, meskipun file yang diimpor masih dimuat dan memasuki jendela konteks saat peluncuran.

94 95 

95**Struktur**: gunakan header markdown dan bullet untuk mengelompokkan instruksi terkait. Claude memindai struktur dengan cara yang sama seperti pembaca: bagian yang terorganisir lebih mudah diikuti daripada paragraf padat.96**Struktur**: gunakan header markdown dan bullet untuk mengelompokkan instruksi terkait. Claude memindai struktur dengan cara yang sama seperti pembaca: bagian yang terorganisir lebih mudah diikuti daripada paragraf padat.

96 97 

97**Spesifisitas**: tulis instruksi yang cukup konkret untuk diverifikasi. Misalnya:98**Spesifisitas**: tulis instruksi yang cukup konkret untuk diverifikasi. Sebagai contoh:

98 99 

99* "Gunakan indentasi 2 spasi" daripada "Format kode dengan baik"100* "Gunakan indentasi 2 spasi" daripada "Format kode dengan benar"

100* "Jalankan `npm test` sebelum commit" daripada "Uji perubahan Anda"101* "Jalankan `npm test` sebelum commit" daripada "Uji perubahan Anda"

101* "Handler API berada di `src/api/handlers/`" daripada "Jaga file tetap terorganisir"102* "Handler API berada di `src/api/handlers/`" daripada "Jaga file tetap terorganisir"

102 103 

103**Konsistensi**: jika dua aturan saling bertentangan, Claude mungkin memilih satu secara sembarangan. Tinjau file CLAUDE.md Anda, file CLAUDE.md bersarang di subdirektori, dan file [`.claude/rules/`](#organize-rules-with-claude/rules/) secara berkala untuk menghapus instruksi yang ketinggalan zaman atau bertentangan. Dalam monorepo, gunakan [`claudeMdExcludes`](#exclude-specific-claude-md-files) untuk melewati file CLAUDE.md dari tim lain yang tidak relevan dengan pekerjaan Anda.104**Konsistensi**: jika dua aturan saling bertentangan, Claude mungkin memilih satu secara sewenang-wenang. Tinjau file CLAUDE.md Anda, file CLAUDE.md bersarang di subdirektori, dan [`.claude/rules/`](#organize-rules-with-claude/rules/) secara berkala untuk menghapus instruksi yang ketinggalan zaman atau bertentangan. Dalam monorepo, gunakan [`claudeMdExcludes`](#exclude-specific-claude-md-files) untuk melewati file CLAUDE.md dari tim lain yang tidak relevan dengan pekerjaan Anda.

104 105 

105<h3 id="import-additional-files">106<h3 id="import-additional-files">

106 Impor file tambahan107 Impor file tambahan

107</h3>108</h3>

108 109 

109File CLAUDE.md dapat mengimpor file tambahan menggunakan sintaks `@path/to/import`. File yang diimpor diperluas dan dimuat ke dalam konteks saat peluncuran bersama CLAUDE.md yang mereferensikannya.110File CLAUDE.md dapat mengimpor file tambahan menggunakan sintaks `@path/to/import`. File yang diimpor diperluas dan dimuat ke konteks saat peluncuran bersama CLAUDE.md yang mereferensikannya.

110 111 

111Jalur relatif dan absolut diizinkan. Jalur relatif diselesaikan relatif terhadap file yang berisi impor, bukan direktori kerja. File yang diimpor dapat secara rekursif mengimpor file lain, dengan kedalaman maksimal empat hop.112Jalur relatif dan absolut diizinkan. Jalur relatif diselesaikan relatif terhadap file yang berisi impor, bukan direktori kerja. File yang diimpor dapat secara rekursif mengimpor file lain, dengan kedalaman maksimal empat hop.

112 113 

113Penguraian impor melewati rentang kode Markdown dan blok kode yang dibatasi. Untuk menyebutkan jalur di CLAUDE.md Anda tanpa mengimpornya, bungkus dalam backtick: menulis `` `@README` `` membuat teks tetap literal, sementara `@README` di luar backtick mengimpor file.114Penguraian impor melewati rentang kode Markdown dan blok kode yang dibatasi. Untuk menyebutkan jalur di CLAUDE.md Anda tanpa mengimpornya, bungkus dalam backtick: menulis `` `@README` `` membuat teks literal, sementara `@README` di luar backtick mengimpor file.

114 115 

115Untuk menarik README, package.json, dan panduan alur kerja, referensikan mereka dengan sintaks `@` di mana saja di CLAUDE.md Anda:116Untuk menarik README, package.json, dan panduan alur kerja, referensikan dengan sintaks `@` di mana saja di CLAUDE.md Anda:

116 117 

117```text theme={null}118```text theme={null}

118Lihat @README untuk gambaran umum proyek dan @package.json untuk perintah npm yang tersedia untuk proyek ini.119Lihat @README untuk ringkasan proyek dan @package.json untuk perintah npm yang tersedia untuk proyek ini.

119 120 

120# Instruksi Tambahan121# Instruksi Tambahan

121- alur kerja git @docs/git-instructions.md122- alur kerja git @docs/git-instructions.md

122```123```

123 124 

124Untuk preferensi pribadi per-proyek yang tidak ingin Anda periksa ke dalam kontrol versi, buat `CLAUDE.local.md` di root proyek. Itu dimuat bersama `CLAUDE.md` dan diperlakukan dengan cara yang sama. Tambahkan `CLAUDE.local.md` ke `.gitignore` Anda sehingga tidak dikomit. Dengan `CLAUDE_CODE_NEW_INIT=1` diatur, menjalankan `/init` dan memilih opsi pribadi melakukan ini untuk Anda.125Untuk preferensi pribadi per-proyek yang tidak boleh diperiksa ke kontrol versi, buat `CLAUDE.local.md` di akar proyek. Ini dimuat bersama `CLAUDE.md` dan diperlakukan dengan cara yang sama. Tambahkan `CLAUDE.local.md` ke `.gitignore` Anda sehingga tidak dikomit. Dengan `CLAUDE_CODE_NEW_INIT=1` diatur, menjalankan `/init` dan memilih opsi pribadi melakukan ini untuk Anda.

125 126 

126Jika Anda bekerja di seluruh beberapa git worktrees dari repositori yang sama, `CLAUDE.local.md` yang diabaikan git hanya ada di worktree tempat Anda membuatnya. Untuk berbagi instruksi pribadi di seluruh worktrees, impor file dari direktori home Anda sebagai gantinya:127Jika Anda bekerja di beberapa git worktrees dari repositori yang sama, `CLAUDE.local.md` yang diabaikan git hanya ada di worktree tempat Anda membuatnya. Untuk berbagi instruksi pribadi di seluruh worktrees, impor file dari direktori home Anda sebagai gantinya:

127 128 

128```text theme={null}129```text theme={null}

129# Preferensi Individu130# Preferensi Individu


131```132```

132 133 

133<Warning>134<Warning>

134 Impor dalam file memori tingkat proyek bersifat eksternal ketika jalurnya diselesaikan di luar direktori kerja Anda, seperti impor direktori home di atas. Pertama kali Claude Code menemukan impor eksternal dalam proyek, itu menampilkan dialog persetujuan yang mencantumkan file. Jika Anda menolak, impor tetap dinonaktifkan dan dialog tidak muncul lagi.135 Impor dalam file memori tingkat proyek bersifat eksternal ketika jalurnya diselesaikan di luar direktori kerja Anda, seperti impor direktori home di atas. Pertama kali Claude Code menemukan impor eksternal dalam proyek, ia menampilkan dialog persetujuan yang mencantumkan file. Jika Anda menolak, impor tetap dinonaktifkan dan dialog tidak muncul lagi.

135 136 

136 Claude Code menampilkan dialog untuk melindungi Anda dari file yang orang lain komit ke proyek bersama. File memori tingkat pengguna, seperti `~/.claude/CLAUDE.md` dan `~/.claude/rules/`, adalah file yang Anda tulis sendiri. Kecuali dalam sesi [Cowork](https://claude.com/product/cowork) di desktop Anda, Claude Code memuat impor mereka tanpa dialog dan mempercayai mereka seperti sisa konfigurasi pribadi Anda.137 Claude Code menampilkan dialog untuk melindungi Anda dari file yang orang lain komit ke proyek bersama. File memori tingkat pengguna, seperti `~/.claude/CLAUDE.md` dan `~/.claude/rules/`, adalah file yang Anda tulis sendiri. Kecuali dalam sesi [Cowork](https://claude.com/product/cowork) di desktop Anda, Claude Code memuat impor mereka tanpa dialog dan mempercayai mereka seperti sisa konfigurasi pribadi Anda.

137 138 

138 Dalam sesi Cowork di desktop Anda, Claude Code melewati impor apa pun dalam file tingkat pengguna yang diselesaikan ke jalur di luar direktori kerja sesi dan memuat sisa file. Dalam sesi tersebut, itu juga melewati `~/.claude/CLAUDE.md` yang merupakan symlink atau hard link, dan direktori `~/.claude/rules/` yang disymlink atau file aturan yang menunjuk di luar direktori kerja.139 Dalam sesi Cowork di desktop Anda, Claude Code melewati impor apa pun dalam file tingkat pengguna yang diselesaikan ke jalur di luar direktori kerja sesi dan memuat sisa file. Dalam sesi tersebut juga melewati `~/.claude/CLAUDE.md` yang merupakan symlink atau hard link, dan direktori `~/.claude/rules/` atau file aturan yang disymlink yang menunjuk di luar direktori kerja.

139</Warning>140</Warning>

140 141 

141<h3 id="agents-md">

142 AGENTS.md

143</h3>

144 

145Claude Code membaca `CLAUDE.md`, bukan `AGENTS.md`. Jika repositori Anda sudah menggunakan `AGENTS.md` untuk agen pengkodean lain, buat `CLAUDE.md` yang mengimpornya sehingga kedua alat membaca instruksi yang sama tanpa menduplikasinya. Anda juga dapat menambahkan instruksi khusus Claude di bawah impor. Claude memuat file yang diimpor saat awal sesi, kemudian menambahkan sisanya:

146 

147```markdown CLAUDE.md theme={null}

148@AGENTS.md

149 

150## Claude Code

151 

152Gunakan plan mode untuk perubahan di bawah `src/billing/`.

153```

154 

155Symlink juga berfungsi jika Anda tidak perlu menambahkan konten khusus Claude:

156 

157```bash theme={null}

158ln -s AGENTS.md CLAUDE.md

159```

160 

161Perintah tidak mencetak output saat berhasil. Dalam sesi berikutnya, jalankan `/context` dan konfirmasi `CLAUDE.md` muncul di bawah **Memory files**.

162 

163Di Windows, membuat symlink memerlukan hak istimewa Administrator atau Developer Mode, jadi gunakan impor `@AGENTS.md` sebagai gantinya.

164 

165Menjalankan [`/init`](/docs/id/commands) membaca aturan Cursor, di `.cursor/rules/` atau `.cursorrules`, dan aturan Copilot, di `.github/copilot-instructions.md`, dan menggabungkan bagian yang relevan ke dalam `CLAUDE.md` yang dihasilkan. Dengan `CLAUDE_CODE_NEW_INIT=1` diatur, `/init` juga membaca `AGENTS.md`, `.devin/rules/`, `.windsurf/rules/` atau `.windsurfrules`, dan `.clinerules`.

166 

167Anda juga dapat menjalankan [`/import`](/docs/id/commands) untuk membawa konfigurasi agen pengkodean yang didukung ke dalam Claude Code, yang menambahkan salinan satu kali file instruksi seperti `AGENTS.md` ke `CLAUDE.md` yang cocok dan membawa server MCP, perintah, subagent, dan skills. Memerlukan Claude Code v2.1.213 atau lebih baru.

168 

169<h3 id="how-claude-md-files-load">142<h3 id="how-claude-md-files-load">

170 Bagaimana file CLAUDE.md dimuat143 Bagaimana file CLAUDE.md dimuat

171</h3>144</h3>

172 145 

173Claude Code memuat `CLAUDE.md` dan `CLAUDE.local.md` dari direktori kerja saat ini dan setiap direktori di atasnya. Jalankan Claude Code di `foo/bar/` dan itu memuat instruksi dari `foo/bar/CLAUDE.md`, `foo/CLAUDE.md`, dan file `CLAUDE.local.md` apa pun di sebelahnya.146Claude Code memuat `CLAUDE.md` dan `CLAUDE.local.md` dari direktori kerja saat ini dan setiap direktori di atasnya. Jalankan Claude Code di `foo/bar/` dan itu memuat instruksi dari `foo/bar/CLAUDE.md`, `foo/CLAUDE.md`, dan file `CLAUDE.local.md` apa pun di sampingnya.

174 147 

175Semua file yang ditemukan digabungkan ke dalam konteks daripada menimpa satu sama lain. Dalam pohon direktori, konten diurutkan dari root sistem file ke bawah ke direktori kerja Anda. Untuk contoh `foo/bar/`, `foo/CLAUDE.md` muncul dalam konteks sebelum `foo/bar/CLAUDE.md`, jadi instruksi yang lebih dekat dengan tempat Anda meluncurkan Claude dibaca terakhir. Dalam setiap direktori, `CLAUDE.local.md` ditambahkan setelah `CLAUDE.md`, jadi catatan pribadi Anda adalah hal terakhir yang Claude baca di tingkat itu.148Semua file yang ditemukan digabungkan ke dalam konteks daripada menimpa satu sama lain. Di seluruh pohon direktori, konten diurutkan dari akar sistem file ke bawah ke direktori kerja Anda. Untuk contoh `foo/bar/`, `foo/CLAUDE.md` muncul dalam konteks sebelum `foo/bar/CLAUDE.md`, jadi instruksi lebih dekat ke tempat Anda meluncurkan Claude dibaca terakhir. Dalam setiap direktori, `CLAUDE.local.md` ditambahkan setelah `CLAUDE.md`, jadi catatan pribadi Anda adalah hal terakhir yang Claude baca di tingkat itu.

176 149 

177Claude juga menemukan file `CLAUDE.md` dan `CLAUDE.local.md` di subdirektori di bawah direktori kerja saat ini. Alih-alih memuatnya saat peluncuran, mereka disertakan ketika Claude membaca file di subdirektori tersebut.150Claude juga menemukan file `CLAUDE.md` dan `CLAUDE.local.md` di subdirektori di bawah direktori kerja saat ini. Daripada memuat mereka saat peluncuran, mereka disertakan ketika Claude membaca file di subdirektori tersebut.

178 151 

179Jika Anda bekerja di monorepo besar di mana file CLAUDE.md tim lain diambil, gunakan [`claudeMdExcludes`](#exclude-specific-claude-md-files) untuk melewatinya. Untuk tata letak lengkap file CLAUDE.md root dan per-direktori serta aturan, lihat [Monorepo dan repo besar](/docs/id/large-codebases).152Jika Anda bekerja di monorepo besar di mana file CLAUDE.md tim lain diambil, gunakan [`claudeMdExcludes`](#exclude-specific-claude-md-files) untuk melewatinya. Untuk tata letak lengkap file CLAUDE.md akar dan per-direktori serta aturan, lihat [Monorepo dan repositori besar](/docs/id/large-codebases).

180 153 

181Komentar HTML tingkat blok (`<!-- maintainer notes -->`) dalam file CLAUDE.md dihapus sebelum konten disuntikkan ke dalam konteks Claude. Gunakan mereka untuk meninggalkan catatan bagi pengelola manusia tanpa menghabiskan token konteks pada mereka. Komentar di dalam blok kode dipertahankan. Ketika Anda membuka file CLAUDE.md secara langsung dengan alat Read, komentar tetap terlihat.154Komentar HTML tingkat blok (`<!-- maintainer notes -->`) dalam file CLAUDE.md dilepas sebelum konten disuntikkan ke konteks Claude. Gunakan mereka untuk meninggalkan catatan untuk pengelola manusia tanpa menghabiskan token konteks pada mereka. Komentar di dalam blok kode dipertahankan. Ketika Anda membuka file CLAUDE.md langsung dengan alat Read, komentar tetap terlihat.

182 155 

183<h4 id="load-from-additional-directories">156<h4 id="load-from-additional-directories">

184 Muat dari direktori tambahan157 Muat dari direktori tambahan

185</h4>158</h4>

186 159 

187Flag `--add-dir` memberikan Claude akses ke direktori tambahan di luar direktori kerja utama Anda. Secara default, file CLAUDE.md dari direktori ini tidak dimuat.160Bendera `--add-dir` memberikan Claude akses ke direktori tambahan di luar direktori kerja utama Anda. Secara default, file CLAUDE.md dari direktori ini tidak dimuat.

188 161 

189Untuk juga memuat file memori dari direktori tambahan, atur variabel lingkungan `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`:162Untuk juga memuat file memori dari direktori tambahan, atur variabel lingkungan `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`:

190 163 


195Ini memuat `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, dan `CLAUDE.local.md` dari direktori tambahan. `CLAUDE.local.md` dilewati jika Anda mengecualikan `local` dari [`--setting-sources`](/docs/id/cli-reference).168Ini memuat `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, dan `CLAUDE.local.md` dari direktori tambahan. `CLAUDE.local.md` dilewati jika Anda mengecualikan `local` dari [`--setting-sources`](/docs/id/cli-reference).

196 169 

197<h3 id="organize-rules-with-claude/rules/">170<h3 id="organize-rules-with-claude/rules/">

198 Organisir aturan dengan `.claude/rules/`171 Atur aturan dengan `.claude/rules/`

199</h3>172</h3>

200 173 

201Untuk proyek yang lebih besar, Anda dapat mengorganisir instruksi menjadi beberapa file menggunakan direktori `.claude/rules/`. Ini membuat instruksi modular dan lebih mudah bagi tim untuk dipertahankan. Aturan juga dapat [dibatasi ke jalur file tertentu](#path-specific-rules), sehingga mereka hanya dimuat ke dalam konteks ketika Claude bekerja dengan file yang cocok, mengurangi kebisingan dan menghemat ruang konteks.174Untuk proyek yang lebih besar, Anda dapat mengatur instruksi menjadi beberapa file menggunakan direktori `.claude/rules/`. Ini membuat instruksi modular dan lebih mudah bagi tim untuk dipertahankan. Aturan juga dapat [dibatasi ke jalur file tertentu](#path-specific-rules), sehingga mereka hanya dimuat ke konteks ketika Claude bekerja dengan file yang cocok, mengurangi kebisingan dan menghemat ruang konteks.

202 175 

203<Note>176<Note>

204 Aturan dimuat ke dalam konteks setiap sesi atau ketika file yang cocok dibuka. Untuk instruksi khusus tugas yang tidak perlu berada dalam konteks sepanjang waktu, gunakan [skills](/docs/id/skills) sebagai gantinya, yang hanya dimuat ketika Anda menginvokasinya atau ketika Claude menentukan mereka relevan dengan prompt Anda.177 Aturan dimuat ke konteks setiap sesi atau ketika file yang cocok dibuka. Untuk instruksi khusus tugas yang tidak perlu berada dalam konteks sepanjang waktu, gunakan [skills](/docs/id/skills) sebagai gantinya, yang hanya dimuat ketika Anda menginvokasinya atau ketika Claude menentukan mereka relevan dengan prompt Anda.

205</Note>178</Note>

206 179 

207<h4 id="set-up-rules">180<h4 id="set-up-rules">

208 Siapkan aturan181 Siapkan aturan

209</h4>182</h4>

210 183 

211Tempatkan file markdown di direktori `.claude/rules/` proyek Anda. Setiap file harus mencakup satu topik, dengan nama file deskriptif seperti `testing.md` atau `api-design.md`. Semua file `.md` ditemukan secara rekursif, jadi Anda dapat mengorganisir aturan ke dalam subdirektori seperti `frontend/` atau `backend/`:184Tempatkan file markdown di direktori `.claude/rules/` proyek Anda. Setiap file harus mencakup satu topik, dengan nama file deskriptif seperti `testing.md` atau `api-design.md`. Semua file `.md` ditemukan secara rekursif, sehingga Anda dapat mengatur aturan ke dalam subdirektori seperti `frontend/` atau `backend/`:

212 185 

213```text theme={null}186```text theme={null}

214your-project/187your-project/


222 195 

223Aturan tanpa [frontmatter `paths`](#path-specific-rules) dimuat saat peluncuran dengan prioritas yang sama seperti `.claude/CLAUDE.md`.196Aturan tanpa [frontmatter `paths`](#path-specific-rules) dimuat saat peluncuran dengan prioritas yang sama seperti `.claude/CLAUDE.md`.

224 197 

225Aturan proyek dilewati jika Anda mengecualikan `project` dari [`--setting-sources`](/docs/id/cli-reference). Sebelum v2.1.211, aturan yang dimuat sesuai permintaan, termasuk aturan bersyarat jalur dan aturan di direktori `.claude/rules/` bersarang, dimuat bahkan ketika `project` dikecualikan.198Aturan proyek dilewati jika Anda mengecualikan `project` dari [`--setting-sources`](/docs/id/cli-reference). Sebelum v2.1.211, aturan yang dimuat sesuai permintaan, termasuk aturan dengan cakupan path dan aturan di direktori `.claude/rules/` bersarang, dimuat bahkan ketika `project` dikecualikan.

226 199 

227<h4 id="path-specific-rules">200<h4 id="path-specific-rules">

228 Aturan khusus jalur201 Aturan khusus path

229</h4>202</h4>

230 203 

231Aturan dapat dibatasi ke file tertentu menggunakan frontmatter YAML dengan bidang `paths`. Aturan bersyarat ini hanya berlaku ketika Claude bekerja dengan file yang cocok dengan pola yang ditentukan.204Aturan dapat dibatasi ke file tertentu menggunakan frontmatter YAML dengan bidang `paths`. Aturan bersyarat ini hanya berlaku ketika Claude bekerja dengan file yang cocok dengan pola yang ditentukan.


243- Sertakan komentar dokumentasi OpenAPI216- Sertakan komentar dokumentasi OpenAPI

244```217```

245 218 

246Aturan tanpa bidang `paths` dimuat tanpa syarat dan berlaku untuk semua file. Aturan bersyarat jalur dipicu ketika Claude membaca file yang cocok dengan pola, bukan pada setiap penggunaan alat. Sejak v2.1.198, pencocokan juga berfungsi ketika Claude mencapai file melalui jalur symlink ke direktori proyek, misalnya dalam checkout yang disymlink.219Aturan tanpa bidang `paths` dimuat tanpa syarat dan berlaku untuk semua file. Aturan dengan cakupan path dipicu ketika Claude membaca file yang cocok dengan pola, bukan pada setiap penggunaan alat. Mulai dari v2.1.198, pencocokan juga berfungsi ketika Claude mencapai file melalui jalur symlink ke direktori proyek, misalnya dalam checkout yang disymlink.

247 220 

248Gunakan pola glob di bidang `paths` untuk mencocokkan file berdasarkan ekstensi, direktori, atau kombinasi apa pun:221Gunakan pola glob dalam bidang `paths` untuk mencocokkan file berdasarkan ekstensi, direktori, atau kombinasi apa pun:

249 222 

250| Pola | Cocok dengan |223| Pola | Cocok dengan |

251| ---------------------- | ------------------------------------------ |224| ---------------------- | ------------------------------------------ |

252| `**/*.ts` | Semua file TypeScript di direktori apa pun |225| `**/*.ts` | Semua file TypeScript di direktori apa pun |

253| `src/**/*` | Semua file di bawah direktori `src/` |226| `src/**/*` | Semua file di bawah direktori `src/` |

254| `*.md` | File Markdown di root proyek |227| `*.md` | File Markdown di akar proyek |

255| `src/components/*.tsx` | Komponen React di direktori tertentu |228| `src/components/*.tsx` | Komponen React di direktori tertentu |

256 229 

257Anda dapat menentukan beberapa pola dan menggunakan ekspansi brace untuk mencocokkan beberapa ekstensi dalam satu pola:230Anda dapat menentukan beberapa pola dan menggunakan ekspansi brace untuk mencocokkan beberapa ekstensi dalam satu pola:


267 240 

268Setiap grup brace mengalikan jumlah pola yang diperluas: `src/*.{ts,tsx}` diperluas menjadi dua pola, dan `{a,b}/{c,d}/*.{ts,tsx}` menjadi delapan. Untuk menjaga ekspansi terbatas, seluruh daftar `paths` aturan berbagi satu anggaran 1.000 pola yang diperluas dan 4 MiB, dan pola tanpa brace tidak dihitung terhadapnya.241Setiap grup brace mengalikan jumlah pola yang diperluas: `src/*.{ts,tsx}` diperluas menjadi dua pola, dan `{a,b}/{c,d}/*.{ts,tsx}` menjadi delapan. Untuk menjaga ekspansi terbatas, seluruh daftar `paths` aturan berbagi satu anggaran 1.000 pola yang diperluas dan 4 MiB, dan pola tanpa brace tidak dihitung terhadapnya.

269 242 

270Claude Code menggunakan pola apa pun yang akan melampaui anggaran yang tidak diperluas, dan brace literal-nya tidak cocok dengan file apa pun. Sebelum v2.1.217, nilai `paths` dengan banyak grup brace menghentikan atau menghancurkan CLI saat startup.243Claude Code menggunakan pola apa pun yang akan melampaui anggaran yang tidak diperluas, dan brace literal mereka tidak cocok dengan file apa pun. Sebelum v2.1.217, nilai `paths` dengan banyak grup brace menghentikan atau menghancurkan CLI saat startup.

271 244 

272Sintaks glob memperlakukan `[` sebagai awal ekspresi bracket seperti `[abc]`. Pola dengan `[` yang tidak dapat dibaca sebagai ekspresi bracket, seperti `photos [2024/**`, tidak valid: itu tidak cocok dengan apa pun, dan pola lain dari aturan terus bekerja. Untuk mencocokkan `[` literal dalam nama file, lepaskan sebagai `photos \[2024/**`. Sebelum v2.1.207, satu pola yang tidak valid membuat alat Read gagal untuk setiap file yang aturan dievaluasi, alih-alih tidak cocok dengan apa pun.245Sintaks Glob memperlakukan `[` sebagai awal ekspresi bracket seperti `[abc]`. Pola dengan `[` yang tidak dapat dibaca sebagai ekspresi bracket, seperti `photos [2024/**`, tidak valid: itu tidak cocok dengan file apa pun, dan pola lain aturan terus bekerja. Untuk mencocokkan `[` literal dalam nama file, lepaskan sebagai `photos \[2024/**`. Sebelum v2.1.207, satu pola tidak valid membuat alat Read gagal untuk setiap file aturan dievaluasi terhadap, daripada tidak cocok dengan apa pun.

273 246 

274<h4 id="share-rules-across-projects-with-symlinks">247<h4 id="share-rules-across-projects-with-symlinks">

275 Bagikan aturan lintas proyek dengan symlinks248 Bagikan aturan di seluruh proyek dengan symlink

276</h4>249</h4>

277 250 

278Direktori `.claude/rules/` mendukung symlinks, jadi Anda dapat mempertahankan set aturan bersama dan menautkannya ke beberapa proyek. Symlinks diselesaikan dan dimuat secara normal, dan symlinks melingkar terdeteksi dan ditangani dengan anggun.251Direktori `.claude/rules/` mendukung symlink, sehingga Anda dapat mempertahankan set aturan bersama dan menautkannya ke beberapa proyek. Symlink melingkar terdeteksi dan ditangani dengan baik.

279 252 

280Claude Code memperlakukan symlink yang target-nya berada di luar direktori kerja Anda seperti [impor eksternal](#import-additional-files). Aturan yang ditautkan tidak dimuat sampai Anda menyetujui impor eksternal untuk proyek, dan setelah itu hanya yang tanpa bidang [`paths`](#path-specific-rules) yang dimuat. Claude Code meminta persetujuan itu hanya ketika file memori proyek mengimpor file di luar direktori kerja dengan `@path`, bukan untuk symlinks saja. Untuk memuat aturan bersama tanpa persetujuan itu, simpan di [`~/.claude/rules/`](#user-level-rules), di mana mereka berlaku untuk setiap proyek di mesin Anda.253Claude Code memperlakukan symlink yang targetnya berada di luar direktori kerja Anda seperti [impor eksternal](#import-additional-files). Aturan yang ditautkan tidak dimuat sampai Anda menyetujui impor eksternal untuk proyek, dan setelah itu hanya yang tanpa [bidang `paths`](#path-specific-rules) yang dimuat. Claude Code meminta persetujuan itu hanya ketika file memori proyek mengimpor file di luar direktori kerja dengan `@path`, bukan untuk symlink saja. Untuk memuat aturan bersama tanpa persetujuan itu, simpan di [`~/.claude/rules/`](#user-level-rules), di mana mereka berlaku untuk setiap proyek di mesin Anda.

281 254 

282Contoh ini menautkan direktori bersama dan file individual:255Contoh ini menautkan direktori bersama dan file individual:

283 256 


324 </Step>297 </Step>

325</Steps>298</Steps>

326 299 

327Kunci `claudeMd` memungkinkan Anda menempatkan konten CLAUDE.md terkelola langsung di dalam `managed-settings.json` alih-alih menerapkan file terpisah.300Kunci `claudeMd` memungkinkan Anda menempatkan konten CLAUDE.md terkelola langsung di dalam `managed-settings.json` daripada menerapkan file terpisah.

328 301 

329**Cakupan**: setiap sesi Claude Code di mesin, di setiap repositori. Untuk panduan khusus repositori, komit CLAUDE.md proyek sebagai gantinya.302**Cakupan**: setiap sesi Claude Code di mesin, di setiap repositori. Untuk panduan khusus repositori, komit CLAUDE.md proyek sebagai gantinya.

330 303 


336 309 

337```json theme={null}310```json theme={null}

338{311{

339 "claudeMd": "Always run `make lint` before committing.\nNever push directly to main."312 "claudeMd": "Selalu jalankan `make lint` sebelum commit.\nJangan pernah push langsung ke main."

340}313}

341```314```

342 315 

343CLAUDE.md terkelola dan [pengaturan terkelola](/docs/id/managed-settings) melayani tujuan yang berbeda. Gunakan pengaturan untuk penegakan teknis dan CLAUDE.md untuk panduan perilaku:316CLAUDE.md terkelola dan [pengaturan terkelola](/docs/id/managed-settings) melayani tujuan berbeda. Gunakan pengaturan untuk penegakan teknis dan CLAUDE.md untuk panduan perilaku:

344 317 

345| Kekhawatiran | Konfigurasi dalam |318| Kekhawatiran | Konfigurasi di |

346| :---------------------------------------------- | :------------------------------------------------------------ |319| :---------------------------------------------- | :------------------------------------------------------------ |

347| Blokir alat, perintah, atau jalur file tertentu | Pengaturan terkelola: `permissions.deny` |320| Blokir alat, perintah, atau jalur file tertentu | Pengaturan terkelola: `permissions.deny` |

348| Paksakan isolasi sandbox | Pengaturan terkelola: `sandbox.enabled` |321| Terapkan isolasi sandbox | Pengaturan terkelola: `sandbox.enabled` |

349| Variabel lingkungan dan perutean penyedia API | Pengaturan terkelola: `env` |322| Variabel lingkungan dan perutean penyedia API | Pengaturan terkelola: `env` |

350| Metode autentikasi dan kunci organisasi | Pengaturan terkelola: `forceLoginMethod`, `forceLoginOrgUUID` |323| Metode login dan pembatasan organisasi | Pengaturan terkelola: `forceLoginMethod`, `forceLoginOrgUUID` |

351| Panduan gaya kode dan kualitas | CLAUDE.md terkelola |324| Pedoman gaya kode dan kualitas | CLAUDE.md terkelola |

352| Pengingat penanganan data dan kepatuhan | CLAUDE.md terkelola |325| Pengingat penanganan data dan kepatuhan | CLAUDE.md terkelola |

353| Instruksi perilaku untuk Claude | CLAUDE.md terkelola |326| Instruksi perilaku untuk Claude | CLAUDE.md terkelola |

354 327 

355Aturan pengaturan diberlakukan oleh klien terlepas dari apa yang Claude putuskan untuk dilakukan. Instruksi CLAUDE.md membentuk perilaku Claude tetapi bukan lapisan penegakan keras.328Aturan pengaturan ditegakkan oleh klien terlepas dari apa yang Claude putuskan untuk dilakukan. Instruksi CLAUDE.md membentuk perilaku Claude tetapi bukan lapisan penegakan keras.

356 329 

357<h4 id="exclude-specific-claude-md-files">330<h4 id="exclude-specific-claude-md-files">

358 Kecualikan file CLAUDE.md tertentu331 Kecualikan file CLAUDE.md tertentu


360 333 

361Dalam monorepo besar, file CLAUDE.md leluhur mungkin berisi instruksi yang tidak relevan dengan pekerjaan Anda. Pengaturan `claudeMdExcludes` memungkinkan Anda melewati file tertentu berdasarkan jalur atau pola glob.334Dalam monorepo besar, file CLAUDE.md leluhur mungkin berisi instruksi yang tidak relevan dengan pekerjaan Anda. Pengaturan `claudeMdExcludes` memungkinkan Anda melewati file tertentu berdasarkan jalur atau pola glob.

362 335 

363Contoh ini mengecualikan CLAUDE.md tingkat atas dan direktori aturan dari folder induk. Tambahkan ke `.claude/settings.local.json` agar pengecualian tetap lokal ke mesin Anda:336Contoh ini mengecualikan CLAUDE.md tingkat atas dan direktori aturan dari folder induk. Tambahkan ke `.claude/settings.local.json` sehingga pengecualian tetap lokal ke mesin Anda:

364 337 

365```json theme={null}338```json theme={null}

366{339{


371}344}

372```345```

373 346 

374Pola dicocokkan dengan jalur file absolut menggunakan sintaks glob. Anda dapat mengonfigurasi `claudeMdExcludes` di lapisan [pengaturan](/docs/id/settings#where-settings-live) apa pun: pengguna, proyek, lokal, atau kebijakan terkelola. Array digabungkan di seluruh lapisan.347Pola dicocokkan dengan jalur file absolut menggunakan sintaks glob. Anda dapat mengonfigurasi `claudeMdExcludes` di [lapisan pengaturan](/docs/id/settings#where-settings-live) apa pun: pengguna, proyek, lokal, atau kebijakan terkelola. Array digabungkan di seluruh lapisan.

375 348 

376Untuk mengecualikan file aturan yang Anda capai melalui [symlink](#share-rules-across-projects-with-symlinks), apakah file atau direktorinya adalah tautan, tulis pola terhadap jalur mana pun: jalur file di bawah `.claude/rules/` atau target tautannya. Pola yang cocok dengan jalur mana pun mengecualikan file. Sebelum v2.1.239, hanya pola yang cocok dengan target tautan yang mengecualikan file.349Untuk mengecualikan file aturan yang Anda jangkau melalui [symlink](#share-rules-across-projects-with-symlinks), apakah file atau direktorinya adalah tautan, tulis pola terhadap jalur mana pun: jalur file di bawah `.claude/rules/` atau target tautannya. Pola yang cocok dengan jalur mana pun mengecualikan file. Sebelum v2.1.239, hanya pola yang cocok dengan target tautan yang mengecualikan file.

377 350 

378File CLAUDE.md kebijakan terkelola tidak dapat dikecualikan. Ini memastikan instruksi di seluruh organisasi selalu berlaku terlepas dari pengaturan individual.351File CLAUDE.md kebijakan terkelola tidak dapat dikecualikan. Ini memastikan instruksi di seluruh organisasi selalu berlaku terlepas dari pengaturan individual.

379 352 

353<h2 id="agents-md">

354 AGENTS.md

355</h2>

356 

357Claude Code dapat membaca [`AGENTS.md`](/docs/id/glossary#agents-md) sebagai instruksi proyek Anda, sehingga repositori yang sudah diatur untuk agen pengkodean lain berfungsi tanpa menambahkan `CLAUDE.md`, impor, atau pengaturan. Tabel ini menunjukkan apa yang Claude baca secara default untuk setiap kombinasi file instruksi di repositori Anda:

358 

359| Repositori Anda memiliki | Claude membaca |

360| :---------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ |

361| `AGENTS.md`, dan tidak ada `CLAUDE.md` atau `CLAUDE.local.md` di direktori kerja Anda atau di atasnya | `AGENTS.md` Anda |

362| `AGENTS.md` dan `CLAUDE.md` atau `CLAUDE.local.md` di direktori kerja Anda atau di atasnya | File `CLAUDE.md` Anda saja |

363| `CLAUDE.md` yang sudah [mengimpor `AGENTS.md`](#share-one-file-with-other-coding-tools) | `CLAUDE.md` Anda, dengan `AGENTS.md` disertakan melalui impor |

364 

365Untuk mengubah default, misalnya untuk membuat Claude selalu membaca kedua file, membaca hanya `CLAUDE.md`, atau membaca hanya instruksi yang dikelola organisasi Anda, [ubah pengaturan **Project instructions**](#choose-which-instruction-files-load).

366 

367<Note>

368 Membaca `AGENTS.md` secara langsung memerlukan Claude Code v2.1.277 atau lebih baru. Dalam beberapa sesi, seperti yang ada di Amazon Bedrock atau dengan telemetri dinonaktifkan, Claude [tidak dapat membaca `AGENTS.md`](#when-agents-md-support-is-unavailable), jadi [impor dari `CLAUDE.md`](#share-one-file-with-other-coding-tools) di sana sebagai gantinya.

369</Note>

370 

371<h3 id="when-claude-code-reads-agents-md">

372 When Claude Code reads AGENTS.md

373</h3>

374 

375Secara default, Claude membaca `AGENTS.md` hanya ketika Anda tidak memiliki `CLAUDE.md` di direktori kerja Anda atau di atasnya. Berikut adalah file Anda mana yang dihitung untuk pemeriksaan itu:

376 

377* **Dihitung, sehingga Claude membacanya alih-alih `AGENTS.md`**: `CLAUDE.md`, `.claude/CLAUDE.md`, atau `CLAUDE.local.md` di direktori kerja Anda atau direktori apa pun di atasnya

378* **Tidak dihitung, dan terus dimuat bersama `AGENTS.md`**: `~/.claude/CLAUDE.md` Anda, `CLAUDE.md` yang dikelola organisasi Anda, dan file `.claude/rules/`

379 

380Ketika tidak ada yang dihitung, berikut adalah apa yang Claude baca dan bagaimana Anda dapat mengetahuinya:

381 

382* **Pada awal sesi**: setiap `AGENTS.md` dan `.claude/AGENTS.md` di direktori kerja Anda dan direktori di atasnya. Dalam sesi interaktif Anda melihat baris seperti `no CLAUDE.md found; AGENTS.md loaded: /home/you/repo/AGENTS.md` dalam percakapan

383* **Saat Claude bekerja di subdirektori**: `AGENTS.md` subdirektori, ketika Claude membuka file di sana dengan alat Read dan subdirektori itu tidak memiliki salah satu dari tiga file `CLAUDE.md` miliknya sendiri

384* **Di dalam setiap `AGENTS.md`**: impor [`@path`](#import-additional-files) diperluas, pola [`claudeMdExcludes`](#exclude-specific-claude-md-files) berlaku, dan subagen yang [melewati instruksi proyek](/docs/id/sub-agents#what-loads-at-startup) melewati file-file ini juga

385* **Tidak dibaca**: `AGENTS.local.md`, `AGENTS.override.md`, atau apa pun di bawah direktori `.agents/`

386 

387<Note>

388 Karena `CLAUDE.local.md` dihitung, menambahkan satu untuk menyimpan instruksi pribadi Anda yang tidak berkomitmen dalam proyek yang bergantung pada `AGENTS.md` menghentikan Claude dari membaca `AGENTS.md` untuk Anda. Untuk menyimpan `CLAUDE.local.md` Anda dan tetap membuat Claude membaca `AGENTS.md`, atur **Project instructions** ke [`claude-md-and-agents-md`](#choose-which-instruction-files-load).

389</Note>

390 

391<h3 id="choose-which-instruction-files-load">

392 Choose which instruction files load

393</h3>

394 

395Untuk mengubah file mana yang Claude baca, ketik `/config` dalam sesi Claude Code untuk membuka panel pengaturan, kemudian atur **Project instructions** ke salah satu nilai berikut:

396 

397| Value | What Claude reads |

398| :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

399| `claude-md-or-agents-md` | File `CLAUDE.md` Anda, atau file `AGENTS.md` Anda ketika Anda tidak memiliki `CLAUDE.md` atau `CLAUDE.local.md` di direktori kerja Anda atau di atasnya. Ini adalah default |

400| `claude-md-and-agents-md` | File `CLAUDE.md` dan `AGENTS.md` Anda bersama-sama, file `CLAUDE.md` setiap direktori terlebih dahulu dan `AGENTS.md` nya setelahnya. Claude Code melewati `AGENTS.md` yang sudah dimuat, sehingga yang diimpor atau disimlink oleh `CLAUDE.md` Anda tidak dibaca dua kali |

401| `claude-md` | File `CLAUDE.md` Anda saja |

402| `managed-only` | Hanya `CLAUDE.md` yang dikelola organisasi Anda dan [auto memory](#auto-memory) saat peluncuran. File `CLAUDE.md` proyek, lokal, dan pengguna Anda, file `.claude/rules/` Anda, dan setiap `AGENTS.md` dikecualikan. File `CLAUDE.md` dan `.claude/rules/` subdirektori, dan [path-scoped rules](#path-specific-rules), tetap dimuat ketika Claude membaca file di sana |

403 

404Anda juga dapat mengatur nilai dalam file pengaturan alih-alih `/config`. Tambahkan di bawah ID plugin `agents-md` bawaan dalam [`pluginConfigs`](/docs/id/settings-reference#pluginconfigs), di `~/.claude/settings.json`, file `--settings`, atau [managed settings](/docs/id/managed-settings). Claude Code mengabaikannya dalam file pengaturan proyek dan lokal. Contoh ini membuat Claude membaca kedua file:

405 

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

407{

408 "pluginConfigs": {

409 "agents-md@builtin": {

410 "options": { "instructionFiles": "claude-md-and-agents-md" }

411 }

412 }

413}

414```

415 

416Perubahan Anda berlaku dari pesan berikutnya yang Anda kirim dan di setiap sesi baru.

417 

418<h3 id="when-agents-md-support-is-unavailable">

419 When AGENTS.md support is unavailable

420</h3>

421 

422Dalam sesi ini Claude membaca file `CLAUDE.md` saja, dan **Project instructions** tidak muncul di panel pengaturan `/config`:

423 

424* Anda menggunakan versi Claude Code sebelum v2.1.277

425* Sesi Anda tidak [mengambil bendera fitur dari Anthropic](/docs/id/env-vars#features-that-need-feature-flag-fetching), misalnya karena Anda menggunakan Amazon Bedrock atau penyedia pihak ketiga lainnya, atau Anda menonaktifkan telemetri. Bagian tertaut memiliki daftar lengkap

426* Ini adalah [sesi pertama Anda setelah Anda menginstal atau meningkatkan](/docs/id/env-vars#first-session-after-an-install-or-upgrade) ke versi dengan dukungan `AGENTS.md`. Claude membaca `AGENTS.md` dari sesi berikutnya Anda

427* Anda atau organisasi Anda mengatur [`disableAllHooks`](/docs/id/settings-reference#disableallhooks) atau [`allowManagedHooksOnly`](/docs/id/settings-reference#allowmanagedhooksonly), atau Anda menonaktifkan plugin `agents-md` bawaan di `/plugin`

428 

429Untuk memberikan Claude `AGENTS.md` Anda dalam sesi ini, [impor dari `CLAUDE.md`](#share-one-file-with-other-coding-tools).

430 

431<h3 id="where-agents-md-differs-from-claude-md">

432 Where AGENTS.md differs from CLAUDE.md

433</h3>

434 

435`AGENTS.md` yang Claude baca melalui pengaturan **Project instructions** berbeda dari `CLAUDE.md` di tempat-tempat ini:

436 

437| | `CLAUDE.md` | `AGENTS.md` dibaca melalui pengaturan |

438| :----------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

439| `/memory` dan daftar **Memory files** di `/context` | Terdaftar | Tidak terdaftar. Untuk mengkonfirmasi Claude membacanya, cari baris [`AGENTS.md loaded`](#when-claude-code-reads-agents-md) di bawah nilai default, atau tanyakan Claude apa instruksi proyeknya |

440| Hook [`InstructionsLoaded`](/docs/id/hooks#instructionsloaded) | Aktif | Tidak aktif. Mereka aktif seperti biasa untuk `AGENTS.md` yang diimpor atau disimlink oleh `CLAUDE.md` |

441| Direktori yang Anda tambahkan dengan `--add-dir` saat [`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`](#load-from-additional-directories) diatur | `CLAUDE.md` mereka dimuat | `AGENTS.md` mereka tidak dimuat |

442| Impor `@path` dari file di luar direktori kerja Anda | Claude Code meminta Anda menyetujui [external imports](#import-additional-files) | Dimuat hanya jika Anda sudah menyetujui impor eksternal untuk proyek ini, tanpa prompt |

443 

444<h3 id="remove-an-earlier-agents-md-workaround">

445 Remove an earlier AGENTS.md workaround

446</h3>

447 

448Jika Anda menyiapkan Claude Code untuk membaca `AGENTS.md` sebelum melakukannya sendiri, berikut adalah apa yang harus dilakukan dengan setiap pengaturan umum:

449 

450* **`CLAUDE.md` yang berisi `@AGENTS.md`**: Anda dapat meninggalkannya. Menyimpan impor tidak pernah membuat Claude membaca `AGENTS.md` dua kali, nilai **Project instructions** apa pun yang Anda gunakan. Hapus `CLAUDE.md` jika tidak menyimpan apa pun yang lain, atau simpan jika beberapa sesi Anda [tidak dapat memuat `AGENTS.md` secara langsung](#when-agents-md-support-is-unavailable).

451* **`CLAUDE.md` yang memberi tahu Claude dalam kata-kata untuk membaca `AGENTS.md`**: Claude melihat `AGENTS.md` hanya jika memutuskan untuk membuka file. Hapus `CLAUDE.md` sehingga Claude membaca `AGENTS.md` secara langsung, atau ganti kalimat dengan impor `@AGENTS.md`.

452* **`CLAUDE.md` yang symlink ke `AGENTS.md`**: tidak ada, atau hapus symlink. Bagaimanapun Claude membaca konten sekali.

453* **Hook `SessionStart` yang mencetak `AGENTS.md`**: hapus itu. Setelah Claude membaca `AGENTS.md` secara langsung, hook menambahkan salinan kedua ke konteks.

454 

455<h3 id="share-one-file-with-other-coding-tools">

456 Share one file with other coding tools

457</h3>

458 

459Ketika Claude tidak membaca `AGENTS.md` Anda secara langsung, Anda masih dapat menyimpannya sebagai satu file yang dibagikan setiap alat dengan menempatkan impor `@AGENTS.md` dalam `CLAUDE.md` di sebelahnya. Lakukan ini ketika proyek Anda juga memiliki `CLAUDE.md`, ketika Anda telah mengatur **Project instructions** ke `claude-md`, atau dalam sesi yang [tidak dapat memuat `AGENTS.md`](#when-agents-md-support-is-unavailable). Tambahkan instruksi khusus Claude apa pun di bawah impor, dan Claude membaca file yang diimpor terlebih dahulu, kemudian sisanya:

460 

461```markdown CLAUDE.md theme={null}

462@AGENTS.md

463 

464## Claude Code

465 

466Use plan mode for changes under `src/billing/`.

467```

468 

469Jika Anda tidak memerlukan konten khusus Claude, symlink juga berfungsi:

470 

471```bash theme={null}

472ln -s AGENTS.md CLAUDE.md

473```

474 

475Perintah tidak mencetak output pada kesuksesan. Sebelum Anda memilih symlink daripada impor, periksa batasan ini:

476 

477* **Pengeditan**: Claude membaca `CLAUDE.md` melalui tautan, tetapi alat Edit dan Write [menolak untuk menulis melalui symlink](/docs/id/errors#refusing-after-a-symlink-changed), dan penolakan mengarahkan Claude untuk mengedit target tautan, `AGENTS.md`, sebagai gantinya

478* **Windows**: jika Anda atau siapa pun yang mengkloning repositori bekerja di Windows, gunakan impor `@AGENTS.md` sebagai gantinya. Membuat symlink di sana memerlukan hak istimewa Administrator atau Mode Pengembang, dan Git memeriksa symlink yang berkomitmen sebagai file teks biasa kecuali `core.symlinks` diaktifkan, yang meninggalkan klon itu dengan `CLAUDE.md` satu baris sebagai pengganti instruksi Anda

479 

480Dengan salah satu pendekatan, jalankan `/context` dalam sesi berikutnya Anda dan konfirmasi `CLAUDE.md` muncul di bawah **Memory files**.

481 

482<h3 id="migrate-instructions-from-other-tools">

483 Migrate instructions from other tools

484</h3>

485 

486Menjalankan [`/init`](/docs/id/commands) membaca file instruksi alat lain dan menggabungkan bagian yang relevan ke dalam `CLAUDE.md` yang dihasilkan:

487 

488* Aturan Cursor di `.cursor/rules/` atau `.cursorrules`

489* Aturan Copilot di `.github/copilot-instructions.md`

490* Dengan `CLAUDE_CODE_NEW_INIT=1` diatur: `AGENTS.md`, `.devin/rules/`, `.windsurf/rules/` atau `.windsurfrules`, dan `.clinerules`

491 

492Anda juga dapat menjalankan [`/import`](/docs/id/commands) untuk membawa konfigurasi agen pengkodean yang didukung ke Claude Code, yang menambahkan salinan satu kali file instruksi seperti `AGENTS.md` ke `CLAUDE.md` yang cocok dan membawa server MCP, perintah, subagen, dan skills. Memerlukan Claude Code v2.1.213 atau lebih baru.

493 

380<h2 id="auto-memory">494<h2 id="auto-memory">

381 Auto memory495 Auto memory

382</h2>496</h2>


422}536}

423```537```

424 538 

425Nilai harus berupa jalur absolut atau dimulai dengan `~/`. Ketika Anda menetapkannya dalam `.claude/settings.json` atau `.claude/settings.local.json` proyek, Claude Code menghormatinya di bawah [aturan kepercayaan ruang kerja yang sama dengan hooks dalam file pengaturan](/docs/id/permissions#what-runs-before-you-trust-a-folder).539Nilai harus berupa jalur absolut atau dimulai dengan `~/`.

540 

541Ketika Anda menetapkannya dalam `.claude/settings.json` atau `.claude/settings.local.json` proyek, Claude Code menghormatinya di bawah [aturan kepercayaan ruang kerja yang sama dengan hooks dalam file pengaturan](/docs/id/permissions#what-runs-before-you-trust-a-folder). Sementara [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) aktif, Claude Code tidak memuat auto memory dari direktori yang dipilih oleh [file pengaturan yang disediakan repositori](/docs/id/permissions#when-your-local-settings-file-needs-trust) dan tidak menyimpan apa pun ke dalamnya, di mana pun direktori itu berada.

426 542 

427Direktori berisi indeks `MEMORY.md` dan satu file topik per memori:543Direktori berisi indeks `MEMORY.md` dan satu file topik per memori:

428 544 


488 604 

489Untuk men-debug:605Untuk men-debug:

490 606 

491* Jalankan `/context` dan periksa daftar di bawah **Memory files** untuk memverifikasi file CLAUDE.md dan CLAUDE.local.md Anda dimuat. Jika file tidak ada di sana, Claude tidak dapat melihatnya. Gunakan `/memory` untuk membuka dan mengedit file.607* Jalankan `/context` dan periksa daftar di bawah **Memory files** untuk memverifikasi file CLAUDE.md dan CLAUDE.local.md Anda dimuat. Jika file `CLAUDE.md` tidak ada di sana, Claude tidak dapat melihatnya. `AGENTS.md` muncul di sana hanya ketika `CLAUDE.md` mengimpornya, bukan ketika Claude [membacanya secara langsung](#where-agents-md-differs-from-claude-md). Gunakan `/memory` untuk membuka dan mengedit file.

492* Periksa bahwa CLAUDE.md yang relevan berada di lokasi yang dimuat untuk sesi Anda (lihat [Choose where to put CLAUDE.md files](#choose-where-to-put-claude-md-files)).608* Periksa bahwa CLAUDE.md yang relevan berada di lokasi yang dimuat untuk sesi Anda (lihat [Choose where to put CLAUDE.md files](#choose-where-to-put-claude-md-files)).

493* Buat instruksi lebih spesifik. "Gunakan indentasi 2 spasi" bekerja lebih baik daripada "format kode dengan baik."609* Buat instruksi lebih spesifik. "Gunakan indentasi 2 spasi" bekerja lebih baik daripada "format kode dengan baik."

494* Cari instruksi yang bertentangan di seluruh file CLAUDE.md. Jika dua file memberikan panduan berbeda untuk perilaku yang sama, Claude mungkin memilih satu secara sembarangan.610* Cari instruksi yang bertentangan di seluruh file CLAUDE.md. Jika dua file memberikan panduan berbeda untuk perilaku yang sama, Claude mungkin memilih satu secara sembarangan.


501 Gunakan [hook `InstructionsLoaded`](/docs/id/hooks#instructionsloaded) untuk mencatat dengan tepat file instruksi mana yang dimuat, kapan mereka dimuat, dan mengapa. Ini berguna untuk men-debug aturan khusus jalur atau file yang dimuat malas di subdirektori.617 Gunakan [hook `InstructionsLoaded`](/docs/id/hooks#instructionsloaded) untuk mencatat dengan tepat file instruksi mana yang dimuat, kapan mereka dimuat, dan mengapa. Ini berguna untuk men-debug aturan khusus jalur atau file yang dimuat malas di subdirektori.

502</Tip>618</Tip>

503 619 

620<h3 id="my-agents-md-isn’t-loading">

621 My AGENTS.md isn't loading

622</h3>

623 

624Jika repositori Anda memiliki `AGENTS.md` dan Claude tampaknya tidak tahu apa yang dikatakannya, penyebab biasanya adalah `CLAUDE.md` di suatu tempat di jalur proyek. Secara default Claude membaca `AGENTS.md` hanya ketika Anda tidak memiliki `CLAUDE.md` atau `CLAUDE.local.md` di direktori kerja Anda atau di atasnya. Periksa ini secara berurutan:

625 

6261. Cari `CLAUDE.md`, `.claude/CLAUDE.md`, atau `CLAUDE.local.md` di direktori kerja Anda atau direktori apa pun di atasnya, selain `~/.claude/CLAUDE.md`. Jika Anda menemukan satu, Claude membacanya sebagai gantinya dari `AGENTS.md` kecuali Anda menetapkan **Project instructions** ke `claude-md-and-agents-md`.

6272. Jalankan `claude --version` dan konfirmasi v2.1.277 atau lebih baru.

6283. Periksa apakah sesi Anda adalah sesi yang [tidak dapat memuat `AGENTS.md`](#when-agents-md-support-is-unavailable), seperti sesi di penyedia pihak ketiga atau dengan telemetri dinonaktifkan.

6294. Ketik `/config` dalam sesi Anda untuk membuka panel pengaturan dan konfirmasi **Project instructions** tidak diatur ke `claude-md` atau `managed-only`. Jika Anda tidak melihat pengaturan di sana sama sekali, sesi Anda adalah sesi yang [tidak dapat memuat `AGENTS.md`](#when-agents-md-support-is-unavailable).

630 

631`AGENTS.md` tidak muncul di `/memory` atau `/context` ketika Claude membacanya secara langsung, jadi periksa baris `AGENTS.md loaded` atau tanyakan kepada Claude apa yang dikatakan instruksi proyeknya. Jika Anda ingin menyimpan `CLAUDE.md` yang Anda temukan, atau sesi Anda tidak dapat memuat `AGENTS.md`, [tambahkan `CLAUDE.md` di sebelah `AGENTS.md` Anda yang mengimpornya](#share-one-file-with-other-coding-tools).

632 

504<h3 id="i-don’t-know-what-auto-memory-saved">633<h3 id="i-don’t-know-what-auto-memory-saved">

505 I don't know what auto memory saved634 I don't know what auto memory saved

506</h3>635</h3>

mobile.md +12 −11

Details

6 6 

7> Mulai, pantau, dan arahkan tugas Claude Code dari ponsel Anda dengan aplikasi Claude untuk iOS dan Android.7> Mulai, pantau, dan arahkan tugas Claude Code dari ponsel Anda dengan aplikasi Claude untuk iOS dan Android.

8 8 

9Aplikasi Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) dan [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) adalah klien untuk sesi Claude Code daripada tempat di mana kode dijalankan. Dari ponsel Anda, Anda menjangkau [sesi cloud](#start-and-monitor-cloud-sessions) di cloud, sesi yang berjalan di mesin Anda sendiri melalui [Remote Control](#continue-a-local-session-with-remote-control), atau aplikasi Desktop melalui [Dispatch](/docs/id/desktop#sessions-from-dispatch).9Aplikasi Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) dan [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) adalah klien untuk sesi Claude Code daripada tempat di mana kode dijalankan. Dari ponsel Anda, Anda menjangkau [sesi cloud](#start-and-monitor-cloud-sessions) dan [proyek](/docs/id/claude-projects) di cloud, sesi yang berjalan di mesin Anda sendiri melalui [Remote Control](#continue-a-local-session-with-remote-control), atau aplikasi Desktop melalui [Dispatch](/docs/id/desktop#sessions-from-dispatch).

10 10 

11<Note>11<Note>

12 Claude Code tidak memiliki aplikasi mobile terpisah: sesi cloud dan Remote Control keduanya berada di tab **Code** di aplikasi Claude, dan Dispatch adalah tugas yang Anda kirimi pesan di aplikasi.12 Claude Code tidak memiliki aplikasi mobile terpisah: sesi cloud dan Remote Control keduanya berada di tab **Code** di aplikasi Claude, dan Dispatch adalah tugas yang Anda kirimi pesan di aplikasi.


21 Instal aplikasi Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) atau [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude). Di iPad, instal aplikasi iOS yang sama.21 Instal aplikasi Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) atau [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude). Di iPad, instal aplikasi iOS yang sama.

22 22 

23 <Tip>23 <Tip>

24 Jalankan `/mobile` dalam sesi Claude Code untuk menampilkan kode QR unduhan yang dapat Anda pindai. `/ios` dan `/android` melakukan hal yang sama.24 Jalankan `/mobile` dalam sesi Claude Code untuk menampilkan kode QR untuk [claude.ai/mobile](https://claude.ai/mobile), yang membuka app store yang tepat untuk ponsel Anda. `/ios` dan `/android` melakukan hal yang sama.

25 </Tip>25 </Tip>

26 </Step>26 </Step>

27 27 


38 Bekerja dari ponsel Anda38 Bekerja dari ponsel Anda

39</h2>39</h2>

40 40 

41Dari aplikasi Anda dapat memulai sesi cloud, menjalankan sesi Claude Code yang berjalan di komputer Anda, atau mengirimkan pesan Dispatch dengan tugas. Aplikasi sama untuk ketiga hal tersebut; mereka berbeda dalam tempat pekerjaan terjadi.41Dari aplikasi Anda dapat memulai sesi cloud, membuka proyek, menjalankan sesi Claude Code yang berjalan di komputer Anda, atau mengirimkan pesan Dispatch dengan tugas. Aplikasi sama untuk masing-masing; mereka berbeda dalam tempat pekerjaan terjadi.

42 42 

43| Fitur | Apa yang Anda hubungkan | Kapan digunakan |43| Fitur | Apa yang Anda hubungkan | Kapan digunakan |

44| :----------------------------------------------- | :------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- |44| :--------------------------------------------- | :--------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

45| [Claude Code di web](/docs/id/claude-code-on-the-web) | Sesi cloud di infrastruktur cloud, dikelola Anthropic secara default | Repositori Anda ada di GitHub dan tugas harus terus berjalan setelah Anda meletakkan ponsel Anda. Lihat [panduan cepat web](/docs/id/web-quickstart) untuk menyiapkan. |45| [Cloud sessions](/docs/id/claude-code-on-the-web) | Sesi di infrastruktur cloud, dikelola Anthropic secara default | Repositori Anda ada di GitHub dan tugas harus terus berjalan setelah Anda meletakkan ponsel Anda. Lihat [panduan cepat cloud](/docs/id/web-quickstart) untuk menyiapkan. |

46| [Projects](/docs/id/claude-projects) | Percakapan di mana Claude mengoordinasikan sesi cloud paralel sebagai thread | Anda memiliki aliran pekerjaan terkait daripada satu tugas dan ingin melihat thread mana yang selesai atau memerlukan Anda. |

46| [Remote Control](/docs/id/remote-control) | Sesi Claude Code yang berjalan di komputer Anda | Pekerjaan memerlukan sistem file lokal, alat, atau server MCP Anda. |47| [Remote Control](/docs/id/remote-control) | Sesi Claude Code yang berjalan di komputer Anda | Pekerjaan memerlukan sistem file lokal, alat, atau server MCP Anda. |

47| [Dispatch](/docs/id/desktop#sessions-from-dispatch) | Aplikasi Desktop di komputer Anda | Anda ingin mengirimkan pesan tugas dan membiarkan Dispatch memutuskan cara menjalankannya. Memerlukan paket Pro atau Max. |48| [Dispatch](/docs/id/desktop#sessions-from-dispatch) | Aplikasi Desktop di komputer Anda | Anda ingin mengirimkan pesan tugas dan membiarkan Dispatch memutuskan cara menjalankannya. Memerlukan paket Pro atau Max. |

48 49 

49Jika komputer Anda akan mati, gunakan sesi cloud, yang berjalan di cloud dan berlanjut dengan laptop Anda ditutup. Remote Control dan Dispatch menjalankan mesin Anda sendiri, jadi perlu tetap menyala dengan Claude Code atau aplikasi Desktop berjalan. Jika mesin Anda tidur selama sesi Remote Control, Claude Code terhubung kembali saat mesin kembali online.50Jika komputer Anda akan mati, gunakan cloud sessions atau proyek, yang berjalan di cloud dan berlanjut dengan laptop Anda ditutup. Remote Control dan Dispatch menjalankan mesin Anda sendiri, jadi perlu tetap menyala dengan Claude Code atau aplikasi Desktop berjalan. Jika mesin Anda tidur selama sesi Remote Control, Claude Code terhubung kembali saat mesin kembali online.

50 51 

51Untuk perbandingan yang lebih lengkap, lihat [bekerja saat Anda jauh dari terminal Anda](/docs/id/platforms#work-when-you-are-away-from-your-terminal).52Untuk perbandingan yang lebih lengkap, lihat [bekerja saat Anda jauh dari terminal Anda](/docs/id/platforms#work-when-you-are-away-from-your-terminal).

52 53 

53Sesi cloud dan Remote Control berjalan dari tab **Code**. Untuk Dispatch, yang Anda kirimkan pesan sebagai tugas di aplikasi, lihat [sesi dari Dispatch](/docs/id/desktop#sessions-from-dispatch).54Cloud sessions dan Remote Control berjalan dari tab **Code**. Untuk Dispatch, yang Anda kirimkan pesan sebagai tugas di aplikasi, lihat [sesi dari Dispatch](/docs/id/desktop#sessions-from-dispatch).

54 55 

55<h3 id="start-and-monitor-cloud-sessions">56<h3 id="start-and-monitor-cloud-sessions">

56 Mulai dan pantau sesi cloud57 Mulai dan pantau cloud sessions

57</h3>58</h3>

58 59 

59Claude Code di web menjalankan tugas di infrastruktur cloud, dikelola Anthropic secara default, jadi sesi berlanjut setelah Anda meletakkan ponsel Anda. Dari tab Code, pilih repositori dan cabang, jelaskan tugas, dan kirimkan. Sesi bertahan di seluruh perangkat: tugas yang Anda mulai di laptop Anda siap untuk ditinjau dari ponsel Anda, dan yang Anda mulai dari ponsel Anda menunggu saat Anda kembali ke meja Anda.60Cloud sessions menjalankan tugas di infrastruktur cloud, dikelola Anthropic secara default, jadi sesi berlanjut setelah Anda meletakkan ponsel Anda. Dari tab Code, pilih repositori dan cabang, jelaskan tugas, dan kirimkan. Sesi bertahan di seluruh perangkat: tugas yang Anda mulai di laptop Anda siap untuk ditinjau dari ponsel Anda, dan yang Anda mulai dari ponsel Anda menunggu saat Anda kembali ke meja Anda.

60 61 

61Buka sesi di aplikasi untuk memeriksa kemajuan, menjawab pertanyaan Claude, atau mengarahkannya ke arah baru. Anda juga dapat memberi tahu Claude untuk [menonton permintaan tarik](/docs/id/claude-code-on-the-web#auto-fix-pull-requests) dan memperbaiki kegagalan CI atau meninjau komentar saat tiba. Untuk menghubungkan GitHub dan menyiapkan lingkungan Anda, ikuti [panduan cepat web](/docs/id/web-quickstart), dan lihat [Claude Code di web](/docs/id/claude-code-on-the-web) untuk semua yang dapat dilakukan sesi cloud.62Buka sesi di aplikasi untuk memeriksa kemajuan, menjawab pertanyaan Claude, atau mengarahkannya ke arah baru. Anda juga dapat memberi tahu Claude untuk [menonton permintaan tarik](/docs/id/claude-code-on-the-web#auto-fix-pull-requests) dan memperbaiki kegagalan CI atau meninjau komentar saat tiba. Untuk menghubungkan GitHub dan menyiapkan lingkungan Anda, ikuti [panduan cepat cloud](/docs/id/web-quickstart), dan lihat [Gunakan Claude Code di cloud](/docs/id/claude-code-on-the-web) untuk semua yang dapat dilakukan cloud sessions.

62 63 

63<h3 id="continue-a-local-session-with-remote-control">64<h3 id="continue-a-local-session-with-remote-control">

64 Lanjutkan sesi lokal dengan Remote Control65 Lanjutkan sesi lokal dengan Remote Control

65</h3>66</h3>

66 67 

67Remote Control menghubungkan aplikasi Claude ke sesi Claude Code yang berjalan di mesin Anda, jadi eksekusi kode dan akses sistem file tetap lokal sementara Anda menjalankan sesi dari ponsel Anda. Mulai sesi di komputer Anda dengan `claude remote-control`, atau jalankan `/remote-control` dalam sesi yang sudah terbuka. Kemudian pindai kode QR sesi yang dapat ditampilkan terminal, atau buka aplikasi Claude, ketuk **Code**, dan pilih sesi dari daftar. Lihat [hubungkan dari perangkat lain](/docs/id/remote-control#connect-from-another-device) untuk setiap opsi.68Remote Control menghubungkan aplikasi Claude ke sesi Claude Code yang berjalan di mesin Anda, jadi eksekusi kode dan akses sistem file tetap lokal sementara Anda menjalankan sesi dari ponsel Anda. Mulai sesi di komputer Anda dengan `claude remote-control`, atau jalankan `/remote-control` dalam sesi yang sudah terbuka. Kemudian pindai kode QR yang dapat ditampilkan terminal, atau buka aplikasi Claude, ketuk **Code**, dan pilih sesi dari daftar. Lihat [hubungkan dari perangkat lain](/docs/id/remote-control#connect-from-another-device) untuk setiap opsi.

68 69 

69Ketika Anda menambahkan lampiran di aplikasi Claude, lampiran tersebut mencapai sesi lokal juga:70Ketika Anda menambahkan lampiran di aplikasi Claude, lampiran tersebut mencapai sesi lokal juga:

70 71 

model-config.md +3 −3

Details

270Perubahan model yang Claude Code buat atas nama Anda diperiksa dengan cara yang sama:270Perubahan model yang Claude Code buat atas nama Anda diperiksa dengan cara yang sama:

271 271 

272* **[Rantai model fallback](#fallback-model-chains)**: entri di luar daftar izin dijatuhkan272* **[Rantai model fallback](#fallback-model-chains)**: entri di luar daftar izin dijatuhkan

273* **Upgrade mode plan**: pada Anthropic API dan Claude Platform on AWS, upgrade seperti [`opusplan`](#opusplan-model-setting) ke model yang dikecualikan menggunakan versi terbaru keluarga upgrade yang diizinkan. Pada penyedia dengan ID model khusus penyedia, dan ketika tidak ada versi yang diizinkan, upgrade dilewati dan perencanaan berlanjut pada model sesi. Pada penyedia lain, upgrade dilewati dan perencanaan berlanjut pada model sesi273* **Upgrade mode plan**: pada Anthropic API dan Claude Platform on AWS, upgrade seperti [`opusplan`](#opusplan-model-setting) ke model yang dikecualikan menggunakan versi terbaru keluarga upgrade yang diizinkan. Pada penyedia dengan ID model khusus penyedia, dan ketika tidak ada versi yang diizinkan, upgrade dilewati dan perencanaan berlanjut pada model sesi

274* **[Fallback model otomatis](#automatic-model-fallback)**: fallback yang targetnya dikecualikan tidak berjalan, jadi permintaan yang ditandai berakhir dengan penolakan274* **[Fallback model otomatis](#automatic-model-fallback)**: fallback yang targetnya dikecualikan tidak berjalan, jadi permintaan yang ditandai berakhir dengan penolakan

275* **[Pengklasifikasi mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode)**: default Claude Sonnet 5 pengklasifikasi hanya berlaku ketika daftar izin memungkinkan Sonnet 5. Ketika dikecualikan, pengklasifikasi berjalan pada model sesi, yang daftar izin sudah mengatur, atau pada model Opus ketika sesi berjalan pada [model Fable](#work-with-fable). Pada penyedia selain Anthropic API, fallback Opus itu berjalan pada model Opus default penyedia tanpa berkonsultasi dengan daftar izin. Memerlukan Claude Code v2.1.210 atau lebih baru275* **[Pengklasifikasi mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode)**: default Claude Sonnet 5 pengklasifikasi hanya berlaku ketika daftar izin memungkinkan Sonnet 5. Ketika dikecualikan, pengklasifikasi berjalan pada model sesi, yang daftar izin sudah mengatur, atau pada model Opus ketika sesi berjalan pada [model Fable](#work-with-fable). Pada penyedia selain Anthropic API, fallback Opus itu berjalan pada model Opus default penyedia tanpa berkonsultasi dengan daftar izin. Memerlukan Claude Code v2.1.210 atau lebih baru

276* **[Mode cepat](/docs/id/fast-mode)**: mengaktifkan mode cepat ditolak ketika model yang sesi jalankan setelahnya berada di luar daftar izin276* **[Mode cepat](/docs/id/fast-mode)**: mengaktifkan mode cepat ditolak ketika model yang sesi jalankan setelahnya berada di luar daftar izin


292| [Pengaturan terkelola server](/docs/id/server-managed-settings) dari konsol admin | Diberlakukan | Diberlakukan | Diberlakukan | Diberlakukan | Tidak dikirim |292| [Pengaturan terkelola server](/docs/id/server-managed-settings) dari konsol admin | Diberlakukan | Diberlakukan | Diberlakukan | Diberlakukan | Tidak dikirim |

293| [File MDM atau pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms) | Diberlakukan | Diberlakukan | Tidak dikirim di lingkungan yang dihosting Anthropic; di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments), diberlakukan dari gambar runner per [bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) | Diberlakukan | Diberlakukan di mana pun digunakan |293| [File MDM atau pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms) | Diberlakukan | Diberlakukan | Tidak dikirim di lingkungan yang dihosting Anthropic; di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments), diberlakukan dari gambar runner per [bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) | Diberlakukan | Diberlakukan di mana pun digunakan |

294 294 

295* Sesi cloud, di [Claude Code di web](/docs/id/claude-code-on-the-web) atau di aplikasi Desktop, berjalan pada VM yang dikelola Anthropic secara default: pengaturan yang digunakan pada perangkat Anda tidak mencapainya, jadi kirimkan daftar izin melalui pengaturan terkelola server. Sesi yang organisasi Anda arahkan ke [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments) berjalan pada komputasi Anda sendiri dan juga membaca file pengaturan terkelola dalam gambar runner. [Bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan kapan file itu berlaku. Perubahan model pertengahan sesi dalam sesi cloud ditolak ketika model yang diminta dikecualikan oleh daftar izin. Penolakan sisi server saat pembuatan sesi berlaku untuk [pembatasan model organisasi](#organization-model-restrictions), bukan kunci pengaturan `availableModels`.295* Sesi cloud, di [Claude Code di web](/docs/id/claude-code-on-the-web) atau di aplikasi Desktop, berjalan pada VM yang dikelola Anthropic secara default: pengaturan yang digunakan pada perangkat Anda tidak mencapainya, jadi kirimkan daftar izin melalui pengaturan terkelola server. Sesi yang organisasi Anda arahkan ke [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments) berjalan pada komputasi Anda sendiri dan juga membaca file pengaturan terkelola dalam gambar runner. [Bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan kapan file itu berlaku. Perubahan model pertengahan sesi dalam sesi cloud ditolak ketika model yang diminta dikecualikan oleh daftar izin. Ketika daftar `availableModels` dalam pengaturan terkelola server Anda tidak kosong, server menolak permintaan pengguna untuk memulai sesi cloud pada model yang daftar kecualikan.

296* Cowork, tab pekerjaan agentic di aplikasi Claude Desktop, menjalankan sesinya di Claude Code tetapi, dengan desain, tidak menerima pengaturan terkelola server dari konsol admin claude.ai. File pengaturan terkelola berlaku untuk sesi Cowork ketika ada di mana sesi berjalan; sesi Cowork jarak jauh berjalan pada VM yang dikelola Anthropic, di mana file yang digunakan perangkat tidak ada.296* Cowork, tab pekerjaan agentic di aplikasi Claude Desktop, menjalankan sesinya di Claude Code tetapi, dengan desain, tidak menerima pengaturan terkelola server dari konsol admin claude.ai. File pengaturan terkelola berlaku untuk sesi Cowork ketika ada di mana sesi berjalan; sesi Cowork jarak jauh berjalan pada VM yang dikelola Anthropic, di mana file yang digunakan perangkat tidak ada.

297* Sesi pada [penyedia pihak ketiga](/docs/id/server-managed-settings#platform-availability) seperti Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws) tidak menerima pengaturan terkelola server, jadi kirimkan daftar izin melalui file MDM atau pengaturan terkelola di sana.297* Sesi pada [penyedia pihak ketiga](/docs/id/server-managed-settings#platform-availability) seperti Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws) tidak menerima pengaturan terkelola server, jadi kirimkan daftar izin melalui file MDM atau pengaturan terkelola di sana.

298* Pengiriman terkelola server juga memerlukan sesi untuk mengautentikasi dengan [login atau kunci yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Armada yang menghasilkan kunci hanya melalui skrip [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) harus mengirimkan daftar izin melalui file MDM atau pengaturan terkelola.298* Pengiriman terkelola server juga memerlukan sesi untuk mengautentikasi dengan [login atau kunci yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Armada yang menghasilkan kunci hanya melalui skrip [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) harus mengirimkan daftar izin melalui file MDM atau pengaturan terkelola.


376 376 

377Pembatasan berlaku ketika anggota masuk atau menggunakan kunci API mereka sendiri. Kredensial yang dicakup organisasi, seperti kunci layanan organisasi, tidak terikat pada pengguna, jadi pembatasan tidak berlaku untuk mereka.377Pembatasan berlaku ketika anggota masuk atau menggunakan kunci API mereka sendiri. Kredensial yang dicakup organisasi, seperti kunci layanan organisasi, tidak terikat pada pengguna, jadi pembatasan tidak berlaku untuk mereka.

378 378 

379Claude Console tidak memiliki kontrol pembatasan model. Organisasi tanpa rencana Claude Enterprise, termasuk yang anggotanya mengautentikasi melalui Anthropic API, membatasi model dengan [`availableModels`](#restrict-model-selection) dalam [pengaturan terkelola](/docs/id/managed-settings), menambahkan [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) untuk mencakup opsi Default. Pengaturan ini diberlakukan oleh Claude Code itu sendiri, bukan oleh server.379Claude Console tidak memiliki kontrol pembatasan model. Organisasi tanpa rencana Claude Enterprise, termasuk yang anggotanya mengautentikasi melalui Anthropic API, membatasi model dengan [`availableModels`](#restrict-model-selection) dalam [pengaturan terkelola](/docs/id/managed-settings), menambahkan [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) untuk mencakup opsi Default. [Cakupan permukaan](#surface-coverage) mengatakan bagaimana setiap permukaan menerima dan memberlakukan pengaturan ini.

380 380 

381Model yang dibatasi disembunyikan dari pemilih `/model`. Memilihnya berdasarkan nama dengan `--model`, variabel lingkungan `ANTHROPIC_MODEL`, atau pengaturan `model` menunjukkan pemberitahuan `Model "<name>" is restricted by your organization's settings. Using <model> instead.` dan sesi dimulai pada model yang diizinkan. Mengetik `/model <name>` untuk model yang dibatasi ditolak dengan `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` dan sesi mempertahankan model saat ini.381Model yang dibatasi disembunyikan dari pemilih `/model`. Memilihnya berdasarkan nama dengan `--model`, variabel lingkungan `ANTHROPIC_MODEL`, atau pengaturan `model` menunjukkan pemberitahuan `Model "<name>" is restricted by your organization's settings. Using <model> instead.` dan sesi dimulai pada model yang diizinkan. Mengetik `/model <name>` untuk model yang dibatasi ditolak dengan `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` dan sesi mempertahankan model saat ini.

382 382 

Details

122| `OTEL_LOG_USER_PROMPTS` | Aktifkan pencatatan konten prompt pengguna (default: dinonaktifkan) | `1` untuk mengaktifkan |122| `OTEL_LOG_USER_PROMPTS` | Aktifkan pencatatan konten prompt pengguna (default: dinonaktifkan) | `1` untuk mengaktifkan |

123| `OTEL_LOG_ASSISTANT_RESPONSES` | Aktifkan pencatatan teks respons asisten pada acara `assistant_response` (default: dinonaktifkan). Saat tidak diatur, kembali ke nilai `OTEL_LOG_USER_PROMPTS`. Memerlukan Claude Code v2.1.193 atau lebih baru | `1` untuk mengaktifkan, `0` untuk tetap disunting |123| `OTEL_LOG_ASSISTANT_RESPONSES` | Aktifkan pencatatan teks respons asisten pada acara `assistant_response` (default: dinonaktifkan). Saat tidak diatur, kembali ke nilai `OTEL_LOG_USER_PROMPTS`. Memerlukan Claude Code v2.1.193 atau lebih baru | `1` untuk mengaktifkan, `0` untuk tetap disunting |

124| `OTEL_LOG_TOOL_DETAILS` | Aktifkan pencatatan parameter alat dan argumen input dalam acara alat dan atribut span trace: perintah Bash, nama server MCP dan alat, nama skill, nama workflow yang ditulis pengguna, dan input alat. Juga mengaktifkan nama perintah custom, plugin, dan MCP pada acara `user_prompt` (default: dinonaktifkan). Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, `mcp_server_name`/`mcp_tool_name` dipancarkan pada `tool_decision`/`tool_result` bahkan dengan flag mati. Pengecualian memerlukan Claude Code v2.1.214 atau lebih baru | `1` untuk mengaktifkan |124| `OTEL_LOG_TOOL_DETAILS` | Aktifkan pencatatan parameter alat dan argumen input dalam acara alat dan atribut span trace: perintah Bash, nama server MCP dan alat, nama skill, nama workflow yang ditulis pengguna, dan input alat. Juga mengaktifkan nama perintah custom, plugin, dan MCP pada acara `user_prompt` (default: dinonaktifkan). Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, `mcp_server_name`/`mcp_tool_name` dipancarkan pada `tool_decision`/`tool_result` bahkan dengan flag mati. Pengecualian memerlukan Claude Code v2.1.214 atau lebih baru | `1` untuk mengaktifkan |

125| `OTEL_LOG_TOOL_CONTENT` | Aktifkan pencatatan konten input dan output alat dalam acara span (default: dinonaktifkan). Memerlukan [tracing](#traces-beta). Konten dipotong pada batas konten (60 KB secara default) | `1` untuk mengaktifkan |125| `OTEL_LOG_TOOL_CONTENT` | Aktifkan pencatatan konten alat dalam acara span [`tool.output`](#tool-output-span-event) (default: dinonaktifkan). Atribut span membawa konten alat di bawah [gerbang mereka sendiri](#new-context-gates). Memerlukan [tracing](#traces-beta). Konten dipotong pada batas konten (60 KB secara default) | `1` untuk mengaktifkan |

126| `OTEL_LOG_RAW_API_BODIES` | Emit badan permintaan dan respons JSON API Anthropic Messages lengkap sebagai acara log `api_request_body` / `api_response_body` (default: dinonaktifkan). Badan mencakup seluruh riwayat percakapan. Mengaktifkan ini menyiratkan persetujuan untuk semua yang akan diungkapkan oleh `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, dan `OTEL_LOG_TOOL_CONTENT` | `1` untuk badan inline dipotong pada batas konten (60 KB secara default), atau `file:<dir>` untuk badan tidak dipotong di disk dengan pointer `body_ref` dalam acara |126| `OTEL_LOG_RAW_API_BODIES` | Emit badan permintaan dan respons JSON API Anthropic Messages lengkap sebagai acara log `api_request_body` / `api_response_body` (default: dinonaktifkan). Badan mencakup seluruh riwayat percakapan. Mengaktifkan ini menyiratkan persetujuan untuk semua yang akan diungkapkan oleh `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, dan `OTEL_LOG_TOOL_CONTENT` | `1` untuk badan inline dipotong pada batas konten (60 KB secara default), atau `file:<dir>` untuk badan tidak dipotong di disk dengan pointer `body_ref` dalam acara |

127| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Batas konten: panjang maksimum atribut yang mengandung konten seperti respons model, konten alat, prompt sistem, dan badan API mentah, termasuk penanda pemotongan, dalam unit kode UTF-16 (default: 61440, yaitu 60 KB). Default diukur untuk backend yang membatasi nilai atribut pada 64 KB; naikkan hanya jika backend Anda menerima nilai yang lebih besar, atau turunkan untuk mengurangi volume telemetri. Saat batas atribut SDK OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` atau salah satu varian logrecord dan span-nya, diatur lebih rendah, Claude Code memotong pada nilai yang lebih kecil itu sehingga penanda `[TRUNCATED ...]` tetap dalam batas SDK. Memerlukan Claude Code v2.1.214 atau lebih baru | `262144` |127| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Batas konten: panjang maksimum atribut yang mengandung konten seperti respons model, konten alat, prompt sistem, dan badan API mentah, termasuk penanda pemotongan, dalam unit kode UTF-16 (default: 61440, yaitu 60 KB). Default diukur untuk backend yang membatasi nilai atribut pada 64 KB; naikkan hanya jika backend Anda menerima nilai yang lebih besar, atau turunkan untuk mengurangi volume telemetri. Saat batas atribut SDK OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` atau salah satu varian logrecord dan span-nya, diatur lebih rendah, Claude Code memotong pada nilai yang lebih kecil itu sehingga penanda `[TRUNCATED ...]` tetap dalam batas SDK. Memerlukan Claude Code v2.1.214 atau lebih baru | `262144` |

128| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferensi temporalitas metrik (default: `delta`). Atur ke `cumulative` jika backend Anda mengharapkan temporalitas kumulatif | `delta`, `cumulative` |128| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferensi temporalitas metrik (default: `delta`). Atur ke `cumulative` jika backend Anda mengharapkan temporalitas kumulatif | `delta`, `cumulative` |


284| `skill_name` | Nama skill untuk alat Skill | `OTEL_LOG_TOOL_DETAILS` |284| `skill_name` | Nama skill untuk alat Skill | `OTEL_LOG_TOOL_DETAILS` |

285| `subagent_type` | Jenis subagent untuk alat Agent atau alat Task legacy | `OTEL_LOG_TOOL_DETAILS` |285| `subagent_type` | Jenis subagent untuk alat Agent atau alat Task legacy | `OTEL_LOG_TOOL_DETAILS` |

286 286 

287Saat `OTEL_LOG_TOOL_CONTENT=1`, span ini juga mencatat acara span `tool.output` yang atributnya berisi badan input dan output alat, dipotong pada batas konten (60 KB secara default) per atribut.287<span id="tool-output-span-event" />**`tool.output` span event on `claude_code.tool`**

288 

289Jika Anda menetapkan `OTEL_LOG_TOOL_CONTENT=1`, panggilan Read dan Bash dapat mencatat acara span `tool.output` pada span `claude_code.tool`. Panggilan Edit dan Write mencatat satu hanya saat Anda juga menetapkan `OTEL_LOG_TOOL_DETAILS=1`. Variabel itu tidak dibatasi pada kedua alat tersebut, jadi periksa [barisnya dalam tabel konfigurasi](#common-configuration-variables) untuk argumen yang ditambahkannya di tempat lain.

290 

291Claude Code menulis acara ini dari pengembalian yang berhasil dari panggilan alat, jadi panggilan yang menimbulkan kesalahan tidak mencatat apa pun, apa pun alatnya. Di antara panggilan yang memang kembali, itu tidak mencatat acara `tool.output` untuk:

292 

293* Panggilan ke alat apa pun selain Read, Edit, Write, dan Bash, termasuk alat MCP dan WebFetch

294* Read yang mengembalikan apa pun selain teks file, seperti gambar, PDF, atau pembacaan ulang file yang isinya belum berubah

295* Panggilan Edit atau Write, kecuali Anda juga menetapkan `OTEL_LOG_TOOL_DETAILS=1`

296 

297Acara membawa atribut-atribut ini, masing-masing dipotong pada batas konten (60 KB secara default). `Gated by` menamai variabel yang dibutuhkan atribut di atas `OTEL_LOG_TOOL_CONTENT=1`, dan untuk Edit dan Write variabel itu mengatur acara itu sendiri daripada atribut.

298 

299| Atribut | Deskripsi | Gated by |

300| -------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------- |

301| `content` | Teks yang dikembalikan alat Read, atau teks yang diminta panggilan Write untuk ditulis | `OTEL_LOG_TOOL_DETAILS` untuk alat Write |

302| `output` | Output gabungan dari perintah Bash, dengan stderr yang diselipkan ke stdout | |

303| `diff` | Patch terstruktur yang diterapkan alat Edit | `OTEL_LOG_TOOL_DETAILS` |

304| `file_path` | Jalur file target untuk alat Read, Edit, dan Write, mengulangi atribut span dengan nama yang sama | `OTEL_LOG_TOOL_DETAILS` |

305| `bash_command` | String perintah untuk alat Bash | `OTEL_LOG_TOOL_DETAILS` |

306 

307Atribut `tool_name` span induk memberi tahu Anda alat mana yang berasal dari acara. Atribut yang dipotong pada batas konten disertai dengan `<attribute>_truncated` dan `<attribute>_original_length`.

288 308 

289**`claude_code.tool.blocked_on_user`**309**`claude_code.tool.blocked_on_user`**

290 310 


323| `num_non_blocking_error` | Jumlah hook yang gagal tanpa blocking | |343| `num_non_blocking_error` | Jumlah hook yang gagal tanpa blocking | |

324| `num_cancelled` | Jumlah hook yang dibatalkan sebelum selesai | |344| `num_cancelled` | Jumlah hook yang dibatalkan sebelum selesai | |

325 345 

346<span id="new-context-gates" />

347 

326<Note>348<Note>

327 Atribut tambahan yang mengandung konten seperti `new_context`, `system_prompt_preview`, `user_system_prompt`, `tool_input`, dan `response.model_output` dipancarkan hanya saat detailed beta tracing aktif. Mereka bukan bagian dari skema span yang stabil.349 Atribut tambahan yang mengandung konten seperti `new_context`, `system_prompt_preview`, `user_system_prompt`, `tool_input`, dan `response.model_output` dipancarkan hanya saat detailed beta tracing aktif. Mereka bukan bagian dari skema span yang stabil.

328 350 

351 Gate pada `new_context` tergantung pada span mana yang membawanya, dan setiap salinan dipotong pada batas konten (60 KB secara default). Pada span `claude_code.tool` itu membawa hasil panggilan alat itu, apa pun alatnya, dan memerlukan `OTEL_LOG_TOOL_CONTENT=1`. Pada span `claude_code.interaction` itu membawa prompt pengguna, dan pada span `claude_code.llm_request` pesan pengguna baru dan hasil alat dari permintaan itu. Keduanya memerlukan `OTEL_LOG_USER_PROMPTS=1`.

352 

329 `user_system_prompt` juga memerlukan `OTEL_LOG_USER_PROMPTS=1`. Ini membawa hanya teks prompt sistem yang Anda berikan melalui opsi SDK `systemPrompt` atau flag `--system-prompt` dan `--append-system-prompt`, dipotong pada batas konten (60 KB secara default), dan dipancarkan sekali per sesi daripada per permintaan.353 `user_system_prompt` juga memerlukan `OTEL_LOG_USER_PROMPTS=1`. Ini membawa hanya teks prompt sistem yang Anda berikan melalui opsi SDK `systemPrompt` atau flag `--system-prompt` dan `--append-system-prompt`, dipotong pada batas konten (60 KB secara default), dan dipancarkan sekali per sesi daripada per permintaan.

330</Note>354</Note>

331 355 


877* `body_truncated`: `"true"` saat pemotongan inline terjadi. Tidak ada dalam mode file dan saat tidak ada pemotongan yang terjadi.901* `body_truncated`: `"true"` saat pemotongan inline terjadi. Tidak ada dalam mode file dan saat tidak ada pemotongan yang terjadi.

878* `model`: Pengidentifikasi model dari parameter permintaan902* `model`: Pengidentifikasi model dari parameter permintaan

879* `query_source`: Subsistem yang mengeluarkan permintaan (misalnya, `"compact"`)903* `query_source`: Subsistem yang mengeluarkan permintaan (misalnya, `"compact"`)

904* `request_body_id`: UUID yang mengidentifikasi badan permintaan upaya ini. Acara [`api_response_body`](#api-response-body-event) untuk upaya yang berhasil membawa nilai yang sama, sehingga Anda dapat memasangkan respons dengan permintaan yang tepat yang menghasilkannya. Memerlukan Claude Code v2.1.274 atau lebih baru

880 905 

881<h4 id="api-response-body-event">906<h4 id="api-response-body-event">

882 Acara badan respons API907 Acara badan respons API


884 909 

885Dicatat untuk setiap respons API yang berhasil saat `OTEL_LOG_RAW_API_BODIES` diatur.910Dicatat untuk setiap respons API yang berhasil saat `OTEL_LOG_RAW_API_BODIES` diatur.

886 911 

912Dalam mode file (`OTEL_LOG_RAW_API_BODIES=file:<dir>`), Claude Code juga menambahkan satu baris JSON ke `<dir>/index.jsonl` untuk setiap respons yang berhasil, dengan bidang `timestamp`, `session_id`, `query_source`, `model`, `request_id`, `message_id`, `message_uuid`, `request_file`, dan `response_file`. Bacanya untuk menemukan file permintaan dan respons di balik pesan transkrip tertentu tanpa menanyakan backend telemetri Anda. File indeks memerlukan Claude Code v2.1.274 atau lebih baru.

913 

887**Nama Acara**: `claude_code.api_response_body`914**Nama Acara**: `claude_code.api_response_body`

888 915 

889**Atribut**:916**Atribut**:


899* `model`: Pengidentifikasi model926* `model`: Pengidentifikasi model

900* `query_source`: Subsistem yang mengeluarkan permintaan927* `query_source`: Subsistem yang mengeluarkan permintaan

901* `request_id`: ID permintaan API Anthropic dari header `request-id` respons, seperti `"req_011..."`. Hadir hanya saat API mengembalikan satu.928* `request_id`: ID permintaan API Anthropic dari header `request-id` respons, seperti `"req_011..."`. Hadir hanya saat API mengembalikan satu.

929* `request_body_id`: `request_body_id` dari acara [`api_request_body`](#api-request-body-event) yang dijawab respons ini. Memerlukan Claude Code v2.1.274 atau lebih baru

930* `message.id`: ID pesan yang ditetapkan API ke respons, bidang `id` dari badan respons. Memerlukan Claude Code v2.1.274 atau lebih baru

931* `message.uuid`: UUID entri transkrip akhir respons. Bersama dengan `request_body_id`, itu menghubungkan pesan transkrip ke badan permintaan dan respons di baliknya. Memerlukan Claude Code v2.1.274 atau lebih baru

902 932 

903<h4 id="tool-decision-event">933<h4 id="tool-decision-event">

904 Acara keputusan alat934 Acara keputusan alat


1525* Ekspor OpenTelemetry ke backend Anda adalah opt-in dan memerlukan konfigurasi eksplisit. Untuk telemetri operasional terpisah Anthropic dan cara menonaktifkannya, lihat [Penggunaan data](/docs/id/data-usage#telemetry-services)1555* Ekspor OpenTelemetry ke backend Anda adalah opt-in dan memerlukan konfigurasi eksplisit. Untuk telemetri operasional terpisah Anthropic dan cara menonaktifkannya, lihat [Penggunaan data](/docs/id/data-usage#telemetry-services)

1526* Konten file mentah dan cuplikan kode tidak disertakan dalam metrik atau acara. Trace spans adalah jalur data terpisah: lihat poin `OTEL_LOG_TOOL_CONTENT` di bawah1556* Konten file mentah dan cuplikan kode tidak disertakan dalam metrik atau acara. Trace spans adalah jalur data terpisah: lihat poin `OTEL_LOG_TOOL_CONTENT` di bawah

1527* Saat diautentikasi melalui OAuth, `user.email` disertakan dalam atribut telemetri, dikirim hanya ke titik akhir OTel yang Anda konfigurasikan, tidak pernah ke Anthropic. Jika ini menjadi perhatian bagi organisasi Anda, bekerja dengan backend telemetri Anda untuk memfilter atau menyunting bidang ini1557* Saat diautentikasi melalui OAuth, `user.email` disertakan dalam atribut telemetri, dikirim hanya ke titik akhir OTel yang Anda konfigurasikan, tidak pernah ke Anthropic. Jika ini menjadi perhatian bagi organisasi Anda, bekerja dengan backend telemetri Anda untuk memfilter atau menyunting bidang ini

1528* Konten prompt pengguna tidak dikumpulkan secara default. Hanya panjang prompt yang dicatat. Untuk menyertakan konten prompt, atur `OTEL_LOG_USER_PROMPTS=1`1558* Konten prompt pengguna tidak dikumpulkan secara default. Hanya panjang prompt yang dicatat. Untuk menyertakan konten prompt, atur `OTEL_LOG_USER_PROMPTS=1`. Di bawah detailed beta tracing, variabel ini menjangkau lebih jauh daripada teks prompt: variabel ini juga mengontrol atribut span [`new_context`](#new-context-gates), yang membawa hasil alat pada span `claude_code.llm_request`

1529* Teks respons asisten tidak dikumpulkan secara default. Hanya panjang respons yang dicatat. Untuk menyertakan teks respons, atur `OTEL_LOG_ASSISTANT_RESPONSES=1`. Seperti semua data OpenTelemetry dari Claude Code, teks respons dikirim hanya ke titik akhir OTel yang Anda konfigurasikan, tidak pernah ke Anthropic. Ketika variabel ini tidak diatur, `OTEL_LOG_USER_PROMPTS` digunakan sebagai fallback, jadi atur `OTEL_LOG_ASSISTANT_RESPONSES=0` jika Anda menginginkan konten prompt tanpa konten respons1559* Teks respons asisten tidak dikumpulkan secara default. Hanya panjang respons yang dicatat. Untuk menyertakan teks respons, atur `OTEL_LOG_ASSISTANT_RESPONSES=1`. Seperti semua data OpenTelemetry dari Claude Code, teks respons dikirim hanya ke titik akhir OTel yang Anda konfigurasikan, tidak pernah ke Anthropic. Ketika variabel ini tidak diatur, `OTEL_LOG_USER_PROMPTS` digunakan sebagai fallback, jadi atur `OTEL_LOG_ASSISTANT_RESPONSES=0` jika Anda menginginkan konten prompt tanpa konten respons

1530* Argumen input alat dan parameter tidak dicatat secara default. Untuk menyertakannya, atur `OTEL_LOG_TOOL_DETAILS=1`. Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, `tool_decision` dan `tool_result` membawa pasangan `mcp_server_name`/`mcp_tool_name`, nama yang ditulis host daripada konten argumen, bahkan dengan flag mati. Pengecualian memerlukan Claude Code v2.1.214 atau lebih baru. Data ini dikirim hanya ke titik akhir OTEL yang Anda konfigurasikan, tidak pernah ke Anthropic. Argumen mungkin masih berisi nilai sensitif, jadi konfigurasikan backend telemetri Anda untuk memfilter atau menyunting atribut ini sesuai kebutuhan. Saat diaktifkan:1560* Argumen input alat dan parameter tidak dicatat secara default. Untuk menyertakannya, atur `OTEL_LOG_TOOL_DETAILS=1`. Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, `tool_decision` dan `tool_result` membawa pasangan `mcp_server_name`/`mcp_tool_name`, nama yang ditulis host daripada konten argumen, bahkan dengan flag mati. Pengecualian memerlukan Claude Code v2.1.214 atau lebih baru. Data ini dikirim hanya ke titik akhir OTEL yang Anda konfigurasikan, tidak pernah ke Anthropic. Argumen mungkin masih berisi nilai sensitif, jadi konfigurasikan backend telemetri Anda untuk memfilter atau menyunting atribut ini sesuai kebutuhan. Saat diaktifkan:

1531 * Acara `tool_result` dan `tool_decision` menyertakan atribut `tool_parameters` dengan perintah Bash, nama server MCP dan alat, dan nama skill. Bidang seperti `full_command` dipancarkan tanpa pemotongan1561 * Acara `tool_result` dan `tool_decision` menyertakan atribut `tool_parameters` dengan perintah Bash, nama server MCP dan alat, dan nama skill. Bidang seperti `full_command` dipancarkan tanpa pemotongan

1532 * Acara `tool_result` juga menyertakan atribut `tool_input` dengan jalur file, URL, pola pencarian, dan argumen lainnya. Nilai individual di atas 512 karakter dipotong dan total dibatasi hingga \~4 K karakter1562 * Acara `tool_result` juga menyertakan atribut `tool_input` dengan jalur file, URL, pola pencarian, dan argumen lainnya. Nilai individual di atas 512 karakter dipotong dan total dibatasi hingga \~4 K karakter

1533 * Acara `user_prompt` menyertakan `command_name` verbatim untuk perintah custom, plugin, dan MCP1563 * Acara `user_prompt` menyertakan `command_name` verbatim untuk perintah custom, plugin, dan MCP

1534 * Trace spans menyertakan atribut `tool_input` yang sama dan atribut yang diturunkan dari input seperti `file_path`, dengan pemotongan yang sama dengan `tool_input`1564 * Trace spans menyertakan atribut `tool_input` yang sama dan atribut yang diturunkan dari input seperti `file_path`, dengan pemotongan yang sama dengan `tool_input`

1535* Konten input dan output alat tidak dicatat dalam trace spans secara default. Untuk menyertakannya, atur `OTEL_LOG_TOOL_CONTENT=1`. Saat diaktifkan, acara span menyertakan konten input dan output alat lengkap dipotong pada batas konten (60 KB secara default) per atribut. Ini dapat mencakup konten file mentah dari hasil alat Read dan output perintah Bash. Konfigurasikan backend telemetri Anda untuk memfilter atau menyunting atribut ini sesuai kebutuhan1565* Konten alat tidak dicatat dalam trace spans secara default. Untuk menyertakannya, atur `OTEL_LOG_TOOL_CONTENT=1`. Span `claude_code.tool` kemudian membawa acara span [`tool.output`](#tool-output-span-event) dengan konten file mentah dan output perintah Bash, dipotong pada batas konten (60 KB secara default) per atribut. Konten alat juga menjangkau spans melalui [`new_context`, yang gatenya berbeda per span](#new-context-gates). Konfigurasikan backend telemetri Anda untuk memfilter atau menyunting atribut ini sesuai kebutuhan

1536* Badan permintaan dan respons API Anthropic Messages mentah tidak dicatat secara default. Untuk menyertakannya, atur `OTEL_LOG_RAW_API_BODIES` di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Ini diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Badan berisi riwayat percakapan lengkap, termasuk system prompt, setiap giliran pengguna dan asisten sebelumnya, dan hasil alat, jadi mengaktifkan ini menyiratkan persetujuan untuk semua yang akan diungkapkan oleh flag konten `OTEL_LOG_*` lainnya. Claude Code selalu menyunting konten extended-thinking Claude dari badan ini, terlepas dari pengaturan lain. Nilai yang Anda atur menentukan bagaimana Claude Code mengirimkan badan:1566* Badan permintaan dan respons API Anthropic Messages mentah tidak dicatat secara default. Untuk menyertakannya, atur `OTEL_LOG_RAW_API_BODIES` di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Ini diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Badan berisi riwayat percakapan lengkap, termasuk system prompt, setiap giliran pengguna dan asisten sebelumnya, dan hasil alat, jadi mengaktifkan ini menyiratkan persetujuan untuk semua yang akan diungkapkan oleh flag konten `OTEL_LOG_*` lainnya. Claude Code selalu menyunting konten extended-thinking Claude dari badan ini, terlepas dari pengaturan lain. Nilai yang Anda atur menentukan bagaimana Claude Code mengirimkan badan:

1537 * Dengan `=1`, Claude Code memancarkan acara log `api_request_body` dan `api_response_body` untuk setiap panggilan API. Atribut `body` acara membawa muatan yang diserialisasi JSON, dipotong pada batas konten (60 KB secara default)1567 * Dengan `=1`, Claude Code memancarkan acara log `api_request_body` dan `api_response_body` untuk setiap panggilan API. Atribut `body` acara membawa muatan yang diserialisasi JSON, dipotong pada batas konten (60 KB secara default)

1538 * Dengan `=file:<dir>`, Claude Code menulis badan yang tidak dipotong ke file `.request.json` dan `.response.json` di bawah direktori tersebut, dan acara membawa jalur `body_ref` sebagai gantinya dari badan inline. Kirim direktori dengan pengumpul log atau sidecar daripada melalui aliran telemetri1568 * Dengan `=file:<dir>`, Claude Code menulis badan yang tidak dipotong ke file `.request.json` dan `.response.json` di bawah direktori tersebut, dan acara membawa jalur `body_ref` sebagai gantinya dari badan inline. Kirim direktori dengan pengumpul log atau sidecar daripada melalui aliran telemetri.

1569 

1570 Untuk setiap respons yang berhasil, Claude Code juga menambahkan satu baris ke `index.jsonl` di direktori tersebut, menghubungkan file respons ke file permintaan yang menghasilkannya dan ke pesan transkrip yang menjadi. Setiap baris tidak menyimpan konten pesan, dan bagian [acara badan respons API](#api-response-body-event) mencantumkan bidangnya. File indeks memerlukan Claude Code v2.1.274 atau lebih baru

1539 1571 

1540<h2 id="monitor-claude-code-on-amazon-bedrock">1572<h2 id="monitor-claude-code-on-amazon-bedrock">

1541 Memantau Claude Code di Amazon Bedrock1573 Memantau Claude Code di Amazon Bedrock

Details

272 Daftar putih GitHub dan firewall272 Daftar putih GitHub dan firewall

273</h3>273</h3>

274 274 

275[Claude Code on the web](/docs/id/claude-code-on-the-web) di lingkungan yang dihosting Anthropic dan [Code Review](/docs/id/code-review) terhubung ke repositori Anda dari infrastruktur yang dikelola Anthropic; sesi di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments) terhubung dari dalam jaringan Anda, kecuali runner memilih [Anthropic git proxy](/docs/id/self-hosted-environments-deploy#use-the-anthropic-git-proxy), yang mengambil dari sisi Anthropic.275[Cloud sessions](/docs/id/claude-code-on-the-web) di lingkungan yang dihosting Anthropic dan [Code Review](/docs/id/code-review) terhubung ke repositori Anda dari infrastruktur yang dikelola Anthropic; sesi di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments) terhubung dari dalam jaringan Anda, kecuali runner memilih [Anthropic git proxy](/docs/id/self-hosted-environments-deploy#use-the-anthropic-git-proxy), yang mengambil dari sisi Anthropic.

276 276 

277Jika organisasi GitHub Enterprise Cloud Anda membatasi akses berdasarkan alamat IP, aktifkan [IP allow list inheritance untuk GitHub Apps yang diinstal](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps) dan juga [tambahkan entri daftar putih](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address) untuk [alamat IP keluar](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) Anthropic. Warisan mencakup hanya permintaan yang dibuat Claude GitHub App sebagai instalasi, bukan permintaan yang dibuat atas nama pengguna Anda. Untuk firewall lain, lihat [Anthropic API IP addresses](https://platform.claude.com/docs/en/api/ip-addresses).277Jika organisasi GitHub Enterprise Cloud Anda membatasi akses berdasarkan alamat IP, aktifkan [IP allow list inheritance untuk GitHub Apps yang diinstal](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps) dan juga [tambahkan entri daftar putih](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address) untuk [alamat IP keluar](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) Anthropic. Warisan mencakup hanya permintaan yang dibuat Claude GitHub App sebagai instalasi, bukan permintaan yang dibuat atas nama pengguna Anda. Untuk firewall lain, lihat [Anthropic API IP addresses](https://platform.claude.com/docs/en/api/ip-addresses).

278 278 

Details

34 34 

35Pilih gaya dengan salah satu cara berikut:35Pilih gaya dengan salah satu cara berikut:

36 36 

37* **Perintah `/output-style`**: jalankan `/output-style <style>` untuk beralih, misalnya `/output-style concise`. Tanpa argumen, perintah mencantumkan gaya yang dapat Anda pilih dan menandai yang saat ini. Claude Code menyimpan pilihan Anda ke `.claude/settings.local.json` di [tingkat proyek lokal](/docs/id/settings).

38 

39 Perintah ini juga berfungsi dalam [mode non-interaktif](/docs/id/headless) dan sesi Agent SDK, serta dari aplikasi mobile atau web melalui [Remote Control](/docs/id/remote-control#limitations), di mana Anda dapat mencantumkan dan memilih hanya [gaya bawaan](#built-in-output-styles). Memerlukan Claude Code v2.1.269 atau lebih baru.

37* **Terminal**: jalankan `/config` dan pilih **Output style** untuk memilih gaya dari menu. Claude Code menyimpan pilihan Anda ke `.claude/settings.local.json` di [tingkat proyek lokal](/docs/id/settings).40* **Terminal**: jalankan `/config` dan pilih **Output style** untuk memilih gaya dari menu. Claude Code menyimpan pilihan Anda ke `.claude/settings.local.json` di [tingkat proyek lokal](/docs/id/settings).

38* **Ekstensi VS Code**: buka [menu perintah](/docs/id/vs-code#use-the-prompt-box) dengan `/` dan pilih **Output styles** untuk memilih gaya, termasuk gaya kustom Anda. Claude Code menyimpan pilihan Anda ke `.claude/settings.local.json`, file yang sama yang ditulis menu terminal. Memerlukan Claude Code v2.1.257 atau lebih baru.41* **Ekstensi VS Code**: buka [menu perintah](/docs/id/vs-code#use-the-prompt-box) dengan `/` dan pilih **Output styles** untuk memilih gaya, termasuk gaya kustom Anda. Claude Code menyimpan pilihan Anda ke `.claude/settings.local.json`, file yang sama yang ditulis menu terminal. Memerlukan Claude Code v2.1.257 atau lebih baru.

39* **Aplikasi Desktop**: atur field `outputStyle` dalam file settings, misalnya `.claude/settings.local.json`, file yang ditulis menu terminal. Ketika Anda menjalankan `/config` di sana, Claude Code [membuka **Settings > Claude Code**](/docs/id/desktop#what%E2%80%99s-not-available-in-desktop) daripada menu.42* **Aplikasi Desktop**: atur field `outputStyle` dalam file settings, misalnya `.claude/settings.local.json`, file yang ditulis menu terminal. Ketika Anda menjalankan `/config` di sana, Claude Code [membuka **Settings > Claude Code**](/docs/id/desktop#what%E2%80%99s-not-available-in-desktop) daripada menu.

40 43 

41<Note>Perintah standalone `/output-style` sudah tidak digunakan lagi di v2.1.73 dan dihapus di v2.1.91. Gunakan `/config` atau edit pengaturan `outputStyle` secara langsung.</Note>

42 

43Untuk menetapkan gaya tanpa menu, edit field `outputStyle` secara langsung dalam file settings:44Untuk menetapkan gaya tanpa menu, edit field `outputStyle` secara langsung dalam file settings:

44 45 

45```json theme={null}46```json theme={null}


90 </Step>91 </Step>

91 92 

92 <Step title="Beralih ke style Anda">93 <Step title="Beralih ke style Anda">

93 Jalankan `/config` di terminal dan pilih style Anda di bawah **Output style**. Claude menggunakan style baru mulai dari pesan Anda berikutnya. Di terminal, Claude Code membaca file style saat dimulai, jadi jika Anda membuat atau mengedit satu selama sesi yang sedang berjalan, restart Claude Code untuk mengambil perubahan tersebut.94 Jalankan `/output-style <style>` di terminal, atau jalankan `/config` dan pilih style Anda di bawah **Output style**. Claude menggunakan style baru mulai dari pesan Anda berikutnya. Di terminal, Claude Code membaca file style saat dimulai, jadi jika Anda membuat atau mengedit satu selama sesi yang sedang berjalan, restart Claude Code untuk mengambil perubahan tersebut.

94 </Step>95 </Step>

95</Steps>96</Steps>

96 97 

overview.md +5 −5

Details

117 </Tab>117 </Tab>

118 118 

119 <Tab title="Web">119 <Tab title="Web">

120 Jalankan Claude Code di browser Anda tanpa pengaturan lokal. Mulai tugas yang berjalan lama dan periksa kembali saat selesai, bekerja pada repo yang tidak Anda miliki secara lokal, atau jalankan beberapa tugas secara paralel. Tersedia di browser desktop dan [aplikasi Claude untuk iOS dan Android](/docs/id/mobile).120 Jalankan Claude Code di browser Anda tanpa pengaturan lokal. Mulai tugas yang berjalan lama dan periksa kembali saat selesai, bekerja pada repo yang tidak Anda miliki secara lokal, atau jalankan beberapa tugas secara paralel. Untuk badan pekerjaan yang lebih lama, buat [proyek](/docs/id/claude-projects) dan biarkan Claude mengoordinasikan sesi paralel untuk Anda. Tersedia di browser desktop dan [aplikasi Claude untuk iOS dan Android](/docs/id/mobile).

121 121 

122 Mulai pengkodean di [claude.ai/code](https://claude.ai/code).122 Mulai pengkodean di [claude.ai/code](https://claude.ai/code).

123 123 

124 [Mulai di web →](/docs/id/web-quickstart)124 [Mulai →](/docs/id/web-quickstart)

125 </Tab>125 </Tab>

126 126 

127 <Tab title="JetBrains">127 <Tab title="JetBrains">


169 </Accordion>169 </Accordion>

170 170 

171 <Accordion title="Sesuaikan dengan instruksi, skills, dan hooks" icon="sliders">171 <Accordion title="Sesuaikan dengan instruksi, skills, dan hooks" icon="sliders">

172 [`CLAUDE.md`](/docs/id/memory) adalah file markdown yang Anda tambahkan ke root proyek Anda yang dibaca Claude Code di awal setiap sesi. Gunakan untuk menetapkan standar pengkodean, keputusan arsitektur, perpustakaan pilihan, dan daftar periksa tinjauan. Claude juga membangun [memori otomatis](/docs/id/memory#auto-memory) saat bekerja, menyimpan pembelajaran di seluruh sesi tanpa Anda menulis apa pun.172 [`CLAUDE.md`](/docs/id/memory) adalah file markdown yang Anda tambahkan ke root proyek Anda yang dibaca Claude Code di awal setiap sesi. Gunakan untuk menetapkan standar pengkodean, keputusan arsitektur, perpustakaan pilihan, dan daftar periksa tinjauan. Jika repositori Anda sudah memiliki `AGENTS.md` untuk agen pengkodean lainnya, Claude Code [dapat membacanya](/docs/id/memory#agents-md) sendiri atau bersama `CLAUDE.md`. Claude juga membangun [memori otomatis](/docs/id/memory#auto-memory) saat bekerja, menyimpan pembelajaran di seluruh sesi tanpa Anda menulis apa pun.

173 173 

174 Buat [skills](/docs/id/skills) untuk mengemas alur kerja yang dapat diulang yang dapat dibagikan tim Anda, seperti `/review-pr` atau `/deploy-staging`.174 Buat [skills](/docs/id/skills) untuk mengemas alur kerja yang dapat diulang yang dapat dibagikan tim Anda, seperti `/review-pr` atau `/deploy-staging`.

175 175 


227Selain permukaan [Terminal](/docs/id/quickstart), [VS Code](/docs/id/vs-code), [JetBrains](/docs/id/jetbrains), [Desktop](/docs/id/desktop), dan [Web](/docs/id/claude-code-on-the-web) di atas, Claude Code terintegrasi dengan alur kerja CI/CD, obrolan, dan browser:227Selain permukaan [Terminal](/docs/id/quickstart), [VS Code](/docs/id/vs-code), [JetBrains](/docs/id/jetbrains), [Desktop](/docs/id/desktop), dan [Web](/docs/id/claude-code-on-the-web) di atas, Claude Code terintegrasi dengan alur kerja CI/CD, obrolan, dan browser:

228 228 

229| Saya ingin... | Opsi terbaik |229| Saya ingin... | Opsi terbaik |

230| -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |230| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |

231| Lanjutkan sesi lokal dari ponsel atau perangkat lain | [Remote Control](/docs/id/remote-control) |231| Lanjutkan sesi lokal dari ponsel atau perangkat lain | [Remote Control](/docs/id/remote-control) |

232| Dorong acara dari Telegram, Discord, iMessage, atau webhook saya sendiri ke dalam sesi | [Channels](/docs/id/channels) |232| Dorong acara dari Telegram, Discord, iMessage, atau webhook saya sendiri ke dalam sesi | [Channels](/docs/id/channels) |

233| Mulai tugas secara lokal, lanjutkan di mobile | [`claude --cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-web), kemudian [aplikasi Claude mobile](/docs/id/mobile) |233| Mulai tugas secara lokal, lanjutkan di mobile | [`claude --cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-cloud), kemudian [aplikasi Claude mobile](/docs/id/mobile) |

234| Jalankan Claude sesuai jadwal berulang | [Routines](/docs/id/routines) atau [Tugas terjadwal desktop](/docs/id/desktop-scheduled-tasks) |234| Jalankan Claude sesuai jadwal berulang | [Routines](/docs/id/routines) atau [Tugas terjadwal desktop](/docs/id/desktop-scheduled-tasks) |

235| Otomatisasi tinjauan PR dan triase masalah | [GitHub Actions](/docs/id/github-actions) atau [GitLab CI/CD](/docs/id/gitlab-ci-cd) |235| Otomatisasi tinjauan PR dan triase masalah | [GitHub Actions](/docs/id/github-actions) atau [GitLab CI/CD](/docs/id/gitlab-ci-cd) |

236| Dapatkan tinjauan kode otomatis di setiap PR | [GitHub Code Review](/docs/id/code-review) |236| Dapatkan tinjauan kode otomatis di setiap PR | [GitHub Code Review](/docs/id/code-review) |

Details

27 27 

28Mode yang meninjau setiap tindakan dinamai **Manual** di CLI, di `claude --help`, di ekstensi VS Code dan JetBrains, dan di aplikasi desktop. Nilai konfignya adalah `default`, yang digunakan oleh hooks dan integrasi SDK. CLI menerima `manual` sebagai alias di mana pun Anda mengetik nilainya, misalnya `claude --permission-mode manual` atau `"defaultMode": "manual"`. Label Manual dan alias `manual` memerlukan Claude Code v2.1.200 atau lebih baru. Label aplikasi desktop tidak bergantung pada versi CLI Anda.28Mode yang meninjau setiap tindakan dinamai **Manual** di CLI, di `claude --help`, di ekstensi VS Code dan JetBrains, dan di aplikasi desktop. Nilai konfignya adalah `default`, yang digunakan oleh hooks dan integrasi SDK. CLI menerima `manual` sebagai alias di mana pun Anda mengetik nilainya, misalnya `claude --permission-mode manual` atau `"defaultMode": "manual"`. Label Manual dan alias `manual` memerlukan Claude Code v2.1.200 atau lebih baru. Label aplikasi desktop tidak bergantung pada versi CLI Anda.

29 29 

30Penulisan ke [jalur yang dilindungi](#protected-paths) tidak pernah disetujui otomatis kecuali dalam mode `bypassPermissions` dan dalam sesi mode plan di mana izin bypass tersedia, artinya sesi yang dimulai dengan cara yang [menempatkan `bypassPermissions` dalam siklus mode](#switch-permission-modes).30Penulisan ke [jalur yang dilindungi](#protected-paths) tidak pernah disetujui otomatis kecuali dalam mode `bypassPermissions` dan dalam sesi mode plan di mana izin bypass tersedia, artinya sesi terminal interaktif yang dimulai dengan cara yang [menempatkan `bypassPermissions` dalam siklus mode](#switch-permission-modes).

31 31 

32Mode menetapkan garis dasar. Lapisi [aturan izin](/docs/id/permissions#manage-permissions) di atas untuk menyetujui sebelumnya atau memblokir alat tertentu. Aturan Deny memblokir di setiap mode, termasuk `bypassPermissions`. Aturan Deny dan ask tidak berlaku untuk [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) selama Claude masih memiliki setidaknya satu alat lain yang dapat dipanggilnya. Aturan Allow tidak berpengaruh dalam `bypassPermissions`.32Mode menetapkan garis dasar. Lapisi [aturan izin](/docs/id/permissions#manage-permissions) di atas untuk menyetujui sebelumnya atau memblokir alat tertentu. Aturan Deny memblokir di setiap mode, termasuk `bypassPermissions`. Aturan Deny dan ask tidak berlaku untuk [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) selama Claude masih memiliki setidaknya satu alat lain yang dapat dipanggilnya. Aturan Allow tidak berpengaruh dalam `bypassPermissions`.

33 33 


42* Alat yang memerlukan interaksi pengguna: alat `AskUserQuestion` bawaan dan alat MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool)42* Alat yang memerlukan interaksi pengguna: alat `AskUserQuestion` bawaan dan alat MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool)

43* Penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](#critical-paths), yang tidak ada aturan allow atau hook `PreToolUse` `"allow"` yang menyetujui43* Penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](#critical-paths), yang tidak ada aturan allow atau hook `PreToolUse` `"allow"` yang menyetujui

44* [Penjaga pesan lintas sesi](#skip-all-checks-with-bypasspermissions-mode)44* [Penjaga pesan lintas sesi](#skip-all-checks-with-bypasspermissions-mode)

45* Membaca di luar direktori kerja sementara [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) aktif: perintah Bash pembaca file yang dikenali dan [retry tanpa sandbox](/docs/id/sandboxing#the-unsandboxed-retry-escape-hatch) apa pun yang memerlukan persetujuan untuk berjalan di luar sandbox meminta bahkan dalam mode auto dan mode `bypassPermissions`. Memerlukan Claude Code v2.1.257 atau lebih baru45* Membaca di luar direktori kerja sementara [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) aktif: perintah Bash pembaca file yang dikenali meminta bahkan dalam mode auto dan mode `bypassPermissions`, dan begitu juga dengan [retry tanpa sandbox](/docs/id/sandboxing#the-unsandboxed-retry-escape-hatch) apa pun yang memerlukan persetujuan untuk berjalan di luar sandbox. Memerlukan Claude Code v2.1.257 atau lebih baru.

46 

47 Perintah yang parser shell tidak dapat lacak, seperti yang mengubah direktori lebih dari sekali atau menjalankan subshell, meminta dengan cara yang sama bahkan ketika tidak menamai jalur luar apa pun. Permintaan ini tidak berlaku ketika perintah berjalan di [sandbox](/docs/id/sandboxing) dan sandbox memberlakukan blokir.

46 48 

47<h2 id="common-setups">49<h2 id="common-setups">

48 Pengaturan umum50 Pengaturan umum


56| Iterasi lokal dengan lebih sedikit prompt, tanpa pengklasifikasi | Mode Manual ditambah sandbox Bash dalam [mode auto-allow](/docs/id/sandboxing#sandbox-modes): `claude --permission-mode default`, kemudian jalankan `/sandbox` dan pilih auto-allow | Sandbox Bash bawaan, di macOS, Linux, dan WSL2 | Aturan deny masih berlaku, dan aturan ask yang menyebutkan perintah, seperti `Bash(git push *)`, masih meminta. Untuk mengaktifkan sandbox dari file pengaturan sebagai gantinya, atur [`sandbox.enabled`](/docs/id/settings-reference#sandbox-enabled) ke `true` |58| Iterasi lokal dengan lebih sedikit prompt, tanpa pengklasifikasi | Mode Manual ditambah sandbox Bash dalam [mode auto-allow](/docs/id/sandboxing#sandbox-modes): `claude --permission-mode default`, kemudian jalankan `/sandbox` dan pilih auto-allow | Sandbox Bash bawaan, di macOS, Linux, dan WSL2 | Aturan deny masih berlaku, dan aturan ask yang menyebutkan perintah, seperti `Bash(git push *)`, masih meminta. Untuk mengaktifkan sandbox dari file pengaturan sebagai gantinya, atur [`sandbox.enabled`](/docs/id/settings-reference#sandbox-enabled) ke `true` |

57| Jelajahi sebelum mengubah apa pun | `claude --permission-mode plan` | Tidak ada | Claude Code memblokir pengeditan sampai Anda [menyetujui rencana](#review-and-approve-a-plan) |59| Jelajahi sebelum mengubah apa pun | `claude --permission-mode plan` | Tidak ada | Claude Code memblokir pengeditan sampai Anda [menyetujui rencana](#review-and-approve-a-plan) |

58| Bekerja hands-off dalam mode auto | `claude --permission-mode auto`, [mode izin awal bawaan](#which-mode-a-session-starts-in) pada Pro, Max, dan Team | Tidak ada; sandbox atau kontainer menambah pertahanan berlapis | Memerlukan [model yang didukung](#eliminate-prompts-with-auto-mode), dan organisasi Anda dapat [mematikan mode auto](#eliminate-prompts-with-auto-mode) |60| Bekerja hands-off dalam mode auto | `claude --permission-mode auto`, [mode izin awal bawaan](#which-mode-a-session-starts-in) pada Pro, Max, dan Team | Tidak ada; sandbox atau kontainer menambah pertahanan berlapis | Memerlukan [model yang didukung](#eliminate-prompts-with-auto-mode), dan organisasi Anda dapat [mematikan mode auto](#eliminate-prompts-with-auto-mode) |

59| Jalankan di CI dengan allowlist yang tepat | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Tidak ada di luar apa yang disediakan runner CI Anda | [Claude Code di web](/docs/id/claude-code-on-the-web) mengabaikan `dontAsk` dari file pengaturan |61| Jalankan di CI dengan allowlist yang tepat | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Tidak ada di luar apa yang disediakan runner CI Anda | [Cloud sessions](/docs/id/claude-code-on-the-web) mengabaikan `dontAsk` dari file pengaturan |

60| Jalankan sepenuhnya tanpa pengawasan di dalam kontainer | `claude -p "<prompt>" --dangerously-skip-permissions` | Diperlukan: kontainer, VM, atau [runtime sandbox](/docs/id/sandbox-environments#sandbox-runtime); di Linux dan macOS, jalankan sebagai [pengguna non-root](#skip-all-checks-with-bypasspermissions-mode) | Claude Code di web mengabaikan mode ini dari file pengaturan. Dalam jalankan `-p` ini, [beberapa panggilan yang masih akan meminta](#skip-all-checks-with-bypasspermissions-mode) ditolak sebagai gantinya |62| Jalankan sepenuhnya tanpa pengawasan di dalam kontainer | `claude -p "<prompt>" --dangerously-skip-permissions` | Diperlukan: kontainer, VM, atau [runtime sandbox](/docs/id/sandbox-environments#sandbox-runtime); di Linux dan macOS, jalankan sebagai [pengguna non-root](#skip-all-checks-with-bypasspermissions-mode) | Cloud sessions mengabaikan mode ini dari file pengaturan. Dalam jalankan `-p` ini, [beberapa panggilan yang masih akan meminta](#skip-all-checks-with-bypasspermissions-mode) ditolak sebagai gantinya |

61 63 

62Sandbox Bash dan mode auto bekerja secara independen dan menggabungkan, kecuali dalam mode rencana, di mana [auto-allow tidak memperluas persetujuan](/docs/id/sandboxing#sandbox-modes). Untuk interaksi penuh, lihat [Bagaimana sandboxing berhubungan dengan izin dan mode izin](/docs/id/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes) dan [Bagaimana isolasi berhubungan dengan mode izin](/docs/id/sandbox-environments#how-isolation-relates-to-permission-modes).64Sandbox Bash dan mode auto bekerja secara independen dan menggabungkan, dengan pengecualian yang tercantum di bawah [Sandbox modes](/docs/id/sandboxing#sandbox-modes). Untuk interaksi penuh, lihat [Bagaimana sandboxing berhubungan dengan izin dan mode izin](/docs/id/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes) dan [Bagaimana isolasi berhubungan dengan mode izin](/docs/id/sandbox-environments#how-isolation-relates-to-permission-modes).

63 65 

64<h2 id="which-mode-a-session-starts-in">66<h2 id="which-mode-a-session-starts-in">

65 Mode mana yang dimulai sesi67 Mode mana yang dimulai sesi


211 <Tab title="Web dan mobile">213 <Tab title="Web dan mobile">

212 Gunakan dropdown mode di sebelah kotak prompt di [claude.ai/code](https://claude.ai/code) atau di aplikasi mobile. Prompt izin muncul di claude.ai untuk persetujuan. Mode mana yang muncul bergantung pada di mana sesi berjalan:214 Gunakan dropdown mode di sebelah kotak prompt di [claude.ai/code](https://claude.ai/code) atau di aplikasi mobile. Prompt izin muncul di claude.ai untuk persetujuan. Mode mana yang muncul bergantung pada di mana sesi berjalan:

213 215 

214 * **Sesi cloud** di [Claude Code di web](/docs/id/claude-code-on-the-web): Accept edits, Plan, dan Auto. Accept edits sesuai dengan mode `default`: sesi cloud pra-menyetujui pengeditan file terlepas dari mode, jadi dropdown menampilkan Accept edits alih-alih Manual. Sesi cloud masih menghormati `defaultMode: "acceptEdits"` dari pengaturan. Mode Auto muncul hanya ketika organisasi Anda mengizinkannya dan model yang dipilih mendukungnya. Bypass permissions tidak tersedia.216 * **[Sesi cloud](/docs/id/claude-code-on-the-web)**: Accept edits, Plan, dan Auto. Accept edits sesuai dengan mode `default`: sesi cloud pra-menyetujui pengeditan file terlepas dari mode, jadi dropdown menampilkan Accept edits alih-alih Manual. Sesi cloud masih menghormati `defaultMode: "acceptEdits"` dari pengaturan. Mode Auto muncul hanya ketika organisasi Anda mengizinkannya dan model yang dipilih mendukungnya. Bypass permissions tidak tersedia.

215 * **Sesi [Remote Control](/docs/id/remote-control)** di mesin lokal Anda: Manual, Accept edits, dan Plan. Anda tidak dapat memilih Auto atau Bypass permissions dari aplikasi.217 * **[Sesi Remote Control](/docs/id/remote-control)** di mesin lokal Anda: Manual, Accept edits, dan Plan. Anda tidak dapat memilih Auto atau Bypass permissions dari aplikasi.

216 * Kecuali untuk Bypass permissions, dropdown menampilkan mode izin yang sesi lokal gunakan, termasuk yang diatur dari terminal. Itu diperbarui ketika mode izin berubah di aplikasi atau di terminal. Sesi tidak pernah melaporkan Bypass permissions ke claude.ai, jadi beralih ke dalamnya dari terminal tidak mengubah apa yang ditampilkan dropdown.218 * Kecuali untuk Bypass permissions, dropdown menampilkan mode izin yang sesi lokal gunakan, termasuk yang diatur dari terminal. Itu diperbarui ketika mode izin berubah di aplikasi atau di terminal. Sesi tidak pernah melaporkan Bypass permissions ke claude.ai, jadi beralih ke dalamnya dari terminal tidak mengubah apa yang ditampilkan dropdown.

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

218 * Sebelum v2.1.202, sesi yang terhubung dengan `/remote-control` atau `claude --remote-control` tidak melaporkan mode mereka sama sekali, jadi claude.ai dan aplikasi mobile dapat menampilkan mode yang sesi tidak gunakan. Ketidaksesuaian hanya mempengaruhi label. Claude Code menghasilkan prompt izin dari mode izin aktual sesi, dan mereka masih muncul di aplikasi untuk persetujuan.220 * Sebelum v2.1.202, sesi yang terhubung dengan `/remote-control` atau `claude --remote-control` tidak melaporkan mode mereka sama sekali, jadi claude.ai dan aplikasi mobile dapat menampilkan mode yang sesi tidak gunakan. Ketidaksesuaian hanya mempengaruhi label. Claude Code menghasilkan prompt izin dari mode izin aktual sesi, dan mereka masih muncul di aplikasi untuk persetujuan.


247 Analisis sebelum Anda mengedit dengan mode rencana249 Analisis sebelum Anda mengedit dengan mode rencana

248</h2>250</h2>

249 251 

250Mode rencana memberi tahu Claude untuk meneliti dan mengusulkan perubahan tanpa membuatnya. Claude membaca file, menjalankan perintah shell untuk menjelajahi, dan menulis rencana, tetapi tidak mengedit sumber Anda. Kecuali dalam sesi dengan [bypass permissions tersedia](#skip-all-checks-with-bypasspermissions-mode), pengeditan tetap diblokir sampai Anda menyetujui rencana.252Plan Mode memberi tahu Claude untuk meneliti dan mengusulkan perubahan tanpa membuatnya. Claude membaca file, menjalankan perintah shell untuk menjelajahi, dan menulis rencana, tetapi tidak mengedit sumber Anda. Kecuali dalam sesi terminal interaktif dengan [bypass permissions tersedia](#skip-all-checks-with-bypasspermissions-mode), pengeditan tetap diblokir sampai Anda menyetujui rencana.

251 253 

252Ketika [mode auto](/docs/id/auto-mode-config) tersedia dan pengaturan `useAutoModeDuringPlan` aktif, yang merupakan default, pengklasifikasi meninjau perintah shell selama perencanaan alih-alih meminta Anda. Perintah yang disetujui berjalan, dan yang ditolak diblokir. Jika tidak, perintah di luar [set bawaan read-only](/docs/id/permissions#read-only-commands) meminta persetujuan, termasuk ketika [mode auto-allow](/docs/id/sandboxing#sandbox-modes) sandbox diaktifkan. Dalam sesi dengan bypass permissions tersedia, baik pengklasifikasi maupun prompt tidak berlaku untuk perintah perencanaan; [Lewati semua pemeriksaan dengan mode bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) mencakup beberapa hal yang masih meminta di sana. Dalam v2.1.212 hingga v2.1.217, sesi tanpa bypass permissions meminta untuk setiap perintah di luar set read-only, apakah atau tidak mode auto tersedia.254Ketika [auto mode](/docs/id/auto-mode-config) tersedia dan pengaturan `useAutoModeDuringPlan` aktif, yang merupakan default, pengklasifikasi meninjau perintah shell selama perencanaan alih-alih meminta Anda. Perintah yang disetujui berjalan, dan yang ditolak diblokir. Jika tidak, perintah di luar [set bawaan read-only](/docs/id/permissions#read-only-commands) meminta persetujuan, termasuk ketika [auto-allow mode](/docs/id/sandboxing#sandbox-modes) sandbox diaktifkan. Dalam sesi terminal interaktif dengan bypass permissions tersedia, baik pengklasifikasi maupun prompt tidak berlaku untuk perintah perencanaan; [Lewati semua pemeriksaan dengan bypassPermissions mode](#skip-all-checks-with-bypasspermissions-mode) mencakup beberapa hal yang masih meminta di sana. Dalam v2.1.212 hingga v2.1.217, sesi tanpa bypass permissions meminta untuk setiap perintah di luar set read-only, apakah atau tidak auto mode tersedia.

253 255 

254Masukkan mode rencana dengan menekan `Shift+Tab` atau mengawali prompt tunggal dengan `/plan`. Anda juga dapat memulai dalam mode rencana dari CLI:256Masukkan mode rencana dengan menekan `Shift+Tab` atau mengawali prompt tunggal dengan `/plan`. Anda juga dapat memulai dalam mode rencana dari CLI:

255 257 


326 328 

327Dalam 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 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.

328 330 

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

332 Tinjauan pengklasifikasi di sisi server

333</h4>

334 

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.

336 

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

330 Apa yang diblokir pengklasifikasi secara default338 Apa yang diblokir pengklasifikasi secara default

331</h3>339</h3>


419* 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 sama427* 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

420* [Claude in Chrome](/docs/id/chrome) navigasi ke domain internal terpercaya, localhost, atau URL yang Anda beri nama428* [Claude in Chrome](/docs/id/chrome) navigasi ke domain internal terpercaya, localhost, atau URL yang Anda beri nama

421 429 

422Permintaan akses jaringan sandbox dirutekan melalui pengklasifikasi daripada diizinkan secara default. Mulai v2.1.198, pengklasifikasi menggunakan kembali verediknya untuk host dan port jaringan daripada menjalankan kembali pada setiap koneksi: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.

423 

424* Izin digunakan kembali sampai konten baru memasuki percakapan, di mana titik host itu diperiksa lagi

425* Claude Code v2.1.234 dan lebih baru menggunakan kembali penolakan yang disebabkan oleh percakapan yang melampaui jendela konteks pengklasifikasi sampai konten baru memasuki percakapan, atau sampai [pemadatan](/docs/id/costs#reduce-token-usage) menyusutkan apa yang dibaca pengklasifikasi. Claude Code kemudian memeriksa host lagi

426* Penolakan yang dicapai pengklasifikasi dengan mengevaluasi permintaan berlangsung untuk giliran dalam CLI interaktif. Dalam mode [non-interaktif](/docs/id/headless) dan sesi Agent SDK, Claude Code menggunakan kembali penolakan itu untuk sisa jalannya, karena sesi tersebut tidak memiliki batas giliran

427* Mengubah mode izin atau aturan Anda menghapus semua veredik yang di-cache

428 431 

429Jalankan `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).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).

430 433 


471 <Accordion title="Bagaimana pengklasifikasi mengevaluasi tindakan">474 <Accordion title="Bagaimana pengklasifikasi mengevaluasi tindakan">

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

473 476 

474 1. Tindakan yang cocok dengan [aturan allow, ask, atau deny](/docs/id/permissions#manage-permissions) Anda diselesaikan segera. 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 baru. 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 Code. Aturan ask yang cocok pada konten perintah, seperti `Bash(git push *)`, jatuh kembali ke permintaan izin477 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 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 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 hostnya

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

475 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 Anda482 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 Anda

476 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 otomatis483 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 otomatis

477 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)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)


488 495 

489 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`.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`.

490 497 

491 Pengklasifikasi melihat pesan pengguna, panggilan alat selain pencarian hanya-baca seperti pembacaan file dan pencarian, dan konten CLAUDE.md Anda. Hasil alat dilepas, 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.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.

492 499 

493 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).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).

494 </Accordion>501 </Accordion>


498 505 

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

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

501 3. Ketika subagen selesai, pengklasifikasi meninjau riwayat tindakan lengkapnya; jika pemeriksaan pengembalian itu menandai kekhawatiran, peringatan keamanan ditambahkan ke depan hasil subagen. Ketika pemeriksaan keamanan API terpisah menolak permintaan tinjauan itu sendiri, Claude Code masih mengembalikan hasil subagen, ditambahkan dengan peringatan bahwa pekerjaan tidak ditinjau dan harus diperlakukan sebagai tidak terpercaya.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.

502 509 

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

504 </Accordion>511 </Accordion>


508 515 

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

510 517 

511 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.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).

512 519 

513 Pengklasifikasi menggunakan kembali veredik jaringan sandbox untuk host dan port, jadi koneksi berulang ke host yang sama tidak masing-masing menambahkan pemeriksaan. [Apa yang diblokir pengklasifikasi secara default](#what-the-classifier-blocks-by-default) menjelaskan berapa lama izin dan penolakan berlangsung.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.

514 </Accordion>521 </Accordion>

515</AccordionGroup>522</AccordionGroup>

516 523 


540 547 

541[Tindakan yang tidak ada mode auto-approve](#actions-no-mode-auto-approves) masih meminta dalam mode ini.548[Tindakan yang tidak ada mode auto-approve](#actions-no-mode-auto-approves) masih meminta dalam mode ini.

542 549 

543Dua perlindungan [pesan lintas sesi](/docs/id/cross-session-messaging) masih berlaku dalam mode ini, dan dalam sesi mode rencana di mana bypass permissions tersedia:550Dua perlindungan [pesan lintas sesi](/docs/id/cross-session-messaging) masih berlaku dalam mode ini, dan dalam sesi mode rencana terminal interaktif di mana bypass permissions tersedia:

544 551 

545* Prompt persetujuan [`isolatePeerMachines`](/docs/id/settings-reference#isolatepeermachines) untuk pesan ke sesi Anda di luar mesin ini masih muncul.552* Prompt persetujuan [`isolatePeerMachines`](/docs/id/settings-reference#isolatepeermachines) untuk pesan ke sesi Anda di luar mesin ini masih muncul.

546* Ketika tidak ada nilai [`crossSessionInbound`](/docs/id/cross-session-messaging#control-inbound-messages) berlaku, Claude Code menahan pesan masuk dari sesi lain Anda untuk persetujuan Anda, dan mengirimkan tanpa bertanya hanya ketika sesi pengirim mengidentifikasi dirinya sebagai juga melewati prompt izin. Jika Anda meninggalkan mode izin saat pesan ditahan, Claude Code menerapkan kembali aturan masuk dan mengirimkan pesan yang ditahan apa pun yang sekarang diterima.553* Ketika tidak ada nilai [`crossSessionInbound`](/docs/id/cross-session-messaging#control-inbound-messages) berlaku, Claude Code menahan pesan masuk dari sesi lain Anda untuk persetujuan Anda, dan mengirimkan tanpa bertanya hanya ketika sesi pengirim mengidentifikasi dirinya sebagai juga melewati prompt izin. Jika Anda meninggalkan mode izin saat pesan ditahan, Claude Code menerapkan kembali aturan masuk dan mengirimkan pesan yang ditahan apa pun yang sekarang diterima.

547 554 

548Dalam sesi dengan bypass permissions tersedia, Claude Code juga tidak memberlakukan [blokir mode rencana](#analyze-before-you-edit-with-plan-mode). Claude masih diinstruksikan untuk merencanakan tanpa mengedit, tetapi pengeditan file atau perintah shell yang dicoba selama perencanaan berjalan tanpa meminta. [Aturan ask](/docs/id/permissions#manage-permissions) eksplisit dan penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](#critical-paths) masih meminta.555Dalam sesi terminal interaktif dengan bypass permissions tersedia, Claude Code juga tidak memberlakukan [blokir mode rencana](#analyze-before-you-edit-with-plan-mode). Claude masih diinstruksikan untuk merencanakan tanpa mengedit, tetapi pengeditan file atau perintah shell yang dicoba selama perencanaan berjalan tanpa meminta. [Aturan ask](/docs/id/permissions#manage-permissions) eksplisit dan penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](#critical-paths) masih meminta.

556 

557Mode rencana menjaga blokir di mana pun Claude Code berjalan tanpa terminal interaktif, termasuk [run non-interaktif](/docs/id/headless) dengan `-p`, sesi [Agent SDK](/docs/id/agent-sdk/permissions#plan-mode-plan), dan percakapan di panel chat [VS Code extension](/docs/id/vs-code). Di sana, `--allow-dangerously-skip-permissions` membuat `bypassPermissions` dapat dipilih nanti.

549 558 

550<Warning>559<Warning>

551 Hanya gunakan mode ini di lingkungan terisolasi seperti kontainer, VM, atau dev container tanpa akses internet, di mana Claude Code tidak dapat merusak sistem host Anda.560 Hanya gunakan mode ini di lingkungan terisolasi seperti kontainer, VM, atau dev container tanpa akses internet, di mana Claude Code tidak dapat merusak sistem host Anda.


581 Jalur yang dilindungi590 Jalur yang dilindungi

582</h2>591</h2>

583 592 

584Penulisan ke serangkaian jalur kecil tidak pernah disetujui otomatis, kecuali dalam mode `bypassPermissions` dan dalam sesi mode rencana dengan [bypass permissions](#skip-all-checks-with-bypasspermissions-mode) tersedia. Ini mencegah kerusakan yang tidak disengaja dari status repositori dan konfigurasi Claude sendiri.593Penulisan ke serangkaian jalur kecil tidak pernah disetujui otomatis, kecuali dalam mode `bypassPermissions` dan dalam sesi terminal interaktif mode plan dengan [bypass permissions](#skip-all-checks-with-bypasspermissions-mode) tersedia. Ini mencegah kerusakan yang tidak disengaja dari status repositori dan konfigurasi Claude sendiri.

585 594 

586| Mode | Penulisan jalur yang dilindungi |595| Mode | Penulisan jalur yang dilindungi |

587| :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |596| :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

588| `default`, `acceptEdits` | Diminta |597| `default`, `acceptEdits` | Diminta |

589| `plan` | Diizinkan dalam sesi dengan [bypass permissions](#skip-all-checks-with-bypasspermissions-mode) tersedia. Jika tidak, dirutekan ke pengklasifikasi ketika [mode auto](#eliminate-prompts-with-auto-mode) tersedia selama perencanaan, dan diminta ketika tidak |598| `plan` | Diizinkan dalam sesi terminal interaktif dengan [bypass permissions](#skip-all-checks-with-bypasspermissions-mode) tersedia. Jika tidak, dirutekan ke pengklasifikasi ketika [mode auto](#eliminate-prompts-with-auto-mode) tersedia selama perencanaan, dan diminta ketika tidak |

590| `auto` | Dirutekan ke pengklasifikasi |599| `auto` | Dirutekan ke pengklasifikasi |

591| `dontAsk` | Ditolak |600| `dontAsk` | Ditolak |

592| `bypassPermissions` | Diizinkan |601| `bypassPermissions` | Diizinkan |


649 658 

650Claude Code juga memperlakukan glob atau garis miring di bawah variabel shell, seperti `rm -rf "$DIR"/*`, sebagai penghapusan jalur kritis, karena perintah menjadi penghapusan dari akar filesystem ketika variabel kosong.659Claude Code juga memperlakukan glob atau garis miring di bawah variabel shell, seperti `rm -rf "$DIR"/*`, sebagai penghapusan jalur kritis, karena perintah menjadi penghapusan dari akar filesystem ketika variabel kosong.

651 660 

652Menyembunyikan penghapusan di dalam substitusi perintah dengan `$(...)` atau backtick, atau substitusi proses dengan `<(...)`, tidak melewati pemeriksaan. Claude Code menemukan penghapusan jalur kritis apakah itu berada di dalam substitusi, seperti dalam `echo "$(rm -rf ~)"`, atau di tempat lain dalam perintah yang sama.661Menyembunyikan penghapusan di dalam subshell dengan `(...)`, grup brace dengan `{ ...; }`, substitusi perintah dengan `$(...)` atau backtick, atau substitusi proses dengan `<(...)`, tidak melewati pemeriksaan. Claude Code menemukan penghapusan jalur kritis apakah itu berada di dalam bentuk bersarang, seperti dalam `(rm -rf ~)` atau `echo "$(rm -rf ~)"`, atau di tempat lain dalam perintah yang sama.

653 662 

654<h3 id="remove-item-in-powershell">663<h3 id="remove-item-in-powershell">

655 Remove-Item dalam PowerShell664 Remove-Item dalam PowerShell

permissions.md +17 −4

Details

65 65 

66Aturan dievaluasi secara berurutan: deny, kemudian ask, kemudian allow. Kecocokan pertama dalam urutan tersebut menentukan hasilnya, dan spesifisitas aturan tidak mengubah urutan.66Aturan dievaluasi secara berurutan: deny, kemudian ask, kemudian allow. Kecocokan pertama dalam urutan tersebut menentukan hasilnya, dan spesifisitas aturan tidak mengubah urutan.

67 67 

68Aturan deny yang luas seperti `Bash(aws *)` memblokir setiap panggilan yang cocok, termasuk panggilan yang juga cocok dengan aturan allow yang lebih sempit seperti `Bash(aws s3 ls)`, jadi aturan deny tidak dapat membawa pengecualian daftar izin. Prioritas yang sama berlaku antara ask dan allow: aturan ask yang cocok meminta konfirmasi bahkan ketika aturan allow yang lebih spesifik juga cocok dengan panggilan yang sama.68Aturan deny yang luas seperti `Bash(aws *)` memblokir setiap panggilan yang cocok, termasuk panggilan yang juga cocok dengan aturan allow yang lebih sempit seperti `Bash(aws s3 ls)`. Aturan allow tidak dapat membuat pengecualian dari aturan deny. Prioritas yang sama berlaku antara ask dan allow: aturan ask yang cocok meminta konfirmasi bahkan ketika aturan allow yang lebih spesifik juga cocok dengan panggilan yang sama.

69 69 

70Aturan deny berperilaku berbeda tergantung pada apakah mereka menamai alat atau membatasi pola dalam satu alat. Nama alat biasa seperti `Bash` menghapus alat dari konteks Claude sepenuhnya, sehingga Claude tidak pernah melihatnya. Jika Anda menambahkan aturan seperti itu di tengah sesi, Claude tidak dapat memanggil alat dari panggilan alat berikutnya; [Menolak seluruh alat](/docs/id/prompt-caching#denying-an-entire-tool) mencakup apa yang terjadi pada definisi yang telah Claude lihat. Aturan yang dibatasi seperti `Bash(rm *)` membiarkan alat tersedia dan memblokir panggilan yang cocok ketika Claude mencoba menggunakannya.70Aturan deny berperilaku berbeda tergantung pada apakah mereka menamai alat atau membatasi pola dalam satu alat. Nama alat biasa seperti `Bash` menghapus alat dari konteks Claude sepenuhnya, sehingga Claude tidak pernah melihatnya. Jika Anda menambahkan aturan seperti itu di tengah sesi, Claude tidak dapat memanggil alat dari panggilan alat berikutnya; [Menolak seluruh alat](/docs/id/prompt-caching#denying-an-entire-tool) mencakup apa yang terjadi pada definisi yang telah Claude lihat. Aturan yang dibatasi seperti `Bash(rm *)` membiarkan alat tersedia dan memblokir panggilan yang cocok ketika Claude mencoba menggunakannya.

71 71 


333 333 

334Target tanpa file di belakangnya tidak diperiksa: `/dev/null`, bentuk file-descriptor seperti `2>&1` dan `<&3`, dan here-docs dan here-strings.334Target tanpa file di belakangnya tidak diperiksa: `/dev/null`, bentuk file-descriptor seperti `2>&1` dan `<&3`, dan here-docs dan here-strings.

335 335 

336Claude Code juga memeriksa file yang ditulis perintah `tee`, termasuk dalam pipeline seperti `make | tee build.log`. Pemeriksaan mencakup aturan allow dan deny `Edit` Anda, [jalur yang dilindungi](/docs/id/permission-modes#protected-paths), dan [direktori kerja](#working-directories). Aturan allow seperti `Bash(tee *)` tidak mencakup tujuan di luar direktori kerja. Claude Code memeriksa target `tee` dalam v2.1.269 dan lebih baru.

337 

336<h3 id="powershell">338<h3 id="powershell">

337 PowerShell339 PowerShell

338</h3>340</h3>


370Claude Code memeriksa izin file terhadap aturan `Edit(path)` dan `Read(path)` saja. Jika Anda menulis aturan jalur untuk `Write`, `NotebookEdit`, `Glob`, atau alat `MultiEdit` warisan sebagai gantinya, Claude Code menerima aturan tetapi tidak pernah berkonsultasi dengannya, dan [memperingatkan saat startup](/docs/id/errors#is-not-matched-by-file-permission-checks), kecuali untuk aturan `Glob` yang dilewatkan dalam `--allowedTools`. Gunakan `Edit(docs/**)` sebagai pengganti `Write(docs/**)`, `NotebookEdit(docs/**)`, atau `MultiEdit(docs/**)`, dan `Read(docs/**)` sebagai pengganti `Glob(docs/**)`. Claude Code tidak memperingatkan tentang aturan nama alat tanpa jalur, seperti aturan deny untuk `Write`; itu mencocokkan aturan itu di tingkat alat di mana-mana. Memerlukan Claude Code v2.1.210 atau lebih baru.372Claude Code memeriksa izin file terhadap aturan `Edit(path)` dan `Read(path)` saja. Jika Anda menulis aturan jalur untuk `Write`, `NotebookEdit`, `Glob`, atau alat `MultiEdit` warisan sebagai gantinya, Claude Code menerima aturan tetapi tidak pernah berkonsultasi dengannya, dan [memperingatkan saat startup](/docs/id/errors#is-not-matched-by-file-permission-checks), kecuali untuk aturan `Glob` yang dilewatkan dalam `--allowedTools`. Gunakan `Edit(docs/**)` sebagai pengganti `Write(docs/**)`, `NotebookEdit(docs/**)`, atau `MultiEdit(docs/**)`, dan `Read(docs/**)` sebagai pengganti `Glob(docs/**)`. Claude Code tidak memperingatkan tentang aturan nama alat tanpa jalur, seperti aturan deny untuk `Write`; itu mencocokkan aturan itu di tingkat alat di mana-mana. Memerlukan Claude Code v2.1.210 atau lebih baru.

371 373 

372<Warning>374<Warning>

373 Aturan deny Read dan Edit berlaku untuk alat file bawaan Claude, untuk perintah file yang Claude Code kenali di Bash, seperti `cat`, `head`, `tail`, dan `sed`, dan untuk target pengalihan Bash [redirections](#redirections) seperti `> file` dan `< file`. Mereka tidak berlaku untuk perintah yang membaca file tanpa menamakannya, seperti `grep -r pattern .` dijalankan dari direktori yang menyimpan file, atau untuk subproses arbitrer yang membaca atau menulis file secara tidak langsung, seperti skrip Python atau Node yang membuka file itu sendiri. Untuk penegakan tingkat OS yang memblokir semua proses dari mengakses jalur, [aktifkan sandbox](/docs/id/sandboxing).375 Aturan deny Read dan Edit berlaku untuk alat file bawaan Claude, untuk perintah file yang Claude Code kenali di Bash, seperti `cat`, `head`, `tail`, `sed`, dan `tee`, dan untuk target pengalihan Bash [redirections](#redirections) seperti `> file` dan `< file`. Mereka tidak berlaku untuk perintah yang membaca file tanpa menamakannya, seperti `grep -r pattern .` dijalankan dari direktori yang menyimpan file, atau untuk subproses arbitrer yang membaca atau menulis file secara tidak langsung, seperti skrip Python atau Node yang membuka file itu sendiri. Untuk penegakan tingkat OS yang memblokir semua proses dari mengakses jalur, [aktifkan sandbox](/docs/id/sandboxing).

374</Warning>376</Warning>

375 377 

376Aturan Read dan Edit keduanya menggunakan sintaks pola [gitignore](https://git-scm.com/docs/gitignore) dengan empat jenis pola yang berbeda; untuk pola direktori segmen tunggal, kedalaman pencocokan juga bergantung pada jenis aturan, dijelaskan nanti di bagian ini:378Aturan Read dan Edit keduanya menggunakan sintaks pola [gitignore](https://git-scm.com/docs/gitignore) dengan empat jenis pola yang berbeda; untuk pola direktori segmen tunggal, kedalaman pencocokan juga bergantung pada jenis aturan, dijelaskan nanti di bagian ini:


454 456 

455Aturan deny atau ask yang jalurnya tidak dapat digunakan sebagai pola gitignore masih menjaga jalur yang tepat itu. Aturan allow dengan pola yang tidak dapat digunakan tidak menyetujui apa pun.457Aturan deny atau ask yang jalurnya tidak dapat digunakan sebagai pola gitignore masih menjaga jalur yang tepat itu. Aturan allow dengan pola yang tidak dapat digunakan tidak menyetujui apa pun.

456 458 

459Aturan deny atau ask pola yang dimulai dengan `!` adalah negasi gitignore. Aturan ini mengukir jalur yang cocok dari aturan `path` atau `./path` yang tercantum sebelumnya. Dalam daftar `deny` satu file pengaturan, `Read(*.env)` diikuti oleh `Read(!sample.env)` memblokir setiap file yang namanya berakhir dengan `.env` di kedalaman apa pun, kecuali file bernama `sample.env`. Aturan `!` yang tercantum pertama tidak mengukir apa pun.

460 

461Pengukiran hanya mencapai aturan dari sumber yang sama. `Read(!.env)` dalam pengaturan proyek atau dalam `--disallowedTools` tidak membatalkan `Read(./.env)` deny dari pengaturan yang dikelola atau file pengaturan lainnya.

462 

463Dua batas mempersempit apa yang pola `!` dapat ukir:

464 

465* Claude Code membaca pola `!` relatif terhadap direktori saat ini bahkan ketika `/`, `~/`, atau `//` mengikuti `!`, jadi pola tidak dapat menjangkau aturan yang berlabuh dengan salah satu awalan itu. `Read(!~/notes/public/**)` tidak mengukir apa pun dari `Read(~/notes/**)`.

466* Pengukiran tidak dapat membuka kembali file di dalam direktori yang aturan blokir secara keseluruhan. Dengan `Read(secrets/**)` dan `Read(!secrets/public/**)`, Claude Code masih memblokir `secrets/public` bersama dengan sisa `secrets`.

467 

457Ketika Claude mengakses symlink, aturan izin memeriksa dua jalur: symlink itu sendiri dan file yang diselesaikannya. Aturan allow dan deny memperlakukan pasangan itu secara berbeda: aturan allow kembali ke meminta Anda, sementara aturan deny memblokir sepenuhnya.468Ketika Claude mengakses symlink, aturan izin memeriksa dua jalur: symlink itu sendiri dan file yang diselesaikannya. Aturan allow dan deny memperlakukan pasangan itu secara berbeda: aturan allow kembali ke meminta Anda, sementara aturan deny memblokir sepenuhnya.

458 469 

459* **Aturan allow**: berlaku hanya ketika jalur symlink dan targetnya mencocokkan. Symlink di dalam direktori yang diizinkan yang menunjuk ke luar masih meminta Anda.470* **Aturan allow**: berlaku hanya ketika jalur symlink dan targetnya mencocokkan. Symlink di dalam direktori yang diizinkan yang menunjuk ke luar masih meminta Anda.


506}517}

507```518```

508 519 

509Ketika Anda meminta Claude untuk fetch halaman, itu fetch tanpa prompt. Ketika Anda meminta itu menjalankan `curl` [sandboxed](/docs/id/sandboxing) terhadap host di luar allowlist sandbox, Claude Code masih meminta Anda untuk host itu, atau dalam [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) mengirim permintaan ke classifier, karena aturan telanjang tidak menambahkan host ke allowlist.520Ketika Anda meminta Claude untuk fetch halaman, itu fetch tanpa prompt. Ketika Anda meminta itu menjalankan `curl` [sandboxed](/docs/id/sandboxing) terhadap host di luar allowlist sandbox, Claude Code masih meminta Anda untuk host itu, karena aturan telanjang tidak menambahkan host ke allowlist.

521 

522Dalam [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), Claude sebagai gantinya menamai host dalam [per-command allowed domains](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode) perintah untuk classifier ditinjau.

510 523 

511<h3 id="mcp">524<h3 id="mcp">

512 MCP525 MCP


646Izin dan [sandboxing](/docs/id/sandboxing) adalah lapisan keamanan pelengkap:659Izin dan [sandboxing](/docs/id/sandboxing) adalah lapisan keamanan pelengkap:

647 660 

648* **Izin** mengontrol alat mana yang dapat digunakan Claude Code dan file atau domain mana yang dapat diaksesnya. Mereka berlaku untuk Bash, Read, Edit, WebFetch, MCP, dan setiap alat lainnya, kecuali bahwa aturan deny atau ask tidak dapat memblokir [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) sementara alat lain tetap ada.661* **Izin** mengontrol alat mana yang dapat digunakan Claude Code dan file atau domain mana yang dapat diaksesnya. Mereka berlaku untuk Bash, Read, Edit, WebFetch, MCP, dan setiap alat lainnya, kecuali bahwa aturan deny atau ask tidak dapat memblokir [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) sementara alat lain tetap ada.

649* **Sandboxing** menyediakan penegakan tingkat OS yang membatasi akses sistem file dan jaringan alat Bash. Ini hanya berlaku untuk perintah Bash dan proses anak mereka.662* **Sandboxing** menyediakan penegakan tingkat OS yang membatasi akses sistem file dan jaringan perintah shell. Ini hanya berlaku untuk perintah Bash, PowerShell, dan [Monitor](/docs/id/tools-reference#monitor-tool) serta proses anak mereka.

650 663 

651Gunakan keduanya untuk pertahanan berlapis, karena pembatasan sandbox masih berlaku bahkan jika injeksi prompt melewati pengambilan keputusan Claude. Jalur dan domain dari pengaturan sandbox dan aturan izin [digabungkan ke dalam konfigurasi sandbox akhir](/docs/id/sandboxing#permission-rules).664Gunakan keduanya untuk pertahanan berlapis, karena pembatasan sandbox masih berlaku bahkan jika injeksi prompt melewati pengambilan keputusan Claude. Jalur dan domain dari pengaturan sandbox dan aturan izin [digabungkan ke dalam konfigurasi sandbox akhir](/docs/id/sandboxing#permission-rules).

652 665 

platforms.md +2 −1

Details

73* [Desktop](/docs/id/desktop): tinjauan diff visual, sesi paralel, penggunaan komputer, dan Dispatch73* [Desktop](/docs/id/desktop): tinjauan diff visual, sesi paralel, penggunaan komputer, dan Dispatch

74* [VS Code](/docs/id/vs-code): ekstensi Claude Code di dalam editor Anda74* [VS Code](/docs/id/vs-code): ekstensi Claude Code di dalam editor Anda

75* [JetBrains](/docs/id/jetbrains): ekstensi untuk IntelliJ, PyCharm, dan IDE JetBrains lainnya75* [JetBrains](/docs/id/jetbrains): ekstensi untuk IntelliJ, PyCharm, dan IDE JetBrains lainnya

76* [Claude Code di web](/docs/id/claude-code-on-the-web): sesi cloud yang terus berjalan saat Anda terputus76* [Web](/docs/id/claude-code-on-the-web): sesi cloud dari browser Anda di claude.ai/code yang terus berjalan saat Anda terputus

77* [Proyek](/docs/id/claude-projects): satu percakapan di mana Claude mengoordinasikan banyak sesi cloud untuk sebuah pekerjaan dan melaporkan kembali

77* [Mobile](/docs/id/mobile): aplikasi Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) dan [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) untuk memulai dan memantau tugas saat jauh dari komputer Anda78* [Mobile](/docs/id/mobile): aplikasi Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) dan [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) untuk memulai dan memantau tugas saat jauh dari komputer Anda

78 79 

79<h3 id="integrations">80<h3 id="integrations">

Details

26 Deklarasikan dependensi dengan batasan versi26 Deklarasikan dependensi dengan batasan versi

27</h2>27</h2>

28 28 

29Cantumkan dependensi dalam array `dependencies` dari `plugin.json` plugin Anda.29Daftar dependensi dalam array `dependencies` dari file `.claude-plugin/plugin.json` plugin Anda.

30 30 

31Manifes berikut mendeklarasikan satu dependensi tanpa versi dan satu dependensi terbatas:31Manifest berikut mendeklarasikan satu dependensi tanpa versi dan satu dependensi dengan batasan:

32 32 

33```json .claude-plugin/plugin.json theme={null}33```json .claude-plugin/plugin.json theme={null}

34{34{


41}41}

42```42```

43 43 

44Entri dapat berupa string kosong dengan hanya nama plugin, seperti `"audit-logger"` dalam contoh di atas, yang bergantung pada versi apa pun yang disediakan marketplace plugin tersebut. Untuk kontrol lebih, gunakan objek dengan bidang-bidang ini:44Sebuah entri dapat berupa string sederhana dengan hanya nama plugin, seperti `"audit-logger"` dalam manifest `deploy-kit`, yang bergantung pada versi apa pun yang disediakan marketplace plugin tersebut. Untuk kontrol yang lebih besar, gunakan objek dengan bidang-bidang berikut:

45 45 

46| Bidang | Tipe | Deskripsi |46| Field | Type | Description |

47| :------------ | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |47| :------------ | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

48| `name` | string | Nama plugin. Diselesaikan dalam marketplace yang sama dengan plugin yang mendeklarasikan. Diperlukan. |48| `name` | string | Nama plugin. Diselesaikan dalam marketplace yang sama dengan plugin yang mendeklarasikan. Diperlukan. |

49| `version` | string | Rentang [semver](https://github.com/npm/node-semver#ranges) seperti `~2.1.0`, `^2.0`, `>=1.4`, atau `=2.1.0`. Dependensi diambil pada versi tertinggi yang ditandai yang memenuhi rentang ini. |49| `version` | string | Sebuah [rentang semver](https://github.com/npm/node-semver#ranges) seperti `~2.1.0`, `^2.0`, `>=1.4`, atau `=2.1.0`. Dependensi diambil pada versi tertinggi yang ditandai yang memenuhi rentang ini. |

50| `marketplace` | string | Marketplace berbeda untuk menyelesaikan `name` di dalamnya. Dependensi lintas-marketplace diblokir kecuali marketplace target tercantum dalam [`allowCrossMarketplaceDependenciesOn`](#depend-on-a-plugin-from-another-marketplace) di `marketplace.json` marketplace root. |50| `marketplace` | string | Marketplace yang berbeda untuk menyelesaikan `name` di dalamnya. Dependensi lintas-marketplace diblokir kecuali marketplace target tercantum dalam [`allowCrossMarketplaceDependenciesOn`](#depend-on-a-plugin-from-another-marketplace) dalam `marketplace.json` marketplace root. |

51 51 

52Versi pra-rilis seperti `2.0.0-beta.1` dikecualikan kecuali rentang Anda memilih dengan sufiks pra-rilis seperti `^2.0.0-0`.52Versi pra-rilis seperti `2.0.0-beta.1` dikecualikan kecuali rentang Anda memilih dengan sufiks pra-rilis seperti `^2.0.0-0`.

53 53 


75 75 

76Menginstal `backend-standard` menyelesaikan dan menginstal keempat dependensi.76Menginstal `backend-standard` menyelesaikan dan menginstal keempat dependensi.

77 77 

78Untuk menambahkan alat ke set standar nanti, terbitkan versi `backend-standard` baru dengan dependensi tambahan. Auto-update dimatikan secara default untuk marketplace non-Anthropic, jadi insinyur mengambil versi baru dengan salah satu dari dua cara:78Untuk menambahkan alat ke set standar nanti, terbitkan versi `backend-standard` baru dengan dependensi tambahan. Kecuali marketplace [auto-updates](/docs/id/discover-plugins#configure-auto-updates), insinyur mengambil versi baru dengan salah satu dari dua cara:

79 79 

80* Aktifkan auto-update untuk marketplace di `/plugin`. Auto-update berikutnya memindahkan bundel ke versi baru dan menginstal dependensi apa pun yang ditambahkannya.80* Aktifkan auto-update untuk marketplace di `/plugin`. Auto-update berikutnya memindahkan bundel ke versi baru dan menginstal dependensi apa pun yang ditambahkannya.

81* Jalankan `claude plugin update backend-standard`, kemudian `/reload-plugins` untuk menginstal dependensi yang baru ditambahkan.81* Jalankan `claude plugin update backend-standard`, kemudian `/reload-plugins` untuk menginstal dependensi yang baru ditambahkan.

Details

71 ```71 ```

72 72 

73 <Note>73 <Note>

74 Menetapkan `version` berarti pengguna hanya menerima pembaruan ketika Anda mengubah bidang ini, jadi tingkatkan pada setiap rilis. Plugin dengan sumber [`command`](#command-sources) tidak disematkan oleh bidang ini. Jika Anda menghilangkan `version`, versi berasal dari sumber berikutnya dalam [manajemen versi](/docs/id/plugins-reference#version-management).74 Menetapkan `version` berarti pengguna hanya menerima pembaruan ketika Anda mengubah bidang ini, jadi tingkatkan pada setiap rilis. Plugin dengan sumber [`command`](#command-sources) tidak disematkan oleh bidang ini. Juga tidak plugin yang [dimuat di tempat](/docs/id/plugins-reference#plugin-caching-and-file-resolution) dari marketplace yang ditambahkan sebagai direktori lokal. Jika Anda menghilangkan `version`, versi berasal dari sumber berikutnya dalam [manajemen versi](/docs/id/plugins-reference#version-management).

75 </Note>75 </Note>

76 </Step>76 </Step>

77 77 


116Untuk mempelajari lebih lanjut tentang apa yang dapat dilakukan plugin, termasuk hooks, agents, MCP servers, dan LSP servers, lihat [Plugins](/docs/id/plugins).116Untuk mempelajari lebih lanjut tentang apa yang dapat dilakukan plugin, termasuk hooks, agents, MCP servers, dan LSP servers, lihat [Plugins](/docs/id/plugins).

117 117 

118<Note>118<Note>

119 **Cara plugin dipasang**: ketika pengguna memasang plugin, Claude Code menyalin direktori plugin ke lokasi cache, kecuali untuk sumber [`command` dalam link mode](#copy-mode-and-link-mode), yang digunakan di tempatnya. Plugin yang disalin tidak dapat mereferensikan file di luar direktorinya menggunakan jalur seperti `../shared-utils`, karena file tersebut tidak akan disalin.119 **Cara plugin dipasang**: ketika pengguna memasang plugin, Claude Code menyalin direktori plugin ke lokasi cache, kecuali plugin memuat di tempat. Sumber [`command` dalam link mode](#copy-mode-and-link-mode) memuat di tempat, begitu juga [sumber jalur relatif](#relative-paths) dalam marketplace yang ditambahkan dari direktori lokal. Plugin yang disalin tidak dapat mereferensikan file di luar direktorinya menggunakan jalur seperti `../shared-utils`, karena file tersebut tidak akan disalin.

120 120 

121 Jika Anda perlu berbagi file di seluruh plugin, gunakan symlink. Lihat [Plugin caching and file resolution](/docs/id/plugins-reference#plugin-caching-and-file-resolution) untuk detail.121 Jika Anda perlu berbagi file di seluruh plugin, gunakan symlink. Lihat [Plugin caching and file resolution](/docs/id/plugins-reference#plugin-caching-and-file-resolution) untuk detail.

122</Note>122</Note>


167</h3>167</h3>

168 168 

169| Field | Type | Deskripsi | Contoh |169| Field | Type | Deskripsi | Contoh |

170| :-------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------- |170| :-------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------ |

171| `name` | string | Identifier marketplace dalam kebab-case, tanpa spasi, karakter kontrol, atau karakter pemformatan bidirectional. Ini menghadap publik: pengguna melihatnya saat memasang plugin (misalnya, `/plugin install my-tool@your-marketplace`). Setiap pengguna hanya dapat mendaftarkan satu marketplace per nama: menambahkan marketplace kedua dengan nama yang sama menggantikan yang pertama. Untuk menerbitkan beberapa plugin di bawah satu nama marketplace, daftarkan semuanya dalam satu [`marketplace.json`](#create-the-marketplace-file). | `"acme-tools"` |171| `name` | string | Identifier marketplace dalam kebab-case, tanpa spasi, karakter kontrol, atau karakter pemformatan bidirectional. Ini menghadap publik: pengguna melihatnya saat memasang plugin (misalnya, `/plugin install my-tool@your-marketplace`). Setiap pengguna hanya dapat mendaftarkan satu marketplace per nama: menambahkan marketplace kedua dengan nama yang sama menggantikan yang pertama. Untuk menerbitkan beberapa plugin di bawah satu nama marketplace, daftarkan semuanya dalam satu [`marketplace.json`](#create-the-marketplace-file). | `"acme-tools"` |

172| `owner` | object | Informasi pengelola marketplace ([lihat field di bawah](#owner-fields)) | |172| `owner` | object | Informasi pengelola marketplace. Lihat [Field pemilik](#owner-fields) | |

173| `plugins` | array | Daftar plugin yang tersedia | Lihat di bawah |173| `plugins` | array | Daftar plugin yang tersedia | Lihat [Entri plugin](#plugin-entries) |

174 174 

175<Note>175<Note>

176 **Nama yang dicadangkan**: Nama marketplace berikut dicadangkan untuk penggunaan resmi Anthropic dan tidak dapat digunakan oleh marketplace pihak ketiga: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, `claude-tag-plugins`, `healthcare`. Nama yang meniru marketplace resmi, seperti `official-claude-plugins` atau `anthropic-plugins-v2`, juga diblokir. Pencadangan nama-nama ini mencegah marketplace pihak ketiga menyajikan dirinya sebagai sumber yang diterbitkan Anthropic.176 **Nama yang dicadangkan**: Nama marketplace berikut dicadangkan untuk penggunaan resmi Anthropic dan tidak dapat digunakan oleh marketplace pihak ketiga: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, `claude-tag-plugins`, `healthcare`. Nama yang meniru marketplace resmi, seperti `official-claude-plugins` atau `anthropic-plugins-v2`, juga diblokir. Pencadangan nama-nama ini mencegah marketplace pihak ketiga menyajikan dirinya sebagai sumber yang diterbitkan Anthropic.

177 177 

178 Claude Code memeriksa kembali nama yang dicadangkan setiap kali memuat marketplace, bukan hanya saat Anda menambahkan satu. Marketplace yang terdaftar di bawah salah satu nama ini sebelum nama menjadi dicadangkan berhenti memuat dan melaporkan bahwa itu [terdaftar dari sumber yang tidak terpercaya](/docs/id/errors#marketplace-is-registered-from-an-untrusted-source). Hapus marketplace itu dan tambahkan kembali dari sumber Anthropic resmi. Marketplace pihak ketiga yang terpengaruh oleh nama yang baru dicadangkan memuat lagi segera setelah Anda menambahkannya kembali dengan nama yang berbeda. Sebelum v2.1.205, `first-party-plugins` dan `healthcare` tidak dicadangkan, dan marketplace yang sudah terdaftar di bawah nama yang dicadangkan terus memuat. Sebelum v2.1.265, `claude-tag-plugins` tidak dicadangkan.178 Claude Code memeriksa kembali nama yang dicadangkan setiap kali memuat marketplace, bukan hanya saat Anda menambahkan satu. Marketplace yang terdaftar di bawah salah satu nama ini sebelum nama menjadi dicadangkan berhenti memuat dan melaporkan bahwa itu [terdaftar dari sumber yang tidak terpercaya](/docs/id/errors#marketplace-is-registered-from-an-untrusted-source). Hapus marketplace itu dan tambahkan kembali dari sumber Anthropic resmi. Marketplace pihak ketiga yang terpengaruh oleh nama yang baru dicadangkan memuat lagi segera setelah Anda menambahkannya kembali dengan nama yang berbeda. Sebelum v2.1.205, `first-party-plugins` dan `healthcare` tidak dicadangkan, dan marketplace yang sudah terdaftar di bawah nama yang dicadangkan terus memuat. Sebelum v2.1.265, `claude-tag-plugins` tidak dicadangkan.

179 

180 Anda juga tidak dapat memberi nama marketplace `npm`, `pip`, `uv`, `cargo`, `github`, atau `gh`, dalam huruf besar atau kecil apa pun. Pemeriksaan ini memerlukan Claude Code v2.1.275 atau lebih baru.

179</Note>181</Note>

180 182 

181<h3 id="owner-fields">183<h3 id="owner-fields">


225**Field metadata standar:**227**Field metadata standar:**

226 228 

227| Field | Type | Deskripsi |229| Field | Type | Deskripsi |

228| :--------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |230| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

229| `displayName` | string | Nama yang dapat dibaca manusia ditampilkan di permukaan UI. Ketika entri maupun `plugin.json` plugin tidak menetapkan satu, pengguna melihat `name` plugin. Dapat berisi spasi dan huruf apa pun. Tidak digunakan untuk namespacing atau pencarian. |231| `displayName` | string | Nama yang dapat dibaca manusia ditampilkan di permukaan UI. Ketika entri maupun `plugin.json` plugin tidak menetapkan satu, pengguna melihat `name` plugin. Dapat berisi spasi dan huruf apa pun. Tidak digunakan untuk namespacing atau pencarian. |

230| `description` | string | Deskripsi plugin singkat |232| `description` | string | Deskripsi plugin singkat |

231| `version` | string | Versi plugin. Jika diatur (di sini atau di `plugin.json`), plugin disematkan ke string ini dan pengguna hanya menerima pembaruan saat berubah. Plugin dengan [`command` source](#command-sources) tidak disematkan oleh field mana pun. Jika tidak diatur di tempat mana pun, versi berasal dari sumber berikutnya dalam [version management](/docs/id/plugins-reference#version-management). |233| `version` | string | Versi plugin. Jika diatur (di sini atau di `plugin.json`), plugin disematkan ke string ini dan pengguna hanya menerima pembaruan saat berubah. Plugin dengan [`command` source](#command-sources) tidak disematkan oleh field mana pun. Juga bukan plugin [dimuat di tempat](/docs/id/plugins-reference#plugin-caching-and-file-resolution) dari marketplace yang ditambahkan sebagai direktori lokal. Jika tidak diatur di tempat mana pun, versi berasal dari sumber berikutnya dalam [version management](/docs/id/plugins-reference#version-management). |

232| `author` | object | Informasi penulis plugin (`name` diperlukan; `email` dan `url` opsional) |234| `author` | object | Informasi penulis plugin (`name` diperlukan; `email` dan `url` opsional) |

233| `homepage` | string | URL homepage atau dokumentasi plugin |235| `homepage` | string | URL homepage atau dokumentasi plugin |

234| `repository` | string | URL repositori kode sumber |236| `repository` | string | URL repositori kode sumber |


274 276 

275Plugin sources memberitahu Claude Code di mana mengambil setiap plugin individual yang tercantum di marketplace Anda. Ini diatur dalam field `source` dari setiap entri plugin di `marketplace.json`.277Plugin sources memberitahu Claude Code di mana mengambil setiap plugin individual yang tercantum di marketplace Anda. Ini diatur dalam field `source` dari setiap entri plugin di `marketplace.json`.

276 278 

277Claude Code menyalin setiap plugin yang dipasang ke cache plugin lokal yang tersimpan di `~/.claude/plugins/cache`, kecuali untuk [`command` source dalam link mode](#copy-mode-and-link-mode), yang Claude Code gunakan di tempat. Claude Code juga [memasang dependensi paket Node.js yang memenuhi syarat dari plugin](/docs/id/plugins-reference#node-js-package-dependencies) ke dalam salinan yang di-cache.279Claude Code menyalin setiap plugin yang dipasang ke cache plugin lokal yang tersimpan di `~/.claude/plugins/cache`, kecuali plugin dimuat di tempat. Sebuah [`command` source dalam link mode](#copy-mode-and-link-mode) dimuat di tempat, dan begitu juga [relative path source](#relative-paths) dalam marketplace yang ditambahkan dari direktori lokal. Claude Code juga [memasang dependensi paket Node.js yang memenuhi syarat dari plugin](/docs/id/plugins-reference#node-js-package-dependencies) ke dalam salinan yang di-cache. Lihat [Plugin caching and file resolution](/docs/id/plugins-reference#plugin-caching-and-file-resolution) untuk cara plugin yang dimuat di tempat dari marketplace direktori lokal mengambil edit Anda.

278 280 

279| Source | Type | Fields | Catatan |281| Source | Type | Fields | Catatan |

280| ------------- | ----------------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |282| ------------- | ----------------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


282| `github` | object | `repo`, `ref?`, `sha?` | |284| `github` | object | `repo`, `ref?`, `sha?` | |

283| `url` | object | `url`, `ref?`, `sha?` | Sumber URL Git |285| `url` | object | `url`, `ref?`, `sha?` | Sumber URL Git |

284| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | Subdirektori dalam repo git. Mengklon secara sparse untuk meminimalkan bandwidth untuk monorepo |286| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | Subdirektori dalam repo git. Mengklon secara sparse untuk meminimalkan bandwidth untuk monorepo |

285| `npm` | object | `package`, `version?`, `registry?` | Dipasang via `npm install` |287| `npm` | object | `package`, `version?`, `registry?` | Paket npm, diambil dengan klien npm Anda dan dibuka tanpa menjalankan skrip install |

286| `archive` | object | `url`, `sha256?` | Arsip zip yang diunduh melalui HTTPS. Berfungsi tanpa git atau npm di mesin pengguna. Memerlukan Claude Code v2.1.224 atau lebih baru |288| `archive` | object | `url`, `sha256?` | Arsip zip yang diunduh melalui HTTPS. Berfungsi tanpa git atau npm di mesin pengguna. Memerlukan Claude Code v2.1.224 atau lebih baru |

287| `command` | object | `command`, `timeout?`, `mode?` | Direktori plugin yang dihasilkan dengan menjalankan perintah lokal, dijalankan kembali sekali per sesi untuk mengambil perubahan. Memerlukan Claude Code v2.1.229 atau lebih baru |289| `command` | object | `command`, `timeout?`, `mode?` | Direktori plugin yang dihasilkan dengan menjalankan perintah lokal, dijalankan kembali sekali per sesi untuk mengambil perubahan. Memerlukan Claude Code v2.1.229 atau lebih baru |

288 290 


314}316}

315```317```

316 318 

317Jalur diselesaikan relatif terhadap root marketplace, yang merupakan direktori yang berisi `.claude-plugin/`. Dalam contoh di atas, `./plugins/my-plugin` menunjuk ke `<repo>/plugins/my-plugin`, meskipun `marketplace.json` berada di `<repo>/.claude-plugin/marketplace.json`. Jangan gunakan `../` untuk mereferensikan jalur di luar root marketplace. Di macOS dan Linux, Claude Code menolak entri jalur dengan backslash di mana pun melampaui `./` awal, jadi tulis pemisah sebagai `/` di setiap platform.319Jalur diselesaikan relatif terhadap root marketplace, yang merupakan direktori yang berisi `.claude-plugin/`. Sumber `./plugins/my-plugin` oleh karena itu menunjuk ke `<repo>/plugins/my-plugin`, meskipun `marketplace.json` berada di `<repo>/.claude-plugin/marketplace.json`. Jangan gunakan `../` untuk mereferensikan jalur di luar root marketplace. Di macOS dan Linux, Claude Code menolak entri jalur dengan backslash di mana pun melampaui `./` awal, jadi tulis pemisah sebagai `/` di setiap platform.

318 320 

319Bare name adalah nama direktori tunggal tanpa `/`, seperti `"formatter"`. Untuk menulis bare names alih-alih jalur `./`, atur [`metadata.pluginRoot`](#optional-fields) ke direktori tempat mereka diselesaikan. Dengan `"pluginRoot": "./plugins"`, Claude Code menyelesaikan `"source": "formatter"` ke `./plugins/formatter`. Memerlukan Claude Code v2.1.239 atau lebih baru.321Bare name adalah nama direktori tunggal tanpa `/`, seperti `"formatter"`. Untuk menulis bare names alih-alih jalur `./`, atur [`metadata.pluginRoot`](#optional-fields) ke direktori tempat mereka diselesaikan. Dengan `"pluginRoot": "./plugins"`, Claude Code menyelesaikan `"source": "formatter"` ke `./plugins/formatter`. Memerlukan Claude Code v2.1.239 atau lebih baru.

320 322 


437 Paket npm439 Paket npm

438</h3>440</h3>

439 441 

440Plugin yang didistribusikan sebagai paket npm dipasang menggunakan `npm install`. Ini berfungsi dengan paket apa pun di registry npm publik atau registry pribadi yang dihosting tim Anda.442Sumber npm dapat menamai paket apa pun di registry npm publik atau di registry pribadi yang dihosting tim Anda. Claude Code menyelesaikan paket dengan klien npm Anda, mengunduh tarball, dan membukanya ke dalam cache plugin.

443 

444Skrip install paket, seperti `preinstall` atau `postinstall`, tidak pernah berjalan, dan dependensinya tidak dipasang selama pengambilan.

445 

446Jika paket mengirimkan lockfile yang didukung di samping `package.json`-nya, Claude Code memasang [dependensi paket Node.js](/docs/id/plugins-reference#node-js-package-dependencies) itu dalam langkah terpisah, juga dengan skrip dinonaktifkan. Jika tidak, publikasikan plugin dengan semua yang dibutuhkannya sudah dibangun. Server MCP yang memerlukan paket lain dapat diluncurkan melalui `npx`, yang memasangnya pada run pertama.

441 447 

442```json theme={null}448```json theme={null}

443{449{


612 How users accept a headersHelper command618 How users accept a headersHelper command

613</h4>619</h4>

614 620 

615Pengguna menerima perintah entri plugin setiap kali mereka memasang atau memperbarui plugin itu saja, dari tampilan plugin sendiri di `/plugin` atau dengan `claude plugin install` atau `claude plugin update`. Claude Code menunjukkan perintah dan URL arsip, dan menjalankan perintah hanya setelah pengguna menerima. Dalam shell non-interaktif, teruskan [`--yes`](/docs/id/plugins-reference#plugin-install) untuk menerimanya.621Pengguna menerima perintah entri plugin setiap kali mereka memasang atau memperbarui plugin itu saja, dari tampilan plugin sendiri di `/plugin` atau dengan `claude plugin install` atau `claude plugin update`. Claude Code menunjukkan perintah dan URL arsip, dan menjalankan perintah hanya setelah pengguna menerima.

622 

623Dalam shell non-interaktif, teruskan [`--yes`](/docs/id/plugins-reference#plugin-install) untuk menerimanya. Untuk menerima hanya perintah yang run `--json` sebelumnya ditampilkan, teruskan [`--accept-command`](/docs/id/plugins-reference#plugin-install) dengan `sha256` yang dilaporkan run.

616 624 

617Claude Code menjalankan hanya perintah yang ditunjukkan, untuk URL arsip yang ditunjukkan. Jika perintah entri atau URL arsip berubah di antara, Claude Code menolak instalasi atau pembaruan. Perubahan dalam string kueri saja tidak dihitung.625Claude Code menjalankan hanya perintah yang ditunjukkan, untuk URL arsip yang ditunjukkan. Jika perintah entri atau URL arsip berubah di antara, Claude Code menolak instalasi atau pembaruan. Perubahan dalam string kueri saja tidak dihitung.

618 626 


693 701 

694Claude Code menjalankan perintah Anda di mesin pengguna, jadi mengikat setiap run ke penerimaan eksplisit pengguna:702Claude Code menjalankan perintah Anda di mesin pengguna, jadi mengikat setiap run ke penerimaan eksplisit pengguna:

695 703 

696* Ketika pengguna memasang plugin dari layar detailnya di `/plugin`, atau memasang atau memperbarui dengan `claude plugin install` atau `claude plugin update` di terminal interaktif, Claude Code menunjukkan string perintah yang tepat terlebih dahulu dan mencatat perintah yang diterima untuk instalasi itu. `claude plugin update` yang dapat dilanjutkan pada penerimaan perintah yang sama menunjukkan tidak ada. Dalam shell non-interaktif, seperti skrip provisioning, teruskan `--yes` ke `claude plugin install` atau `claude plugin update` untuk menerima perintah yang dicetak.704* Ketika pengguna memasang plugin dari layar detailnya di `/plugin`, atau memasang atau memperbarui dengan `claude plugin install` atau `claude plugin update` di terminal interaktif, Claude Code menunjukkan string perintah yang tepat terlebih dahulu dan mencatat perintah yang diterima untuk instalasi itu. `claude plugin update` yang dapat dilanjutkan pada penerimaan perintah yang sama menunjukkan tidak ada.

705* Dalam shell non-interaktif, seperti skrip provisioning, teruskan `--yes` ke `claude plugin install` atau `claude plugin update` untuk menerima perintah yang dicetak. Untuk menerima hanya perintah yang run `--json` sebelumnya ditampilkan, teruskan [`--accept-command`](/docs/id/plugins-reference#plugin-install) dengan `sha256` yang dilaporkan run.

697* Setiap jalur lain menjalankan hanya perintah yang sudah diterima pengguna. Ini termasuk pembaruan yang dimulai dari `/plugin` dan run latar belakang yang dijelaskan dalam [When Claude Code re-runs the command](#when-claude-code-re-runs-the-command). Ketika tidak ada yang diterima, Claude Code menolak untuk menjalankan perintah dan memberi tahu pengguna cara meninjau. Claude Code tidak pernah memasang plugin bersumber perintah sebagai dependensi plugin lain, jadi pengguna memasangnya sendiri terlebih dahulu.706* Setiap jalur lain menjalankan hanya perintah yang sudah diterima pengguna. Ini termasuk pembaruan yang dimulai dari `/plugin` dan run latar belakang yang dijelaskan dalam [When Claude Code re-runs the command](#when-claude-code-re-runs-the-command). Ketika tidak ada yang diterima, Claude Code menolak untuk menjalankan perintah dan memberi tahu pengguna cara meninjau. Claude Code tidak pernah memasang plugin bersumber perintah sebagai dependensi plugin lain, jadi pengguna memasangnya sendiri terlebih dahulu.

698* Jika Anda mengubah `command` entri, atau beralih `mode`-nya, pengguna menyimpan versi yang sudah mereka miliki dan Claude Code berhenti menjalankan perintah kembali. Dalam sesi interaktif, tab `/plugin` Errors menunjukkan perintah baru sampai pengguna meninjau dan menerimanya dengan menjalankan `claude plugin update <plugin>@<marketplace>`.707* Jika Anda mengubah `command` entri, atau beralih `mode`-nya, pengguna menyimpan versi yang sudah mereka miliki dan Claude Code berhenti menjalankan perintah kembali. Dalam sesi interaktif, tab `/plugin` Errors menunjukkan perintah baru sampai pengguna meninjau dan menerimanya dengan menjalankan `claude plugin update <plugin>@<marketplace>`.

699 708 


810 Host dan distribusikan marketplace819 Host dan distribusikan marketplace

811</h2>820</h2>

812 821 

822Ketika pengguna menambahkan marketplace yang dihosting di repositori git, atau memasang plugin berbasis git yang tercantum, Claude Code mengklon repositori marketplace atau plugin itu ke mesin mereka. Klon tidak pernah mengunduh konten [Git LFS](https://git-lfs.com), jadi file yang dilacak LFS tiba sebagai file pointer. Jaga file yang dibutuhkan plugin Anda keluar dari LFS.

823 

813<h3 id="host-on-github-recommended">824<h3 id="host-on-github-recommended">

814 Host di GitHub (direkomendasikan)825 Host di GitHub (direkomendasikan)

815</h3>826</h3>


836 Repositori pribadi847 Repositori pribadi

837</h3>848</h3>

838 849 

839Claude Code mendukung pemasangan plugin dari repositori pribadi. Jika Anda mendistribusikan marketplace Anda melalui [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) sebagai gantinya, kredensial git Anda tidak terlibat: sinkronisasi organisasi membaca repositori marketplace melalui Claude GitHub App atau GitHub Enterprise App organisasi Anda, dan sumber plugin yang tidak dapat diautentikasi harus bersifat publik. Lihat [Distribusikan melalui pengaturan organisasi](#distribute-through-organization-settings) untuk aturan lengkapnya.850Claude Code mendukung pemasangan plugin dari repositori pribadi. Jika Anda mendistribusikan marketplace Anda melalui [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) sebagai gantinya, kredensial git Anda tidak terlibat: sinkronisasi organisasi membaca repositori marketplace melalui koneksi GitHub atau GitLab organisasi Anda di claude.ai. Lihat [Distribusikan melalui pengaturan organisasi](#distribute-through-organization-settings) untuk sumber plugin mana yang dapat bersifat pribadi.

840 851 

841<h4 id="commands-you-run">852<h4 id="commands-you-run">

842 Perintah yang Anda jalankan853 Perintah yang Anda jalankan


848 Pembaruan otomatis latar belakang859 Pembaruan otomatis latar belakang

849</h4>860</h4>

850 861 

851Secara default, refresh latar belakang menonaktifkan helper kredensial git untuk `git pull`-nya, jadi pull tidak dapat mengautentikasi ke repositori pribadi melalui HTTPS bahkan ketika helper dikonfigurasi. Remote SSH tidak terpengaruh: kunci yang dimuat di `ssh-agent` mengautentikasi pull latar belakang dengan cara yang sama seperti perintah yang Anda jalankan. Ketika pull latar belakang gagal, Claude Code kembali ke pengklonaan ulang marketplace dari awal. Pengklonaan ulang memang menggunakan kredensial git yang disimpan, tetapi dapat [time out pada repositori besar](#git-operations-time-out), jadi pembaruan otomatis marketplace pribadi mungkin gagal secara berkala.862Secara default, refresh latar belakang menonaktifkan helper kredensial git ketika memeriksa marketplace's remote untuk commit baru, jadi pemeriksaan tidak dapat mengautentikasi ke repositori pribadi melalui HTTPS bahkan ketika helper dikonfigurasi. Remote SSH tidak terpengaruh: kunci yang dimuat di `ssh-agent` mengautentikasi pemeriksaan latar belakang dengan cara yang sama seperti perintah yang Anda jalankan.

863 

864Ketika pemeriksaan menemukan commit baru, atau gagal karena tidak dapat menjangkau atau mengautentikasi ke remote, Claude Code mengklon marketplace lagi dan menukar klon baru. Jika klon itu gagal, checkout yang ada tetap di tempat. Pengklonaan ulang memang menggunakan kredensial git yang disimpan, tetapi dapat [time out pada repositori besar](#git-operations-time-out), jadi pembaruan otomatis marketplace pribadi mungkin gagal secara berkala.

852 865 

853Dua pengaturan membuat marketplace pribadi berperilaku dapat diprediksi:866Dua pengaturan membuat marketplace pribadi berperilaku dapat diprediksi:

854 867 

855* Atur `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` untuk menyimpan klon yang ada ketika pull latar belakang gagal, alih-alih menghapus dan mengklon ulang. Plugin Anda terus bekerja dari status terakhir yang disinkronkan, dan pembaruan manual dengan `/plugin marketplace update` masih pull dengan kredensial Anda.868* Atur `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` untuk menyimpan checkout yang ada tanpa mencoba pengklonaan ulang ketika pemeriksaan latar belakang tidak dapat menjangkau atau mengautentikasi ke remote. Plugin Anda terus bekerja dari status terakhir yang disinkronkan, dan pembaruan manual dengan `/plugin marketplace update` masih mengautentikasi dengan kredensial Anda.

856* Konfigurasikan helper kredensial git, misalnya dengan `gh auth setup-git` untuk GitHub, sehingga fallback pengklonaan ulang dapat mengautentikasi tanpa prompt.869* Konfigurasikan helper kredensial git, misalnya dengan `gh auth setup-git` untuk GitHub, sehingga pengklonaan ulang dapat mengautentikasi tanpa prompt.

857 870 

858Menetapkan token penyedia seperti `GITHUB_TOKEN` di lingkungan Anda tidak dengan sendirinya mengaktifkan autentikasi latar belakang. Token hanya berlaku melalui helper kredensial yang dikonfigurasi, misalnya helper CLI `gh`, yang membaca `GH_TOKEN` dan `GITHUB_TOKEN`.871Menetapkan token penyedia seperti `GITHUB_TOKEN` di lingkungan Anda tidak dengan sendirinya mengaktifkan autentikasi latar belakang. Token hanya berlaku melalui helper kredensial yang dikonfigurasi, misalnya helper CLI `gh`, yang membaca `GH_TOKEN` dan `GITHUB_TOKEN`.

859 872 

860Untuk membuat pull latar belakang itu sendiri mengautentikasi melalui HTTPS, konfigurasikan penulisan ulang URL git global. Penulisan ulang menyematkan token dalam URL jarak jauh, jadi berlaku meskipun pull latar belakang menonaktifkan helper kredensial, dan pull yang berhasil melewati fallback pengklonaan ulang. Contoh berikut menulis ulang URL repositori marketplace untuk menyertakan token akses:873Untuk membuat pemeriksaan latar belakang itu sendiri mengautentikasi melalui HTTPS, konfigurasikan penulisan ulang URL git global. Penulisan ulang menyematkan token dalam URL jarak jauh, jadi berlaku meskipun pemeriksaan latar belakang menonaktifkan helper kredensial. Ketika pemeriksaan menemukan checkout up to date, Claude Code melewati pengklonaan ulang. Contoh berikut menulis ulang URL repositori marketplace untuk menyertakan token akses:

861 874 

862```bash theme={null}875```bash theme={null}

863git config --global url."https://x-access-token:YOUR_TOKEN@github.com/acme-corp/plugins".insteadOf "https://github.com/acme-corp/plugins"876git config --global url."https://x-access-token:YOUR_TOKEN@github.com/acme-corp/plugins".insteadOf "https://github.com/acme-corp/plugins"


876Penulisan ulang menyimpan token dalam plaintext di gitconfig Anda, jadi gunakan token dengan akses read-only ke repositori marketplace.889Penulisan ulang menyimpan token dalam plaintext di gitconfig Anda, jadi gunakan token dengan akses read-only ke repositori marketplace.

877 890 

878<Note>891<Note>

879 Dalam lingkungan CI/CD, konfigurasikan helper kredensial git sebelum memasang plugin dari repositori pribadi. Di GitHub Actions, ekspor token dengan akses read ke repositori marketplace sebagai `GH_TOKEN`, kemudian jalankan `gh auth setup-git`. Token workflow default hanya dapat mengakses repositori workflow itu sendiri, jadi marketplace pribadi di repositori lain memerlukan token akses pribadi atau token aplikasi. Penulisan ulang URL global yang dikonfigurasi dalam pipeline juga mengautentikasi pull latar belakang secara langsung.892 Dalam lingkungan CI/CD, konfigurasikan helper kredensial git sebelum memasang plugin dari repositori pribadi. Di GitHub Actions, ekspor token dengan akses read ke repositori marketplace sebagai `GH_TOKEN`, kemudian jalankan `gh auth setup-git`. Token workflow default hanya dapat mengakses repositori workflow itu sendiri, jadi marketplace pribadi di repositori lain memerlukan token akses pribadi atau token aplikasi.

893 

894 Jika Anda mengonfigurasi penulisan ulang URL global dalam pipeline, penulisan ulang juga mengautentikasi pemeriksaan latar belakang secara langsung.

880</Note>895</Note>

881 896 

882<h3 id="distribute-through-organization-settings">897<h3 id="distribute-through-organization-settings">


885 900 

886Jika Anda mendistribusikan plugin melalui [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) pada paket Team atau Enterprise, aturan sumber ini berlaku:901Jika Anda mendistribusikan plugin melalui [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) pada paket Team atau Enterprise, aturan sumber ini berlaku:

887 902 

888* Repositori marketplace harus bersifat pribadi atau internal. Sinkronisasi organisasi membacanya melalui Claude GitHub App atau GitHub Enterprise App organisasi Anda.903* Di github.com dan gitlab.com, repositori marketplace harus bersifat pribadi atau internal. Sinkronisasi organisasi membaca repositori melalui koneksi yang cocok dengan hostnya:

904 * **github.com**: Claude GitHub App

905 * **Host GitHub Enterprise Server Anda**: [GitHub Enterprise App](/docs/id/github-enterprise-server#admin-setup) organisasi Anda

906 * **gitlab.com atau instance GitLab yang dikelola sendiri Anda**: token akses dalam [konfigurasi GitLab](#sync-a-gitlab-hosted-marketplace) organisasi Anda untuk host itu

889* Setiap sumber plugin harus bertipe `github`, `url`, atau `git-subdir`, atau [jalur relatif](#relative-paths) yang dimulai dengan `./`. Jika Anda membuat daftar plugin berdasarkan nama kosong di bawah `metadata.pluginRoot`, sinkronisasi organisasi menolaknya sebagai sumber yang tidak didukung, jadi tuliskan jalurnya, seperti `./plugins/deploy-tools`.907* Setiap sumber plugin harus bertipe `github`, `url`, atau `git-subdir`, atau [jalur relatif](#relative-paths) yang dimulai dengan `./`. Jika Anda membuat daftar plugin berdasarkan nama kosong di bawah `metadata.pluginRoot`, sinkronisasi organisasi menolaknya sebagai sumber yang tidak didukung, jadi tuliskan jalurnya, seperti `./plugins/deploy-tools`.

890* Sumber plugin dapat bersifat pribadi dalam dua kasus:908* Sumber plugin dapat bersifat pribadi dalam tiga kasus:

891 * Sumber github.com yang berbagi pemilik repositori marketplace909 * Sumber github.com yang berbagi pemilik repositori marketplace

892 * Sumber di host GitHub Enterprise organisasi Anda dengan GHE App yang dipasang di repositori910 * Sumber di host GitHub Enterprise organisasi Anda dengan GHE App yang dipasang di repositori

893* Sinkronisasi organisasi mengambil setiap sumber lain tanpa kredensial, jadi repositori github.com di bawah pemilik berbeda dan repositori di host lain, seperti GitLab atau Bitbucket, harus bersifat publik.911 * Sumber `url` atau `git-subdir` di host GitLab yang sama dengan repositori marketplace. Di gitlab.com, sumber juga harus berada di bawah grup tingkat atas atau namespace pengguna yang sama dengan repositori marketplace.

912* Sumber plugin lainnya harus berupa repositori publik di github.com, gitlab.com, atau bitbucket.org, yang diambil sinkronisasi organisasi tanpa kredensial. Sinkronisasi organisasi menolak sumber plugin di host yang tidak dicakup aturan ini.

894 913 

895Lihat [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) untuk alur kerja admin.914Lihat [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) untuk alur kerja admin.

896 915 


905}924}

906```925```

907 926 

927<h4 id="sync-a-gitlab-hosted-marketplace">

928 Sinkronkan marketplace yang dihosting GitLab

929</h4>

930 

931Untuk menyinkronkan marketplace dari gitlab.com atau instance GitLab yang dikelola sendiri, [Owner](/docs/id/server-managed-settings#access-control) terlebih dahulu menambahkan konfigurasi GitLab untuk host itu di [**Organization settings > Claude Code**](https://claude.ai/admin-settings/claude-code). Konfigurasi GitLab dalam beta publik dan hanya berlaku untuk sinkronisasi marketplace plugin. Menambahkan satu tidak membuat repositori GitLab tersedia di [Claude Code di web](/docs/id/claude-code-on-the-web#limitations). Lihat [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) untuk langkah-langkah setup.

932 

933Ketika Anda menambahkan marketplace, masukkan URL HTTPS proyek, seperti `https://gitlab.example.com/platform/claude-plugins`. Proyek dalam subgrup bersarang berfungsi. Sinkronisasi organisasi membaca cabang default proyek. Jika Anda mengaktifkan **Sync automatically**, hanya push ke cabang default yang memulai sinkronisasi.

934 

908<h4 id="keep-executables-out-of-the-top-level-bin-directory">935<h4 id="keep-executables-out-of-the-top-level-bin-directory">

909 Jaga executable keluar dari direktori bin tingkat atas936 Jaga executable keluar dari direktori bin tingkat atas

910</h4>937</h4>


984 1011 

985Detail perilaku:1012Detail perilaku:

986 1013 

987* **Read-only**: direktori seed tidak pernah ditulis. Pembaruan otomatis dinonaktifkan untuk marketplace seed karena git pull akan gagal di filesystem read-only.1014* **Read-only**: Claude Code tidak pernah menulis ke direktori seed.

1015* **Auto-updates disabled**: marketplace seed tidak auto-update.

988* **Entri seed mengambil prioritas**: marketplace yang dideklarasikan dalam seed menimpa entri yang cocok apa pun dalam konfigurasi pengguna di setiap startup. Untuk opt out dari plugin seed, gunakan `/plugin disable` daripada menghapus marketplace.1016* **Entri seed mengambil prioritas**: marketplace yang dideklarasikan dalam seed menimpa entri yang cocok apa pun dalam konfigurasi pengguna di setiap startup. Untuk opt out dari plugin seed, gunakan `/plugin disable` daripada menghapus marketplace.

989* **Resolusi jalur**: Claude Code menemukan konten marketplace dengan menyelidiki `$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/` saat runtime, bukan dengan mempercayai jalur yang disimpan di dalam JSON seed. Ini berarti seed berfungsi dengan benar bahkan ketika dipasang di jalur berbeda dari tempat dibangun.1017* **Resolusi jalur**: Claude Code menemukan konten marketplace dengan menyelidiki `$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/` saat runtime, bukan dengan mempercayai jalur yang disimpan di dalam JSON seed. Ini berarti seed berfungsi dengan benar bahkan ketika dipasang di jalur berbeda dari tempat dibangun.

990* **Mutasi diblokir**: menjalankan `/plugin marketplace remove` atau `/plugin marketplace update` terhadap marketplace yang dikelola seed gagal dengan panduan untuk meminta administrator Anda memperbarui image seed.1018* **Mutasi diblokir**: menjalankan `/plugin marketplace remove` atau `/plugin marketplace update` terhadap marketplace yang dikelola seed gagal dengan panduan untuk meminta administrator Anda memperbarui image seed.


1018}1046}

1019```1047```

1020 1048 

1049Claude Code mengunduh plugin [disinkronkan dari claude.ai](/docs/id/plugins-reference#synced-plugins) dari akun Anda daripada dari marketplace, jadi lockdown ini tidak mencakupnya. Untuk menghentikan yang juga, atur [`syncClaudeAiPlugins`](/docs/id/settings-reference#syncclaudeaiplugins) ke `false` dalam pengaturan yang dikelola, atau matikan Skills untuk organisasi Anda di claude.ai.

1050 

1021Izinkan hanya marketplace Anthropic resmi. Pencocokan untuk entri repositori tunggal bersifat tepat, jadi entri ini tidak mencakup varian `ref` atau `path` dari repositori yang sama:1051Izinkan hanya marketplace Anthropic resmi. Pencocokan untuk entri repositori tunggal bersifat tepat, jadi entri ini tidak mencakup varian `ref` atau `path` dari repositori yang sama:

1022 1052 

1023```json theme={null}1053```json theme={null}


1128 1158 

1129Pencocokan tepat allowlist memperlakukan URL yang berbeda hanya dengan garis miring trailing, akhiran `.git`, atau skema `ssh://` dan `https://` sebagai nilai berbeda. Jika marketplace organisasi Anda dapat diklon oleh lebih dari satu bentuk URL, lebih suka entri `hostPattern` daripada URL literal sehingga bentuk `https://`, `ssh://`, dan `user@host:path` semuanya cocok.1159Pencocokan tepat allowlist memperlakukan URL yang berbeda hanya dengan garis miring trailing, akhiran `.git`, atau skema `ssh://` dan `https://` sebagai nilai berbeda. Jika marketplace organisasi Anda dapat diklon oleh lebih dari satu bentuk URL, lebih suka entri `hostPattern` daripada URL literal sehingga bentuk `https://`, `ssh://`, dan `user@host:path` semuanya cocok.

1130 1160 

1161Marketplace yang [dihosting di claude.ai](/docs/id/discover-plugins#add-from-claude-ai) dicocokkan berdasarkan host: entri `hostPattern` yang cocok dengan `claude.ai` mengatur, dalam `strictKnownMarketplaces` dan dalam `blockedMarketplaces`. Di allowlist, entri seperti itu tidak mengakui unggahan claude.ai pribadi anggota. Memerlukan Claude Code v2.1.273 atau lebih baru.

1162 

1131Karena `strictKnownMarketplaces` diatur dalam [pengaturan yang dikelola](/docs/id/managed-settings), konfigurasi pengguna individual dan proyek tidak dapat mengganti pembatasan ini.1163Karena `strictKnownMarketplaces` diatur dalam [pengaturan yang dikelola](/docs/id/managed-settings), konfigurasi pengguna individual dan proyek tidak dapat mengganti pembatasan ini.

1132 1164 

1133Untuk detail konfigurasi lengkap termasuk semua jenis sumber yang didukung dan perbandingan dengan `extraKnownMarketplaces`, lihat [referensi strictKnownMarketplaces](/docs/id/settings-reference#strictknownmarketplaces).1165Untuk detail konfigurasi lengkap termasuk semua jenis sumber yang didukung dan perbandingan dengan `extraKnownMarketplaces`, lihat [referensi strictKnownMarketplaces](/docs/id/settings-reference#strictknownmarketplaces).


1139Versi plugin menentukan jalur cache dan deteksi pembaruan: jika versi yang diselesaikan cocok dengan apa yang sudah dimiliki pengguna, `/plugin update` dan auto-update melewati plugin. Untuk sumber berbasis git, jika Anda menghilangkan `version`, Claude Code menggunakan SHA commit yang diselesaikan dari sumber, jadi pengguna mendapatkan pembaruan setiap kali commit itu berubah; ini adalah setup paling sederhana untuk plugin internal atau yang sedang dikembangkan secara aktif. Lihat [Version management](/docs/id/plugins-reference#version-management) untuk urutan resolusi lengkap, termasuk sumber `archive`.1171Versi plugin menentukan jalur cache dan deteksi pembaruan: jika versi yang diselesaikan cocok dengan apa yang sudah dimiliki pengguna, `/plugin update` dan auto-update melewati plugin. Untuk sumber berbasis git, jika Anda menghilangkan `version`, Claude Code menggunakan SHA commit yang diselesaikan dari sumber, jadi pengguna mendapatkan pembaruan setiap kali commit itu berubah; ini adalah setup paling sederhana untuk plugin internal atau yang sedang dikembangkan secara aktif. Lihat [Version management](/docs/id/plugins-reference#version-management) untuk urutan resolusi lengkap, termasuk sumber `archive`.

1140 1172 

1141<Warning>1173<Warning>

1142 Menetapkan `version` menyematkan plugin untuk setiap jenis sumber kecuali [`command`](#command-sources), yang versinya selalu menyertakan hash dari apa yang dihasilkan perintah. Jika Anda mendeklarasikan `"version": "1.0.0"` dalam `plugin.json` dan mendorong commit baru tanpa mengubah string itu, pengguna yang ada dari sumber tersebut menyimpan salinan cache, karena Claude Code melihat versi yang sama. Bump field pada setiap rilis, atau hilangkan untuk kembali ke versi yang diselesaikan.1174 Menetapkan `version` menyematkan plugin untuk setiap jenis sumber kecuali [`command`](#command-sources), yang versinya selalu menyertakan hash dari apa yang dihasilkan perintah. Jika plugin [dimuat di tempat](/docs/id/plugins-reference#plugin-caching-and-file-resolution) dari marketplace yang ditambahkan sebagai direktori lokal juga tidak disematkan. Jika Anda mendeklarasikan `"version": "1.0.0"` dalam `plugin.json` dan mendorong commit baru tanpa mengubah string itu, pengguna yang ada dari sumber tersebut menyimpan salinan cache, karena Claude Code melihat versi yang sama. Bump field pada setiap rilis, atau hilangkan untuk kembali ke versi yang diselesaikan.

1143 1175 

1144 Hindari menetapkan `version` di kedua `plugin.json` dan entri marketplace. Nilai `plugin.json` selalu menang secara diam-diam, jadi versi manifest yang basi dapat menyembunyikan versi yang Anda atur di `marketplace.json`.1176 Hindari menetapkan `version` di kedua `plugin.json` dan entri marketplace. Nilai `plugin.json` selalu menang secara diam-diam, jadi versi manifest yang basi dapat menyembunyikan versi yang Anda atur di `marketplace.json`.

1145</Warning>1177</Warning>


1330**Opsi:**1362**Opsi:**

1331 1363 

1332| Opsi | Deskripsi | Default |1364| Opsi | Deskripsi | Default |

1333| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |1365| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |

1334| `--scope <scope>` | Di mana mendeklarasikan marketplace: `user`, `project`, atau `local`. Lihat [Plugin installation scopes](/docs/id/plugins-reference#plugin-installation-scopes) | `user` |1366| `--scope <scope>` | Di mana mendeklarasikan marketplace: `user`, `project`, atau `local`. Lihat [Plugin installation scopes](/docs/id/plugins-reference#plugin-installation-scopes) | `user` |

1335| `--sparse <paths...>` | Batasi checkout ke direktori tertentu melalui git sparse-checkout. Berguna untuk monorepo | |1367| `--sparse <paths...>` | Batasi checkout ke direktori tertentu melalui git sparse-checkout. Berguna untuk monorepo | |

1368| `--claudeai` | Baca argumen sebagai nama [marketplace yang dihosting di claude.ai](/docs/id/discover-plugins#add-from-claude-ai) alih-alih sumber. Memerlukan Claude Code v2.1.273 atau lebih baru | |

1336 1369 

1337Tambahkan marketplace dari GitHub menggunakan shorthand `owner/repo`:1370Tambahkan marketplace dari GitHub menggunakan shorthand `owner/repo`:

1338 1371 


1376claude plugin marketplace add acme-corp/monorepo --sparse .claude-plugin plugins1409claude plugin marketplace add acme-corp/monorepo --sparse .claude-plugin plugins

1377```1410```

1378 1411 

1412Tambahkan [marketplace yang dihosting di claude.ai](/docs/id/discover-plugins#add-from-claude-ai) berdasarkan nama yang dicetak di bagian `From claude.ai:` dari `claude plugin marketplace list`:

1413 

1414```bash theme={null}

1415claude plugin marketplace add --claudeai claudeai-organization-library

1416```

1417 

1418Dengan `--claudeai`, perintah menolak `--scope` dan `--sparse`. Marketplace dihosting untuk akun Anda, bukan dideklarasikan dalam file pengaturan, jadi Anda tidak dapat membagikannya melalui `.claude/settings.json` proyek.

1419 

1379<h3 id="plugin-marketplace-list">1420<h3 id="plugin-marketplace-list">

1380 Plugin marketplace list1421 Plugin marketplace list

1381</h3>1422</h3>


1394 1435 

1395Dengan `--json`, setiap entri mencakup `name`, `source`, bidang `installLocation` dengan jalur cache lokal tempat marketplace disimpan, dan bidang khusus sumber: `repo` untuk sumber GitHub, `url` untuk sumber git dan URL, dan `path` untuk sumber lokal. Sumber GitHub dan git juga menyertakan bidang `ref` ketika marketplace ditambahkan dengan branch atau tag yang disematkan.1436Dengan `--json`, setiap entri mencakup `name`, `source`, bidang `installLocation` dengan jalur cache lokal tempat marketplace disimpan, dan bidang khusus sumber: `repo` untuk sumber GitHub, `url` untuk sumber git dan URL, dan `path` untuk sumber lokal. Sumber GitHub dan git juga menyertakan bidang `ref` ketika marketplace ditambahkan dengan branch atau tag yang disematkan.

1396 1437 

1438Marketplace [claude.ai](/docs/id/discover-plugins#add-from-claude-ai) yang ditambahkan tidak memiliki clone lokal, jadi entrinya membawa pengidentifikasi claude.ai-nya, `marketplaceId` dan `organizationUuid`, sebagai pengganti `installLocation`.

1439 

1440Dalam sesi terminal di mana [plugin disinkronkan dari akun claude.ai Anda](/docs/id/plugins-reference#synced-plugins), daftar teks berakhir dengan bagian `From claude.ai:` yang menamai apa yang claude.ai daftarkan untuk akun Anda di luar marketplace yang telah Anda tambahkan. Untuk menambahkan salah satunya, lihat [Tambahkan dari claude.ai](/docs/id/discover-plugins#add-from-claude-ai). Output `--json` hanya mencakup marketplace yang dikonfigurasi dan meninggalkan bagian tersebut. Memerlukan Claude Code v2.1.273 atau lebih baru.

1441 

1397<h3 id="plugin-marketplace-remove">1442<h3 id="plugin-marketplace-remove">

1398 Plugin marketplace remove1443 Plugin marketplace remove

1399</h3>1444</h3>


1472| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | Direktori yang Anda beri nama tidak memiliki `.claude-plugin/marketplace.json` atau `plugin.json`, dan tidak ada file skill, agent, atau command untuk diperiksa | Jalankan dari root marketplace, atau buat `.claude-plugin/marketplace.json` dengan field yang diperlukan |1517| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | Direktori yang Anda beri nama tidak memiliki `.claude-plugin/marketplace.json` atau `plugin.json`, dan tidak ada file skill, agent, atau command untuk diperiksa | Jalankan dari root marketplace, atau buat `.claude-plugin/marketplace.json` dengan field yang diperlukan |

1473| `Invalid JSON syntax: Unexpected token...` | Kesalahan sintaks JSON dalam marketplace.json | Periksa koma yang hilang, koma ekstra, atau string yang tidak dikutip |1518| `Invalid JSON syntax: Unexpected token...` | Kesalahan sintaks JSON dalam marketplace.json | Periksa koma yang hilang, koma ekstra, atau string yang tidak dikutip |

1474| `Duplicate plugin name "x" found in marketplace` | Dua plugin berbagi nama yang sama | Berikan setiap plugin nilai `name` yang unik |1519| `Duplicate plugin name "x" found in marketplace` | Dua plugin berbagi nama yang sama | Berikan setiap plugin nilai `name` yang unik |

1475| `plugins[0].source: Path contains ".."` | Jalur sumber berisi `..` | Gunakan jalur relatif terhadap root marketplace tanpa `..`. Lihat [Jalur relatif](#relative-paths) |1520| `plugins[0].source: Path contains ".."` | Segmen jalur sumber adalah `..` | Gunakan jalur relatif terhadap root marketplace tanpa segmen `..`. Lihat [Relative paths](#relative-paths) |

1476| `Marketplace name cannot contain control or bidirectional-formatting characters` | Nama marketplace `name` berisi karakter bidirectional-formatting Unicode atau karakter kontrol, seperti escape atau newline | Hapus karakter dari nama. Sebelum v2.1.247, karakter ini menghasilkan kesalahan `Marketplace name impersonates an official Anthropic/Claude marketplace` |1521| `Marketplace name cannot contain control or bidirectional-formatting characters` | Nama marketplace `name` berisi karakter bidirectional-formatting Unicode atau karakter kontrol, seperti escape atau newline | Hapus karakter dari nama. Sebelum v2.1.247, karakter ini menghasilkan kesalahan `Marketplace name impersonates an official Anthropic/Claude marketplace` |

1477| `Plugin name cannot contain control or bidirectional-formatting characters` | Nama plugin `name` berisi karakter bidirectional-formatting Unicode atau karakter kontrol, seperti escape atau newline | Hapus karakter dari nama. Sebelum v2.1.247, Claude Code tidak menjalankan pemeriksaan ini |1522| `Plugin name cannot contain control or bidirectional-formatting characters` | Nama plugin `name` berisi karakter bidirectional-formatting Unicode atau karakter kontrol, seperti escape atau newline | Hapus karakter dari nama. Sebelum v2.1.247, Claude Code tidak menjalankan pemeriksaan ini |

1478 1523 


1575 1620 

1576Untuk pembaruan otomatis latar belakang:1621Untuk pembaruan otomatis latar belakang:

1577 1622 

1578* Secara default, penyegaran latar belakang menonaktifkan helper kredensial git untuk pull, sehingga pull tidak dapat diautentikasi melalui HTTPS. Remote SSH dengan kunci yang dimuat di `ssh-agent` masih diautentikasi. Pull yang gagal memicu re-clone dari awal, yang menggunakan kredensial tersimpan Anda tetapi mungkin time out pada repositori besar1623* Secara default, penyegaran latar belakang menonaktifkan helper kredensial git ketika mereka memeriksa remote untuk commit baru, sehingga pemeriksaan tidak dapat diautentikasi melalui HTTPS. Remote SSH dengan kunci yang dimuat di `ssh-agent` masih diautentikasi

1579* Atur `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` untuk menyimpan klon yang ada ketika pull latar belakang gagal1624* Ketika pemeriksaan tidak dapat diautentikasi, Claude Code me-re-clone marketplace dengan kredensial tersimpan Anda, tetapi re-clone mungkin time out pada repositori besar

1580* Konfigurasikan helper kredensial git, misalnya `gh auth setup-git`, sehingga fallback re-clone dapat diautentikasi1625* Atur `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` untuk menyimpan klon yang ada tanpa mencoba re-clone ketika pemeriksaan latar belakang tidak dapat menjangkau atau diautentikasi ke remote

1626* Konfigurasikan helper kredensial git, misalnya `gh auth setup-git`, sehingga re-clone dapat diautentikasi

1581* Jika re-clone time out pada repositori besar, tingkatkan batas dengan [`CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`](#git-operations-time-out)1627* Jika re-clone time out pada repositori besar, tingkatkan batas dengan [`CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`](#git-operations-time-out)

1582* Konfigurasikan [rewrite URL git](#private-repositories) yang dibatasi pada repositori marketplace sehingga pull latar belakang diautentikasi secara langsung1628* Konfigurasikan [rewrite URL git](#private-repositories) yang dibatasi pada repositori marketplace sehingga pemeriksaan latar belakang diautentikasi secara langsung

1583* Atau perbarui marketplace pribadi secara manual dengan `/plugin marketplace update <name>`, yang menggunakan kredensial Anda1629* Atau perbarui marketplace pribadi secara manual dengan `/plugin marketplace update <name>`, yang menggunakan kredensial Anda

1584 1630 

1585<h3 id="marketplace-updates-fail-in-offline-environments">1631<h3 id="marketplace-updates-fail-in-offline-environments">

1586 Pembaruan marketplace gagal di lingkungan offline1632 Pembaruan marketplace gagal di lingkungan offline

1587</h3>1633</h3>

1588 1634 

1589**Gejala**: Marketplace `git pull` gagal di latar belakang dan Claude Code berulang kali mencoba re-clone yang tidak dapat berhasil.1635**Gejala**: Di lingkungan offline atau airgapped, penyegaran marketplace latar belakang tidak dapat menjangkau remote dan Claude Code berulang kali mencoba re-clone yang tidak dapat berhasil.

1636 

1637**Penyebab**: Penyegaran latar belakang memeriksa remote marketplace untuk commit baru, dan ketika pemeriksaan tidak dapat menjangkau remote, Claude Code mencoba mengklon marketplace lagi. Offline, klon gagal dengan cara yang sama dan klon yang ada tetap di tempat. Sebelum v2.1.274, penyegaran menjalankan `git pull` dalam klon yang ada, memindahkan klon ke samping untuk re-clone ketika pull gagal, dan memulihkannya sesudahnya dengan basis best-effort.

1590 1638 

1591**Penyebab**: Secara default, ketika `git pull` gagal, Claude Code mencoba re-clone dari awal. Di lingkungan offline atau airgapped, re-cloning gagal dengan cara yang sama, dan pemulihan cache sebelumnya sesudahnya adalah best-effort. Refresh berjalan di latar belakang setelah startup, sehingga tidak menunda startup, tetapi setiap sesi mengulangi upaya yang gagal dan setiap operasi git dapat menunggu [timeout 120 detik](#git-operations-time-out).1639Penyegaran berjalan di latar belakang setelah startup, sehingga tidak menunda startup. Setiap sesi masih mengulangi upaya yang gagal, dan setiap operasi git dapat menunggu [timeout 120 detik](#git-operations-time-out).

1592 1640 

1593**Solusi**: Atur `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` untuk melewati upaya re-clone dan terus menggunakan cache yang ada ketika pull gagal:1641**Solusi**: Atur `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` untuk melewati upaya re-clone dan terus menggunakan klon yang ada ketika pemeriksaan tidak dapat menjangkau remote:

1594 1642 

1595```bash theme={null}1643```bash theme={null}

1596export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=11644export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1


1602 Operasi Git time out1650 Operasi Git time out

1603</h3>1651</h3>

1604 1652 

1605**Gejala**: Instalasi plugin atau pembaruan marketplace gagal dengan kesalahan timeout seperti "Git clone timed out after 120s" atau "Git pull timed out after 120s".1653**Gejala**: Instalasi plugin atau pembaruan marketplace gagal dengan kesalahan timeout seperti `Git clone timed out after 120s`.

1606 1654 

1607**Penyebab**: Claude Code menggunakan timeout 120 detik untuk semua operasi git, termasuk mengklon repositori plugin dan menarik pembaruan marketplace. Repositori besar atau koneksi jaringan lambat mungkin melebihi batas ini.1655**Penyebab**: Claude Code menggunakan timeout 120 detik untuk semua operasi git, termasuk mengklon repositori plugin dan me-re-clone marketplace untuk memperbaruinya. Repositori besar atau koneksi jaringan lambat mungkin melebihi batas ini.

1608 1656 

1609**Solusi**: Tingkatkan timeout menggunakan variabel lingkungan `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`. Nilainya dalam milidetik:1657**Solusi**: Tingkatkan timeout menggunakan variabel lingkungan `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`. Nilainya dalam milidetik:

1610 1658 


1634 1682 

1635**Gejala**: Plugin dipasang tetapi referensi ke file gagal, terutama file di luar direktori plugin1683**Gejala**: Plugin dipasang tetapi referensi ke file gagal, terutama file di luar direktori plugin

1636 1684 

1637**Penyebab**: Plugin disalin ke direktori cache daripada digunakan di tempat, kecuali untuk [`command` source dalam link mode](#copy-mode-and-link-mode). Jalur yang mereferensikan file di luar direktori plugin yang disalin (seperti `../shared-utils`) tidak akan berfungsi karena file tersebut tidak disalin.1685**Penyebab**: Claude Code menyalin plugin yang dipasang ke direktori cache, kecuali plugin dimuat di tempat. [`command` source dalam link mode](#copy-mode-and-link-mode) dimuat di tempat, begitu juga [relative path source](#relative-paths) dalam marketplace yang ditambahkan dari direktori lokal. Jalur yang mereferensikan file di luar direktori plugin yang disalin (seperti `../shared-utils`) tidak akan berfungsi karena file tersebut tidak disalin.

1638 1686 

1639**Solusi**: Lihat [Plugin caching and file resolution](/docs/id/plugins-reference#plugin-caching-and-file-resolution) untuk solusi termasuk symlink dan restruktur direktori.1687**Solusi**: Lihat [Plugin caching and file resolution](/docs/id/plugins-reference#plugin-caching-and-file-resolution) untuk solusi termasuk symlink dan restruktur direktori.

1640 1688 

Details

86| `filesRead` | array of strings | Pola Glob yang dicocokkan dengan jalur file yang telah dibaca Claude sesi ini, misalnya `["**/*.tf"]`. Garis miring dinormalisasi dan tidak peka huruf besar-kecil. Maksimal 10 pola dengan 256 karakter masing-masing. |86| `filesRead` | array of strings | Pola Glob yang dicocokkan dengan jalur file yang telah dibaca Claude sesi ini, misalnya `["**/*.tf"]`. Garis miring dinormalisasi dan tidak peka huruf besar-kecil. Maksimal 10 pola dengan 256 karakter masing-masing. |

87| `manifestDeps` | array of objects | Dependensi yang dideklarasikan dalam manifes paket yang telah dibaca Claude sesi ini. Setiap entri adalah `{ "file": "...", "pattern": "..." }`, di mana `file` adalah ekspresi reguler yang dicocokkan dengan jalur file manifes seperti yang dicatat dalam status sesi, biasanya jalur absolut, dan `pattern` adalah ekspresi reguler yang dicocokkan dengan konten file tersebut. Jangkar `file` di akhir, misalnya `[/\\\\]package\\.json$` dalam bentuk JSON-escaped, karena pola yang dimulai dengan jangkar tidak pernah cocok dengan jalur absolut. Jalur tidak dinormalisasi pemisah untuk sinyal ini, jadi jalur Windows menggunakan garis miring terbalik. File manifes yang lebih besar dari 512 KB dilewati. Kedua nilai adalah string sumber JavaScript `RegExp` paling banyak 256 karakter. `file` cocok tidak peka huruf besar-kecil. `pattern` peka huruf besar-kecil. Maksimal 10 entri. |87| `manifestDeps` | array of objects | Dependensi yang dideklarasikan dalam manifes paket yang telah dibaca Claude sesi ini. Setiap entri adalah `{ "file": "...", "pattern": "..." }`, di mana `file` adalah ekspresi reguler yang dicocokkan dengan jalur file manifes seperti yang dicatat dalam status sesi, biasanya jalur absolut, dan `pattern` adalah ekspresi reguler yang dicocokkan dengan konten file tersebut. Jangkar `file` di akhir, misalnya `[/\\\\]package\\.json$` dalam bentuk JSON-escaped, karena pola yang dimulai dengan jangkar tidak pernah cocok dengan jalur absolut. Jalur tidak dinormalisasi pemisah untuk sinyal ini, jadi jalur Windows menggunakan garis miring terbalik. File manifes yang lebih besar dari 512 KB dilewati. Kedua nilai adalah string sumber JavaScript `RegExp` paling banyak 256 karakter. `file` cocok tidak peka huruf besar-kecil. `pattern` peka huruf besar-kecil. Maksimal 10 entri. |

88 88 

89Sinyal `cli`, `hosts`, `filesRead`, dan `manifestDeps` memerlukan riwayat sesi, jadi mereka hanya dapat cocok pada spinner tip dan tab Discover. Sinyal `filesRead` dan `manifestDeps` menguji status file yang dicatat sesi, yang juga mencakup file yang telah ditulis atau diedit Claude dan file memori `CLAUDE.md` yang dimuat otomatis.89Sinyal `cli`, `hosts`, `filesRead`, dan `manifestDeps` memerlukan riwayat sesi, jadi mereka hanya dapat cocok pada spinner tip dan tab Discover. Sinyal `filesRead` dan `manifestDeps` menguji status file yang dicatat sesi, yang juga mencakup file yang telah ditulis atau diedit Claude dan file memori `CLAUDE.md` yang dimuat otomatis. Untuk kedua sinyal ini, Claude Code melewati jalur di bawah [direktori konfigurasinya](/docs/id/claude-directory) dan direktori sementaranya.

90 90 

91Contoh berikut menggunakan `manifestDeps` untuk menyarankan plugin Stripe setelah Claude membaca `package.json` yang bergantung pada `stripe`. Pola `file` menggunakan `[/\\\\]` sehingga cocok dengan pemisah jalur garis miring dan garis miring terbalik, dan `\\.` sehingga titik adalah literal. Dalam JSON, setiap garis miring terbalik dalam ekspresi reguler ditulis dua kali.91Contoh berikut menggunakan `manifestDeps` untuk menyarankan plugin Stripe setelah Claude membaca `package.json` yang bergantung pada `stripe`. Pola `file` menggunakan `[/\\\\]` sehingga cocok dengan pemisah jalur garis miring dan garis miring terbalik, dan `\\.` sehingga titik adalah literal. Dalam JSON, setiap garis miring terbalik dalam ekspresi reguler ditulis dua kali.

92 92 

plugins.md +2 −2

Details

75 ```75 ```

76 76 

77 | Field | Tujuan |77 | Field | Tujuan |

78 | :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |78 | :------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

79 | `name` | Pengidentifikasi unik dan namespace skill. Skills diawali dengan ini (misalnya, `/my-first-plugin:hello`). |79 | `name` | Pengidentifikasi unik dan namespace skill. Skills diawali dengan ini (misalnya, `/my-first-plugin:hello`). |

80 | `description` | Ditampilkan di plugin manager saat menjelajahi atau memasang plugins. |80 | `description` | Ditampilkan di plugin manager saat menjelajahi atau memasang plugins. |

81 | `version` | Opsional. Jika diatur, pengguna hanya menerima pembaruan ketika Anda menaikkan field ini, kecuali untuk [`command` source](/docs/id/plugin-marketplaces#command-sources); lihat [manajemen versi](/docs/id/plugins-reference#version-management). Jika dihilangkan, versi berasal dari sumber berikutnya dalam [manajemen versi](/docs/id/plugins-reference#version-management). |81 | `version` | Opsional. Jika diatur, pengguna hanya menerima pembaruan ketika Anda menaikkan field ini, kecuali untuk [`command` source](/docs/id/plugin-marketplaces#command-sources) atau plugin [dimuat di tempat](/docs/id/plugins-reference#plugin-caching-and-file-resolution); lihat [manajemen versi](/docs/id/plugins-reference#version-management). Jika dihilangkan, versi berasal dari sumber berikutnya dalam [manajemen versi](/docs/id/plugins-reference#version-management). |

82 | `author` | Opsional. Membantu untuk atribusi. |82 | `author` | Opsional. Membantu untuk atribusi. |

83 83 

84 Untuk field tambahan seperti `homepage`, `repository`, dan `license`, lihat [skema manifest lengkap](/docs/id/plugins-reference#plugin-manifest-schema).84 Untuk field tambahan seperti `homepage`, `repository`, dan `license`, lihat [skema manifest lengkap](/docs/id/plugins-reference#plugin-manifest-schema).

Details

40 40 

41Skills dan commands secara otomatis ditemukan ketika plugin diinstal.41Skills dan commands secara otomatis ditemukan ketika plugin diinstal.

42 42 

43Jika plugin tidak memiliki direktori `skills/` dan tidak memiliki field manifest `skills`, file `SKILL.md` di root plugin dimuat sebagai skill tunggal. Atur field frontmatter `name` untuk mengontrol nama invokasi skill. Tanpanya, Claude Code kembali ke nama direktori instalasi, yang untuk plugin yang diinstal dari marketplace adalah string versi yang berubah pada setiap pembaruan. Untuk plugin yang mengirimkan lebih dari satu skill, gunakan tata letak direktori `skills/` yang ditunjukkan di atas.43Jika plugin tidak memiliki direktori `skills/` dan tidak memiliki field manifest `skills`, file `SKILL.md` di root plugin dimuat sebagai skill tunggal. Atur field frontmatter `name` untuk mengontrol nama invokasi skill. Tanpanya, Claude Code kembali ke nama direktori instalasi. Untuk plugin yang [disalin ke dalam cache](#plugin-caching-and-file-resolution), nama itu adalah string versi yang berubah pada setiap pembaruan. Untuk plugin yang mengirimkan lebih dari satu skill, gunakan tata letak direktori `skills/` yang ditunjukkan di atas.

44 44 

45Dalam skills dan commands plugin, field frontmatter Boolean seperti `disable-model-invocation` menerima `yes`, `no`, `on`, `off`, `1`, dan `0` dalam huruf apa pun, selain `true` dan `false`. Sebelum v2.1.218, Claude Code hanya mengenali `true` dan `false`.45Dalam skills dan commands plugin, field frontmatter Boolean seperti `disable-model-invocation` menerima `yes`, `no`, `on`, `off`, `1`, dan `0` dalam huruf apa pun, selain `true` dan `false`. Sebelum v2.1.218, Claude Code hanya mengenali `true` dan `false`.

46 46 


71Prompt sistem terperinci untuk agent yang menjelaskan peran, keahlian, dan perilakunya.71Prompt sistem terperinci untuk agent yang menjelaskan peran, keahlian, dan perilakunya.

72```72```

73 73 

74Plugin agents mendukung field frontmatter `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, dan `isolation`. Satu-satunya nilai `isolation` yang valid adalah `"worktree"`. Untuk alasan keamanan, `hooks`, `mcpServers`, dan `permissionMode` tidak didukung untuk agents yang dikirimkan plugin.74Plugin agents mendukung field frontmatter `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, [`omitClaudeMd`](/docs/id/sub-agents#supported-frontmatter-fields), dan `isolation`. Satu-satunya nilai `isolation` yang valid adalah `"worktree"`.

75 

76Untuk alasan keamanan, plugin-shipped agents tidak mendukung `hooks`, `mcpServers`, atau `permissionMode`.

75 77 

76Claude Code memuat agent plugin bahkan ketika frontmatternya tidak memiliki `name` atau tidak dapat diuraikan:78Claude Code memuat agent plugin bahkan ketika frontmatternya tidak memiliki `name` atau tidak dapat diuraikan:

77 79 


99 101 

100**Format**: Konfigurasi JSON dengan event matchers dan actions102**Format**: Konfigurasi JSON dengan event matchers dan actions

101 103 

104`hooks/hooks.json` dapat membawa key `$schema` tingkat atas yang menamai URL JSON Schema untuk autocomplete dan validasi editor. Claude Code mengabaikan key saat waktu load.

105 

102**Konfigurasi hook**:106**Konfigurasi hook**:

103 107 

104```json theme={null}108```json theme={null}


440 Plugin yang disinkronkan dari claude.ai444 Plugin yang disinkronkan dari claude.ai

441</h2>445</h2>

442 446 

443Di [Cowork](https://claude.com/product/cowork) dan [sesi cloud](/docs/id/cloud-environments#what-carries-over-from-your-setup), Claude Code mengunduh plugin yang diaktifkan untuk akun claude.ai Anda ke dalam `~/.claude/plugins/synced/` di lingkungan sesi itu sendiri dan memuat masing-masing sebagai `<name>@synced`, tanpa marketplace dan tanpa catatan instalasi. Claude Code tidak memuat plugin tersebut di sesi yang Anda mulai di terminal Anda sendiri. Di dalam lingkungan Cowork atau cloud tersebut, `claude plugin list` menampilkan salinan yang diunduh di bawah judul `Synced from claude.ai`. Sebelum v2.1.239, Claude Code memuat plugin ini sebagai `<name>@inline`, identitas yang digunakan plugin `--plugin-dir`.447Claude Code memuat plugin yang diaktifkan untuk akun claude.ai Anda, termasuk plugin yang organisasi Anda aktifkan untuk anggotanya, bersama dengan plugin yang Anda instal dari marketplace. Plugin ini diunduh ke dalam `~/.claude/plugins/synced/` dan dimuat sebagai `<name>@synced`, tanpa marketplace dan tanpa catatan instalasi. Plugin yang disinkronkan berjalan dengan kepercayaan yang sama seperti plugin marketplace yang Anda instal: skills, agents, hooks, server MCP, dan server LSP semuanya dimuat.

448 

449Tempat Claude Code menyinkronkan plugin ini tergantung pada sesi:

450 

451* Di [Cowork](https://claude.com/product/cowork) dan [sesi cloud](/docs/id/cloud-environments#what-carries-over-from-your-setup), Claude Code mengunduh plugin ke dalam lingkungan sesi itu sendiri ketika sesi dimulai. Sebelum v2.1.239, Claude Code memuat plugin ini sebagai `<name>@inline`, identitas yang digunakan plugin `--plugin-dir`.

452* Di sesi terminal tempat Anda masuk dengan akun claude.ai Anda, Claude Code memeriksa akun Anda sekali setiap kali dimulai, kemudian mengunduh plugin baru dan yang diperbarui serta menghapus plugin yang Anda atau organisasi Anda matikan, semuanya di latar belakang. Sinkronisasi di sesi terminal memerlukan Claude Code v2.1.273 atau lebih baru.

453 

454Pemeriksaan peluncuran berjalan di latar belakang, sehingga dapat selesai setelah sesi Anda dimulai. Ketika menambah, memperbarui, atau menghapus plugin yang disinkronkan di sesi interaktif, Claude Code menampilkan `Plugins changed. Run /reload-plugins to activate.` Jalankan [`/reload-plugins`](/docs/id/discover-plugins#apply-plugin-changes-without-restarting) untuk memuat perubahan di sesi itu, atau biarkan untuk lain kali Anda memulai Claude Code. Jika Anda mengaktifkan plugin di claude.ai saat sesi sedang berjalan, Claude Code mengunduhnya lain kali dimulai.

444 455 

445Kelola plugin yang disinkronkan dengan ID `<name>@synced` yang dicetak oleh `claude plugin list`:456Sinkronisasi plugin di sesi terminal berjalan di bawah kondisi masuk yang sama seperti [skills yang disinkronkan dari claude.ai](/docs/id/skills#where-synced-skills-load). Plugin ini juga memerlukan masuk yang memberikan Claude Code akses ke plugin akun Anda.

446 457 

447* **Matikan salah satu**: di sesi yang disinkronkan, jalankan `claude plugin disable <name>@synced`, atau minta Claude untuk menjalankannya. Claude Code menyimpan pilihan sebagai `"<name>@synced": false` di [`enabledPlugins`](/docs/id/settings-reference#enabledplugins) tingkat pengguna lingkungan tersebut. Untuk menghidupkan kembali plugin, jalankan `claude plugin enable <name>@synced` di sesi yang sama. Untuk menjaga plugin tetap keluar dari setiap sesi yang disinkronkan, [matikan untuk akun claude.ai Anda](/docs/id/desktop#extend-claude-code). Untuk menjaganya tetap keluar dari sesi yang disinkronkan satu proyek di setiap lingkungan, atur `"<name>@synced": false` di bawah `enabledPlugins` di `.claude/settings.json` proyek yang berkomitmen tersebut.458Masuk dari versi Claude Code yang lebih awal mengambil akses plugin lain kali Claude Code memperbarui masuk itu di latar belakang, dalam beberapa jam, atau segera jika Anda menjalankan `/login` lagi. Sinkronisasi plugin dimulai lain kali Anda memulai Claude Code setelah itu.

448* **Kelola plugin itu sendiri di claude.ai**: `claude plugin install`, `update`, dan `uninstall` tidak berlaku untuk plugin yang disinkronkan. Untuk menghapusnya, matikan plugin untuk akun claude.ai Anda; sesi yang disinkronkan berikutnya dimulai tanpanya.

449 459 

450Ketika plugin yang diaktifkan dari sumber lain, seperti instalasi marketplace, plugin [skills-directory](#skills-directory-plugins), atau plugin `--plugin-dir`, cocok dengan nama plugin yang disinkronkan, Claude Code memuat plugin tersebut dan melaporkan salinan yang disinkronkan sebagai tidak dimuat. Untuk menggunakan salinan claude.ai sebagai gantinya, nonaktifkan salinan Anda sendiri. Sebelum v2.1.239, Claude Code memuat salinan yang disinkronkan alih-alih instalasi marketplace dengan nama yang sama.460`claude plugin list` menampilkan plugin yang disinkronkan di bawah judul `Synced from claude.ai`, dan tab **Installed** `/plugin` mencantumkannya dengan `synced` sebagai sumber mereka. Kelola plugin yang disinkronkan dengan ID `<name>@synced` yang dicetak oleh `claude plugin list`:

461 

462* **Matikan salah satu**: jalankan `claude plugin disable <name>@synced`, atau matikan dari tab **Installed** `/plugin`. Claude Code menyimpan pilihan sebagai `"<name>@synced": false` di [`enabledPlugins`](/docs/id/settings-reference#enabledplugins) tingkat pengguna Anda. Untuk menghidupkan kembali plugin, jalankan `claude plugin enable <name>@synced`.

463* **Jaga plugin tetap keluar di mana-mana**: [matikan plugin untuk akun claude.ai Anda](/docs/id/desktop#extend-claude-code). Untuk menjaganya tetap keluar dari satu proyek di setiap lingkungan, atur `"<name>@synced": false` di bawah `enabledPlugins` di `.claude/settings.json` proyek yang berkomitmen itu.

464* **Kelola plugin itu sendiri di claude.ai**: `claude plugin install`, `update`, dan `uninstall` tidak berlaku untuk plugin yang disinkronkan. Claude Code mengunduh pembaruan plugin pada sinkronisasi berikutnya. Untuk menghapusnya, matikan plugin untuk akun claude.ai Anda, dan Claude Code menghapusnya pada sinkronisasi berikutnya.

465* **Hentikan sinkronisasi di mesin**: atur [`syncClaudeAiPlugins`](/docs/id/settings-reference#syncclaudeaiplugins) ke `false` di pengaturan pengguna Anda. Claude Code berhenti mengunduh, dan lain kali dimulai, plugin yang sudah disinkronkan dipindahkan ke `~/.claude/plugins/.trash/` dan tidak lagi dimuat. Organisasi Anda dapat mengatur kunci yang sama di [pengaturan terkelola](/docs/id/managed-settings), atau matikan Skills di claude.ai, yang juga menghentikan plugin dari sinkronisasi.

466 

467Anda tidak dapat mematikan plugin yang organisasi Anda tandai sebagai wajib di claude.ai. Claude Code memuat plugin bahkan jika Anda menonaktifkannya sebelumnya, dan `claude plugin disable` menolak dengan `Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.` Di `claude plugin list`, plugin ini ditandai `required by your org`.

468 

469Ketika plugin yang diaktifkan dari sumber lain cocok dengan nama plugin yang disinkronkan, Claude Code memuat plugin itu dan melaporkan salinan yang disinkronkan sebagai tidak dimuat. Sumber lain termasuk instalasi marketplace, [plugin skills-directory](#skills-directory-plugins), plugin `--plugin-dir`, dan plugin yang tertanam di Claude Code. Untuk menggunakan salinan claude.ai sebagai gantinya, nonaktifkan salinan Anda sendiri. Sebelum v2.1.239, Claude Code memuat salinan yang disinkronkan alih-alih instalasi marketplace dengan nama yang sama.

451 470 

452***471***

453 472 


534</h3>553</h3>

535 554 

536| Bidang | Tipe | Deskripsi | Contoh |555| Bidang | Tipe | Deskripsi | Contoh |

537| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------- |556| :--------------- | :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |

538| `$schema` | string | URL JSON Schema untuk autocomplete dan validasi editor. Claude Code mengabaikan bidang ini saat waktu pemuatan. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |557| `$schema` | string | URL JSON Schema untuk autocomplete dan validasi editor. Claude Code mengabaikan bidang ini saat waktu pemuatan. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

539| `displayName` | string | Nama yang dapat dibaca manusia ditampilkan di pemilih `/plugin` dan permukaan UI lainnya. Untuk plugin yang diinstal marketplace, `displayName` pada [entri marketplace](/docs/id/plugin-marketplaces#optional-plugin-fields) mengambil alih nilai ini. Ketika tidak ada nama tampilan yang ditetapkan di tempat mana pun, pengguna melihat `name`. Tidak seperti `name`, dapat berisi spasi dan casing apa pun. Tidak digunakan untuk namespacing atau pencarian. | `"Deployment Tools"` |558| `displayName` | string | Nama yang dapat dibaca manusia ditampilkan di pemilih `/plugin` dan permukaan UI lainnya. Untuk plugin yang diinstal marketplace, `displayName` pada [entri marketplace](/docs/id/plugin-marketplaces#optional-plugin-fields) mengambil alih nilai ini. Ketika tidak ada nama tampilan yang ditetapkan di tempat mana pun, pengguna melihat `name`. Tidak seperti `name`, dapat berisi spasi dan casing apa pun. Tidak digunakan untuk namespacing atau pencarian. | `"Deployment Tools"` |

540| `version` | string | Opsional. Versi semantik. Menetapkan ini mengikat plugin ke string versi itu, sehingga pengguna hanya menerima pembaruan ketika Anda menaikkannya, kecuali untuk [sumber `command`](/docs/id/plugin-marketplaces#command-sources); lihat [Manajemen versi](#version-management). Jika juga ditetapkan di entri marketplace, `plugin.json` menang. Jika dihilangkan, versi berasal dari sumber berikutnya di [Manajemen versi](#version-management). | `"2.1.0"` |559| `version` | string | Opsional. Versi semantik. Menetapkan ini mengikat plugin ke string versi itu, sehingga pengguna hanya menerima pembaruan ketika Anda menaikkannya, kecuali untuk [sumber `command`](/docs/id/plugin-marketplaces#command-sources) atau plugin [dimuat di tempat](#plugin-caching-and-file-resolution); lihat [Manajemen versi](#version-management). Jika juga ditetapkan di entri marketplace, `plugin.json` menang. Jika dihilangkan, versi berasal dari sumber berikutnya di [Manajemen versi](#version-management). | `"2.1.0"` |

541| `description` | string | Penjelasan singkat tentang tujuan plugin | `"Deployment automation tools"` |560| `description` | string | Penjelasan singkat tentang tujuan plugin | `"Deployment automation tools"` |

542| `author` | object | Informasi penulis | `{"name": "Dev Team", "email": "dev@company.com"}` |561| `author` | object | Informasi penulis | `{"name": "Dev Team", "email": "dev@company.com"}` |

543| `homepage` | string | URL dokumentasi | `"https://docs.example.com"` |562| `homepage` | string | URL dokumentasi | `"https://docs.example.com"` |


553 572 

554Atur `defaultEnabled: false` di `plugin.json` untuk mengirimkan plugin yang diinstal dalam keadaan dinonaktifkan. Pengguna menghidupkannya dengan `claude plugin enable <plugin>` atau antarmuka `/plugin`. Gunakan ini untuk plugin yang menambah biaya atau ruang lingkup yang harus dipilih pengguna, seperti yang menghubungkan ke layanan eksternal.573Atur `defaultEnabled: false` di `plugin.json` untuk mengirimkan plugin yang diinstal dalam keadaan dinonaktifkan. Pengguna menghidupkannya dengan `claude plugin enable <plugin>` atau antarmuka `/plugin`. Gunakan ini untuk plugin yang menambah biaya atau ruang lingkup yang harus dipilih pengguna, seperti yang menghubungkan ke layanan eksternal.

555 574 

556`defaultEnabled` adalah fallback ketika tidak ada yang telah memutuskan status plugin. Dua hal mengambil alih:575`defaultEnabled` adalah fallback ketika tidak ada yang telah memutuskan status plugin. Pengaturan pengguna dan persyaratan ketergantungan mengambil alih:

557 576 

558* **Pengaturan pengguna**: entri untuk plugin di `enabledPlugins` di ruang lingkup pengaturan apa pun. Setelah ditulis, itu bertahan di seluruh pembaruan dan penginstalan ulang plugin, jadi mengubah `defaultEnabled` dalam rilis kemudian tidak membalik pengguna yang ada.577* **Pengaturan pengguna**: entri untuk plugin di `enabledPlugins` di ruang lingkup pengaturan apa pun. Setelah ditulis, itu bertahan di seluruh pembaruan dan penginstalan ulang plugin, jadi mengubah `defaultEnabled` dalam rilis kemudian tidak membalik pengguna yang ada.

559* **Persyaratan ketergantungan**: ketika plugin diperlukan oleh plugin lain yang aktif, Claude Code menulis `true` untuk itu pada waktu instalasi atau pengaktifan. Itu memberikannya pengaturan eksplisit, jadi default-nya sendiri tidak lagi berlaku. Lihat [Aktifkan atau nonaktifkan plugin dengan ketergantungan](/docs/id/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).578* **Persyaratan ketergantungan**: ketika plugin diperlukan oleh plugin lain yang aktif, Claude Code menulis `true` untuk itu pada waktu instalasi atau pengaktifan. Itu memberikannya pengaturan eksplisit, jadi default-nya sendiri tidak lagi berlaku. Lihat [Aktifkan atau nonaktifkan plugin dengan ketergantungan](/docs/id/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).


577| `experimental.themes` | string\|array | File/direktori tema warna (menggantikan `themes/` default). Lihat [Tema](#themes) | `"./themes/"` |596| `experimental.themes` | string\|array | File/direktori tema warna (menggantikan `themes/` default). Lihat [Tema](#themes) | `"./themes/"` |

578| `experimental.monitors` | string\|array | Konfigurasi [Monitor](/docs/id/tools-reference#monitor-tool) latar belakang yang dimulai secara otomatis ketika plugin aktif. Lihat [Monitor](#monitors) | `"./monitors.json"` |597| `experimental.monitors` | string\|array | Konfigurasi [Monitor](/docs/id/tools-reference#monitor-tool) latar belakang yang dimulai secara otomatis ketika plugin aktif. Lihat [Monitor](#monitors) | `"./monitors.json"` |

579| `experimental.evals` | string\|array | Direktori di bawah akar plugin yang menyimpan [kasus eval](/docs/id/plugin-evals#use-a-different-eval-directory) plugin, ketika bukan `evals/` default. `claude plugin eval --eval-dir` menggantinya | `"quality/evals"` |598| `experimental.evals` | string\|array | Direktori di bawah akar plugin yang menyimpan [kasus eval](/docs/id/plugin-evals#use-a-different-eval-directory) plugin, ketika bukan `evals/` default. `claude plugin eval --eval-dir` menggantinya | `"quality/evals"` |

580| `userConfig` | object | Nilai yang dapat dikonfigurasi pengguna yang diminta saat pengaktifan. Lihat [Konfigurasi pengguna](#user-configuration) | Lihat di bawah |599| `userConfig` | object | Nilai yang dapat dikonfigurasi pengguna yang diminta saat pengaktifan. Lihat [Konfigurasi pengguna](#user-configuration) | |

581| `channels` | array | Deklarasi saluran untuk injeksi pesan (gaya Telegram, Slack, Discord). Lihat [Saluran](#channels) | Lihat di bawah |600| `channels` | array | Deklarasi saluran untuk injeksi pesan (gaya Telegram, Slack, Discord). Lihat [Saluran](#channels) | |

582| `dependencies` | array | Plugin lain yang diperlukan plugin ini, secara opsional dengan batasan versi semver. Lihat [Batasi versi ketergantungan plugin](/docs/id/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |601| `dependencies` | array | Plugin lain yang diperlukan plugin ini, secara opsional dengan batasan versi semver. Lihat [Batasi versi ketergantungan plugin](/docs/id/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

583 602 

584<h3 id="experimental-components">603<h3 id="experimental-components">


614Kunci harus berupa pengidentifikasi yang valid. Setiap opsi mendukung bidang-bidang ini:633Kunci harus berupa pengidentifikasi yang valid. Setiap opsi mendukung bidang-bidang ini:

615 634 

616| Bidang | Diperlukan | Deskripsi |635| Bidang | Diperlukan | Deskripsi |

617| :------------ | :--------- | :----------------------------------------------------------------------------------------------------- |636| :------------ | :--------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |

618| `type` | Ya | Salah satu dari `string`, `number`, `boolean`, `directory`, atau `file` |637| `type` | Ya | Salah satu dari `string`, `number`, `boolean`, `directory`, atau `file` |

619| `title` | Ya | Label ditampilkan di dialog konfigurasi |638| `title` | Ya | Label ditampilkan di dialog konfigurasi |

620| `description` | Ya | Teks bantuan ditampilkan di bawah bidang |639| `description` | Ya | Teks bantuan ditampilkan di bawah bidang |

621| `sensitive` | Tidak | Jika `true`, menyembunyikan input dan menyimpan nilai dalam penyimpanan aman alih-alih `settings.json` |640| `sensitive` | Tidak | Jika `true`, menyembunyikan input dan menyimpan nilai dalam penyimpanan aman alih-alih `settings.json` |

622| `required` | Tidak | Jika `true`, validasi gagal ketika bidang kosong |641| `required` | Tidak | Jika `true`, validasi gagal ketika bidang kosong |

623| `default` | Tidak | Nilai yang digunakan ketika pengguna tidak memberikan apa pun |642| `default` | Tidak | Nilai yang digunakan ketika pengguna tidak memberikan apa pun |

643| `options` | Tidak | Untuk tipe `string`, nilai yang diterima bidang, ditampilkan di `/config` sebagai pemilih di atasnya. Memerlukan Claude Code v2.1.271 atau lebih baru |

624| `multiple` | Tidak | Untuk tipe `string`, izinkan array string |644| `multiple` | Tidak | Untuk tipe `string`, izinkan array string |

625| `min` / `max` | Tidak | Batas untuk tipe `number` |645| `min` / `max` | Tidak | Batas untuk tipe `number` |

626 646 

647Kecuali bidang `sensitive` dan daftar `multiple`, setiap bidang dari setiap plugin yang diaktifkan juga muncul sebagai baris di panel `/config`. Baris memerlukan Claude Code v2.1.269 atau lebih baru.

648 

627Setiap nilai tersedia untuk substitusi sebagai `${user_config.KEY}` di konfigurasi server MCP dan LSP serta perintah hook. Nilai non-sensitif juga dapat disubstitusi dalam konten skill dan agent. Semua nilai diekspor ke proses hook sebagai variabel lingkungan `CLAUDE_PLUGIN_OPTION_<KEY>`, di mana `<KEY>` adalah kunci opsi dengan huruf besar.649Setiap nilai tersedia untuk substitusi sebagai `${user_config.KEY}` di konfigurasi server MCP dan LSP serta perintah hook. Nilai non-sensitif juga dapat disubstitusi dalam konten skill dan agent. Semua nilai diekspor ke proses hook sebagai variabel lingkungan `CLAUDE_PLUGIN_OPTION_<KEY>`, di mana `<KEY>` adalah kunci opsi dengan huruf besar.

628 650 

629Bidang yang berjalan dalam shell menolak `${user_config.*}`: mensubstitusi nilai yang dikonfigurasi ke dalam perintah shell akan membiarkan shell menjalankan apa pun yang berisi nilai itu, jadi komponen gagal dengan [kesalahan](/docs/id/errors#plugin-command-references-user-config) sebagai gantinya. Setiap bidang yang ditolak memiliki cara alternatif untuk melewatkan nilai:651Bidang yang berjalan dalam shell menolak `${user_config.*}`: mensubstitusi nilai yang dikonfigurasi ke dalam perintah shell akan membiarkan shell menjalankan apa pun yang berisi nilai itu, jadi komponen gagal dengan [kesalahan](/docs/id/errors#plugin-command-references-user-config) sebagai gantinya. Setiap bidang yang ditolak memiliki cara alternatif untuk melewatkan nilai:


733| `${CLAUDE_PLUGIN_DATA}` | [Direktori persisten](#persistent-data-directory) yang bertahan pembaruan plugin, dibuat pada referensi pertama | Ketergantungan yang diinstal seperti `node_modules` atau lingkungan virtual Python, kode yang dihasilkan, dan cache |755| `${CLAUDE_PLUGIN_DATA}` | [Direktori persisten](#persistent-data-directory) yang bertahan pembaruan plugin, dibuat pada referensi pertama | Ketergantungan yang diinstal seperti `node_modules` atau lingkungan virtual Python, kode yang dihasilkan, dan cache |

734| `${CLAUDE_PROJECT_DIR}` | Akar proyek | Skrip dan file konfigurasi lokal proyek |756| `${CLAUDE_PROJECT_DIR}` | Akar proyek | Skrip dan file konfigurasi lokal proyek |

735 757 

736Ketiga-tiganya diekspor sebagai variabel lingkungan ke proses hook dan ke subproses server MCP dan LSP. Bidang mana yang mensubstitusi mereka secara inline tergantung pada komponen plugin:758Ketiga-tiganya diekspor sebagai variabel lingkungan ke proses hook dan ke subproses server MCP dan LSP. Mereka tidak ada dalam lingkungan perintah yang Claude jalankan melalui alat Bash, dalam sesi utama atau dalam subagent. Dalam konten plugin, tulis placeholder sebagai gantinya, dan Claude Code mensubstitusi jalur secara inline ketika memuat konten. Bidang mana yang mensubstitusi mereka secara inline tergantung pada komponen plugin:

737 759 

738| Komponen plugin | Bidang tempat placeholder diselesaikan |760| Komponen plugin | Bidang tempat placeholder diselesaikan |

739| :----------------------------- | :------------------------------------------ |761| :----------------------------- | :------------------------------------------ |


762}784}

763```785```

764 786 

765`${CLAUDE_PLUGIN_ROOT}` berubah ketika plugin diperbarui. Direktori versi sebelumnya tetap di disk untuk periode tenggang setelah pembaruan, tetapi perlakukan sebagai sementara dan jangan tulis status di sana. Lihat [plugin caching](#plugin-caching-and-file-resolution) untuk semantik pembersihan.787Untuk plugin yang disalin, `${CLAUDE_PLUGIN_ROOT}` berubah ketika plugin diperbarui. Direktori versi sebelumnya tetap di disk untuk periode tenggang setelah pembaruan, tetapi perlakukan sebagai sementara dan jangan tulis status di sana. Untuk plugin yang dimuat di tempat dari marketplace direktori lokal, variabel menunjuk ke direktori sumber yang stabil. Lihat [plugin caching](#plugin-caching-and-file-resolution) untuk plugin mana yang disalin dan untuk semantik pembersihan.

766 788 

767Ketika plugin diperbarui di tengah sesi, perintah hook, monitor, server MCP, dan server LSP terus menggunakan jalur versi sebelumnya. Jalankan `/reload-plugins` untuk beralih hook, server MCP, dan server LSP ke jalur baru; monitor memerlukan restart sesi. Dalam sesi tanpa terminal interaktif, reload meninggalkan server MCP plugin di jalur lama sampai sesi berikutnya.789Ketika plugin yang disalin diperbarui di tengah sesi, perintah hook, monitor, server MCP, dan server LSP terus menggunakan jalur versi sebelumnya. Jalankan `/reload-plugins` untuk beralih hook, server MCP, dan server LSP ke jalur baru; monitor memerlukan restart sesi. Dalam sesi tanpa terminal interaktif, reload meninggalkan server MCP plugin di jalur lama sampai sesi berikutnya.

768 790 

769Untuk plugin dengan sumber `command`, Claude Code [dapat memuat ulang plugin itu sendiri](/docs/id/plugin-marketplaces#when-claude-code-re-runs-the-command).791Untuk plugin dengan sumber `command`, Claude Code [dapat memuat ulang plugin itu sendiri](/docs/id/plugin-marketplaces#when-claude-code-re-runs-the-command).

770 792 


822***844***

823 845 

824<h2 id="plugin-caching-and-file-resolution">846<h2 id="plugin-caching-and-file-resolution">

825 Caching plugin dan resolusi file847 Plugin caching dan resolusi file

826</h2>848</h2>

827 849 

828Plugin ditentukan dalam salah satu dari dua cara:850Plugin ditentukan dalam salah satu dari tiga cara:

829 851 

830* Melalui `claude --plugin-dir` atau `claude --plugin-url`, untuk durasi sesi.852* Melalui `claude --plugin-dir` atau `claude --plugin-url`, untuk durasi sesi.

831* Melalui marketplace, diinstal untuk sesi mendatang.853* Melalui marketplace, diinstal untuk sesi mendatang.

854* Melalui akun claude.ai Anda, [disinkronkan](#synced-plugins) ke dalam `~/.claude/plugins/synced/`.

832 855 

833Untuk tujuan keamanan dan verifikasi, Claude Code menyalin plugin *marketplace* ke **plugin cache** lokal pengguna (`~/.claude/plugins/cache`) daripada menggunakannya di tempat, kecuali untuk [`command` sources dalam link mode](/docs/id/plugin-marketplaces#copy-mode-and-link-mode), yang Claude Code gunakan di tempat melalui link dalam entri cache.856Untuk tujuan keamanan dan verifikasi, Claude Code menyalin plugin *marketplace* ke **plugin cache** lokal pengguna (`~/.claude/plugins/cache`), kecuali plugin dimuat di tempat. Sebuah [`command` source dalam link mode](/docs/id/plugin-marketplaces#copy-mode-and-link-mode) dimuat di tempat melalui link dalam entri cache. Sebuah [relative path source](/docs/id/plugin-marketplaces#relative-paths) dalam marketplace yang ditambahkan dari direktori lokal dimuat di tempat dari folder marketplace.

857 

858Untuk plugin yang dimuat di tempat dari marketplace direktori-lokal, edit Anda ke direktori sumber berlaku pada awal sesi berikutnya atau `/reload-plugins`. Anda tidak perlu bump versi. Proses hook plugin dan server MCP dan LSP menerima `CLAUDE_PLUGIN_ROOT` yang menunjuk ke direktori sumber. Claude Code tidak menginstal [dependensi paket Node.js](#node-js-package-dependencies) plugin ke dalam direktori sumber. Instal mereka di sana sendiri, atau dari hook ke [direktori data persisten](#persistent-data-directory).

834 859 

835Untuk plugin yang disalin, setiap versi yang diinstal adalah direktori terpisah dalam cache, dikelompokkan berdasarkan marketplace dan plugin serta dinamai untuk versi yang diselesaikan, dengan salinannya sendiri dari file plugin dan [dependensi paket Node.js](#node-js-package-dependencies). Dependensi yang diselesaikan dari [release tag](/docs/id/plugin-dependencies#tag-plugin-releases-for-version-resolution) mendapatkan nama direktori dengan akhiran commit-SHA.860Untuk plugin yang disalin, setiap versi yang diinstal adalah direktori terpisah dalam cache, dikelompokkan berdasarkan marketplace dan plugin serta dinamai untuk versi yang diselesaikan, dengan salinannya sendiri dari file plugin dan [dependensi paket Node.js](#node-js-package-dependencies). Dependensi yang diselesaikan dari [release tag](/docs/id/plugin-dependencies#tag-plugin-releases-for-version-resolution) mendapatkan nama direktori dengan akhiran commit-SHA.

836 861 


853| `bun.lock` atau `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |878| `bun.lock` atau `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |

854| `npm-shrinkwrap.json` atau `package-lock.json` | `npm ci --ignore-scripts` |879| `npm-shrinkwrap.json` atau `package-lock.json` | `npm ci --ignore-scripts` |

855 880 

856Jika plugin berisi lebih dari satu lockfile ini, Claude Code menggunakan kecocokan pertama, memeriksa secara berurutan: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`. Claude Code melewati `yarn.lock` dan `pnpm-lock.yaml` karena Yarn dan pnpm mendukung hook konfigurasi waktu resolusi yang melewati `--ignore-scripts`.881Jika plugin berisi lebih dari satu lockfile ini, Claude Code menggunakan kecocokan pertama, memeriksa secara berurutan: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`.

882 

883Claude Code melewati install dalam dua kasus, masing-masing dengan perbaikannya sendiri:

884 

885* Jika plugin Anda hanya mengirimkan `yarn.lock` atau `pnpm-lock.yaml`, gantikan dengan lockfile npm.

886* Jika `bunfig.toml` berada di samping lockfile bun, hapus `bunfig.toml`, atau gantikan lockfile bun dengan lockfile npm.

857 887 

858Kirimkan lockfile npm untuk jangkauan terluas. Claude Code menjalankan package manager lockfile yang cocok dari PATH pengguna dan tidak kembali ke lockfile lain jika hilang. Untuk plugin yang didistribusikan melalui sumber npm, gunakan `npm-shrinkwrap.json`; npm mengecualikan `package-lock.json` dari paket yang dipublikasikan.888Kirimkan lockfile npm untuk jangkauan terluas. Claude Code menjalankan package manager lockfile yang cocok dari PATH pengguna dan tidak kembali ke lockfile lain jika hilang. Untuk plugin yang didistribusikan melalui sumber npm, gunakan `npm-shrinkwrap.json`; npm mengecualikan `package-lock.json` dari paket yang dipublikasikan.

859 889 


863* **No lifecycle scripts:** `--ignore-scripts` menjaga agar script `preinstall`, `install`, dan `postinstall` tidak berjalan, sehingga dependensi yang membangun modul native dalam script tersebut diunduh tetapi tidak dikompilasi selama install ini.893* **No lifecycle scripts:** `--ignore-scripts` menjaga agar script `preinstall`, `install`, dan `postinstall` tidak berjalan, sehingga dependensi yang membangun modul native dalam script tersebut diunduh tetapi tidak dikompilasi selama install ini.

864* **60-second timeout:** Claude Code menghentikan install yang berjalan lebih lama dan memperlakukannya sebagai gagal.894* **60-second timeout:** Claude Code menghentikan install yang berjalan lebih lama dan memperlakukannya sebagai gagal.

865 895 

866Mengambil plugin sumber npm itu sendiri menjalankan `npm install` dengan lifecycle scripts diaktifkan, sebelum install dependensi ini berjalan.896Claude Code mengambil plugin sumber npm sebelum install dependensi ini, dan tidak ada script install paket sendiri yang berjalan selama pengambilan. Lihat [npm packages](/docs/id/plugin-marketplaces#npm-packages).

867 897 

868Install yang gagal atau dilewati tidak pernah memblokir plugin. Ketika install gagal, atau Claude Code melewati lockfile yarn atau pnpm, Claude Code mencatat alasannya sebagai peringatan dalam [debug output](#debugging-commands). Plugin dengan `package.json` dan tidak ada lockfile dilewati tanpa entri log. Install yang time-out dapat meninggalkan pohon `node_modules` parsial dalam salinan cache.898Install yang gagal atau dilewati tidak pernah memblokir plugin. Ketika install gagal, atau Claude Code melewati karena lockfile yarn atau pnpm atau `bunfig.toml` di samping lockfile bun, Claude Code mencatat alasannya sebagai peringatan dalam [debug output](#debugging-commands). Plugin dengan `package.json` dan tidak ada lockfile dilewati tanpa entri log. Install yang time-out dapat meninggalkan pohon `node_modules` parsial dalam salinan cache.

869 899 

870Anda tidak dapat mematikan install otomatis; tidak ada pengaturan atau variabel lingkungan yang menonaktifkannya. Di jaringan terbatas, lihat [persyaratan akses jaringan](/docs/id/network-config#network-access-requirements) untuk host yang diizinkan.900Anda tidak dapat mematikan install otomatis; tidak ada pengaturan atau variabel lingkungan yang menonaktifkannya. Di jaringan terbatas, lihat [persyaratan akses jaringan](/docs/id/network-config#network-access-requirements) untuk host yang diizinkan.

871 901 


1061Perintah ini menerima opsi-opsi berikut:1091Perintah ini menerima opsi-opsi berikut:

1062 1092 

1063| Opsi | Deskripsi | Default |1093| Opsi | Deskripsi | Default |

1064| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |1094| :-------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |

1065| `-s, --scope <scope>` | Cakupan instalasi: `user`, `project`, atau `local` | `user` |1095| `-s, --scope <scope>` | Cakupan instalasi: `user`, `project`, atau `local` | `user` |

1066| `--config <key=value>` | Atur opsi [`userConfig`](#user-configuration) yang dideklarasikan dalam manifest plugin. Ulangi flag untuk mengatur beberapa opsi | |1096| `--config <key=value>` | Atur opsi [`userConfig`](#user-configuration) yang dideklarasikan dalam manifest plugin. Ulangi flag untuk mengatur beberapa opsi | |

1067| `-y, --yes` | Terima perintah yang dideklarasikan marketplace plugin, tanpa prompt konfirmasi: perintah yang menghasilkan plugin dengan [sumber `command`](/docs/id/plugin-marketplaces#command-sources), atau [`headersHelper`](/docs/id/plugin-marketplaces#authenticate-archive-downloads) yang mengautentikasi unduhan arsip. Menerima `headersHelper` memerlukan Claude Code v2.1.238 atau lebih baru. Claude Code masih mencetak perintah terlebih dahulu. Diperlukan ketika stdin atau stdout bukan TTY. Tidak berpengaruh di dalam sesi Claude Code, jadi jalankan perintah dari terminal Anda sendiri | |1097| `-y, --yes` | Terima perintah yang dideklarasikan marketplace plugin, tanpa prompt konfirmasi: perintah yang menghasilkan plugin dengan [sumber `command`](/docs/id/plugin-marketplaces#command-sources), atau [`headersHelper`](/docs/id/plugin-marketplaces#authenticate-archive-downloads) yang mengautentikasi unduhan arsip. Menerima `headersHelper` memerlukan Claude Code v2.1.238 atau lebih baru. Claude Code masih mencetak perintah terlebih dahulu. Diperlukan ketika stdin atau stdout bukan TTY, kecuali Anda melewatkan `--accept-command`. Tidak berpengaruh di dalam sesi Claude Code, jadi jalankan perintah dari terminal Anda sendiri | |

1098| `--accept-command <sha256>` | Terima perintah yang dideklarasikan marketplace yang `sha256`-nya run [`--json`](#plugin-json-result) sebelumnya melaporkan dalam `shownCommand`, sebagai pengganti `-y`. Penerimaan berlaku untuk perintah, plugin, dan katalog marketplace yang tepat. Jika salah satu dari mereka berubah sejak perintah ditampilkan, termasuk melalui refresh marketplace run itu sendiri, Claude Code tidak menerima digest dan menampilkan perintah lagi. Tidak dapat digabungkan dengan `-y`. Tidak berpengaruh di dalam sesi Claude Code, jadi jalankan perintah dari terminal Anda sendiri. Memerlukan Claude Code v2.1.271 atau lebih baru | |

1068| `--json` | Cetak hasil sebagai satu objek JSON pada baris terakhir stdout alih-alih pesan yang dapat dibaca manusia, untuk digunakan dalam skrip. Lihat [format hasil JSON](#plugin-json-result). Memerlukan Claude Code v2.1.268 atau lebih baru | |1099| `--json` | Cetak hasil sebagai satu objek JSON pada baris terakhir stdout alih-alih pesan yang dapat dibaca manusia, untuk digunakan dalam skrip. Lihat [format hasil JSON](#plugin-json-result). Memerlukan Claude Code v2.1.268 atau lebih baru | |

1069| `-h, --help` | Tampilkan bantuan untuk perintah | |1100| `-h, --help` | Tampilkan bantuan untuk perintah | |

1070 1101 


1078 1109 

1079Field lain, seperti `pluginId`, `scope`, dan `failureCode`, muncul hanya ketika berlaku. Opsi `--json` pada `plugin uninstall`, `plugin update`, `plugin enable`, dan `plugin disable` mencetak objek yang sama dengan field subperintah tersebut. Kesalahan penggunaan, seperti `--scope` yang tidak valid, tidak mencetak baris hasil dan keluar 1 dengan alasan di stderr.1110Field lain, seperti `pluginId`, `scope`, dan `failureCode`, muncul hanya ketika berlaku. Opsi `--json` pada `plugin uninstall`, `plugin update`, `plugin enable`, dan `plugin disable` mencetak objek yang sama dengan field subperintah tersebut. Kesalahan penggunaan, seperti `--scope` yang tidak valid, tidak mencetak baris hasil dan keluar 1 dengan alasan di stderr.

1080 1111 

1112Ketika run menampilkan perintah yang dideklarasikan marketplace dan tidak menjalankannya, hasil `failed` juga membawa objek `shownCommand` yang field-nya mencakup perintah seperti yang ditampilkan, plugin yang dimilikinya, dan `sha256` perintah. Untuk menerima perintah yang tepat, jalankan kembali dengan `sha256` itu sebagai `--accept-command`. Memerlukan Claude Code v2.1.271 atau lebih baru.

1113 

1114Jika `shownCommand.acceptCommandMatched` adalah `false`, digest yang Anda lewatkan tidak cocok dengan perintah yang sekarang ditampilkan. Tampilkan perintah itu kepada seseorang sebelum melewatkan `sha256`-nya.

1115 

1081Contoh-contoh ini menunjukkan invokasi umum:1116Contoh-contoh ini menunjukkan invokasi umum:

1082 1117 

1083```bash theme={null}1118```bash theme={null}


1159 1194 

1160Perintah ini mengambil argumen-argumen berikut:1195Perintah ini mengambil argumen-argumen berikut:

1161 1196 

1162* `<plugin>`: Nama plugin atau `plugin-name@marketplace-name`1197* `<plugin>`: Nama plugin, `plugin-name@marketplace-name`, atau `plugin-name@synced` untuk [plugin yang disinkronkan dari claude.ai](#synced-plugins)

1163 1198 

1164Perintah ini menerima opsi-opsi berikut:1199Perintah ini menerima opsi-opsi berikut:

1165 1200 


1173 plugin disable1208 plugin disable

1174</h3>1209</h3>

1175 1210 

1176Nonaktifkan plugin tanpa mencopot instalasinya. Ketika target diinstal dari marketplace, perintah gagal jika plugin yang diaktifkan lain [bergantung pada](/docs/id/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies) itu. Pesan kesalahan mencakup perintah berantai yang menonaktifkan setiap plugin yang bergantung padanya terlebih dahulu.1211Nonaktifkan plugin tanpa mencopot instalasinya.

1212 

1213Ketika target diinstal dari marketplace, perintah gagal jika plugin yang diaktifkan lain [bergantung pada](/docs/id/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies) itu. Pesan kesalahan mencakup perintah berantai yang menonaktifkan setiap plugin yang bergantung padanya terlebih dahulu.

1214 

1215Untuk [plugin yang disinkronkan](#synced-plugins) yang organisasi Anda perlukan, perintah gagal dan tidak menyimpan apa pun.

1177 1216 

1178```bash theme={null}1217```bash theme={null}

1179claude plugin disable [plugin] [options]1218claude plugin disable [plugin] [options]


1181 1220 

1182Perintah ini mengambil argumen-argumen berikut:1221Perintah ini mengambil argumen-argumen berikut:

1183 1222 

1184* `[plugin]`: Nama plugin atau `plugin-name@marketplace-name`. Opsional saat menggunakan `--all`1223* `[plugin]`: Nama plugin, `plugin-name@marketplace-name`, atau `plugin-name@synced` untuk [plugin yang disinkronkan dari claude.ai](#synced-plugins). Opsional saat menggunakan `--all`

1185 1224 

1186Perintah ini menerima opsi-opsi berikut:1225Perintah ini menerima opsi-opsi berikut:

1187 1226 


1209Perintah ini menerima opsi-opsi berikut:1248Perintah ini menerima opsi-opsi berikut:

1210 1249 

1211| Opsi | Deskripsi | Default |1250| Opsi | Deskripsi | Default |

1212| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |1251| :-------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |

1213| `-s, --scope <scope>` | Cakupan untuk diperbarui: `user`, `project`, `local`, atau `managed` | `user` |1252| `-s, --scope <scope>` | Cakupan untuk diperbarui: `user`, `project`, `local`, atau `managed` | `user` |

1214| `-y, --yes` | Terima perintah yang dideklarasikan marketplace plugin, tanpa prompt konfirmasi: perintah yang menghasilkan plugin dengan [sumber `command`](/docs/id/plugin-marketplaces#command-sources), atau [`headersHelper`](/docs/id/plugin-marketplaces#authenticate-archive-downloads) yang mengautentikasi unduhan arsip. Menerima `headersHelper` memerlukan Claude Code v2.1.238 atau lebih baru. Claude Code masih mencetak perintah terlebih dahulu. Diperlukan ketika stdin atau stdout bukan TTY. Tidak berpengaruh di dalam sesi Claude Code, jadi jalankan perintah dari terminal Anda sendiri | |1253| `-y, --yes` | Terima perintah yang dideklarasikan marketplace plugin, tanpa prompt konfirmasi: perintah yang menghasilkan plugin dengan [sumber `command`](/docs/id/plugin-marketplaces#command-sources), atau [`headersHelper`](/docs/id/plugin-marketplaces#authenticate-archive-downloads) yang mengautentikasi unduhan arsip. Menerima `headersHelper` memerlukan Claude Code v2.1.238 atau lebih baru. Claude Code masih mencetak perintah terlebih dahulu. Diperlukan ketika stdin atau stdout bukan TTY, kecuali Anda melewatkan `--accept-command`. Tidak berpengaruh di dalam sesi Claude Code, jadi jalankan perintah dari terminal Anda sendiri | |

1254| `--accept-command <sha256>` | Terima perintah yang dideklarasikan marketplace yang `sha256`-nya run [`--json`](#plugin-json-result) sebelumnya melaporkan dalam `shownCommand`, sebagai pengganti `-y`. Penerimaan berlaku untuk perintah, plugin, dan katalog marketplace yang tepat. Jika salah satu dari mereka berubah sejak perintah ditampilkan, termasuk melalui refresh marketplace run itu sendiri, Claude Code tidak menerima digest dan menampilkan perintah lagi. Tidak dapat digabungkan dengan `-y`. Tidak berpengaruh di dalam sesi Claude Code, jadi jalankan perintah dari terminal Anda sendiri. Memerlukan Claude Code v2.1.271 atau lebih baru | |

1215| `--json` | Cetak hasil sebagai satu objek JSON pada baris terakhir stdout, dalam [format yang sama seperti `plugin install --json`](#plugin-json-result). Memerlukan Claude Code v2.1.268 atau lebih baru | |1255| `--json` | Cetak hasil sebagai satu objek JSON pada baris terakhir stdout, dalam [format yang sama seperti `plugin install --json`](#plugin-json-result). Memerlukan Claude Code v2.1.268 atau lebih baru | |

1216| `-h, --help` | Tampilkan bantuan untuk perintah | |1256| `-h, --help` | Tampilkan bantuan untuk perintah | |

1217 1257 


1242Dalam sesi interaktif, `/plugin list` mencetak daftar serupa secara inline, tetapi mencakup hanya plugin yang diinstal marketplace:1282Dalam sesi interaktif, `/plugin list` mencetak daftar serupa secara inline, tetapi mencakup hanya plugin yang diinstal marketplace:

1243 1283 

1244* Plugin yang dimuat dari direktori skills muncul di antarmuka `/plugin` dan dalam `claude plugin list`, tetapi tidak dalam output `/plugin list` inline.1284* Plugin yang dimuat dari direktori skills muncul di antarmuka `/plugin` dan dalam `claude plugin list`, tetapi tidak dalam output `/plugin list` inline.

1245* Pada Claude Code v2.1.239 atau lebih baru, [plugin yang disinkronkan dari claude.ai](#synced-plugins) muncul dalam `claude plugin list` ketika Anda menjalankannya di lingkungan tempat sesi yang disinkronkan mengunduhnya. Mereka tidak muncul dalam output `/plugin list` inline.1285* [Plugin yang disinkronkan dari claude.ai](#synced-plugins) muncul dalam `claude plugin list` pada Claude Code v2.1.239 atau lebih baru dan di antarmuka `/plugin`, tetapi tidak dalam output `/plugin list` inline.

1246* Plugin yang dimuat untuk sesi dengan `--plugin-dir` atau `--plugin-url` muncul di antarmuka `/plugin`, dan dalam `claude plugin list` hanya ketika flag yang sama mendahului subperintah, seperti dalam `claude --plugin-dir <dir> plugin list`. Hanya nama flag lokasi mereka, jadi `claude plugin list` tanpa kualifikasi tidak dapat menemukannya, tidak seperti plugin yang disinkronkan dan plugin direktori skills, yang direktorinya tetap Claude Code pindai.1286* Plugin yang dimuat untuk sesi dengan `--plugin-dir` atau `--plugin-url` muncul di antarmuka `/plugin`, dan dalam `claude plugin list` hanya ketika flag yang sama mendahului subperintah, seperti dalam `claude --plugin-dir <dir> plugin list`. Hanya nama flag lokasi mereka, jadi `claude plugin list` tanpa kualifikasi tidak dapat menemukannya, tidak seperti plugin yang disinkronkan dan plugin direktori skills, yang direktorinya tetap Claude Code pindai.

1247 1287 

1248Bentuk interaktif menerima `--enabled` atau `--disabled` untuk menampilkan hanya plugin dalam status itu, dan `ls` sebagai singkatan untuk `list`.1288Bentuk interaktif menerima `--enabled` atau `--disabled` untuk menampilkan hanya plugin dalam status itu, dan `ls` sebagai singkatan untuk `list`.


1520 Manajemen versi1560 Manajemen versi

1521</h3>1561</h3>

1522 1562 

1523Claude Code menggunakan versi plugin sebagai cache key yang menentukan apakah update tersedia. Ketika Anda menjalankan `/plugin update` atau auto-update aktif, Claude Code menghitung versi saat ini dan melewati update jika cocok dengan yang sudah terinstal.1563Claude Code menggunakan versi plugin sebagai cache key yang menentukan apakah update tersedia. Ketika Anda menjalankan `/plugin update` atau auto-update aktif, Claude Code menghitung versi saat ini dan melewati update jika cocok dengan yang sudah terinstal. Plugin yang [dimuat di tempat](#plugin-caching-and-file-resolution) dari marketplace direktori lokal memuat file sumber saat ini di setiap awal sesi, apa pun yang dikatakan string versinya.

1524 1564 

1525Untuk setiap tipe sumber kecuali `command`, Claude Code menyelesaikan versi dari yang pertama dari ini yang diatur:1565Untuk setiap tipe sumber kecuali `command`, Claude Code menyelesaikan versi dari yang pertama dari ini yang diatur:

1526 1566 


15282. Field `version` dalam entri marketplace plugin dalam `marketplace.json`15682. Field `version` dalam entri marketplace plugin dalam `marketplace.json`

15293. SHA commit git dari sumber plugin, untuk sumber `github`, `url`, `git-subdir`, dan relative-path dalam marketplace yang di-host git15693. SHA commit git dari sumber plugin, untuk sumber `github`, `url`, `git-subdir`, dan relative-path dalam marketplace yang di-host git

15304. Digest SHA-256, untuk [sumber `archive`](/docs/id/plugin-marketplaces#zip-archives): pin `sha256` dalam entri marketplace, atau digest dari file yang diunduh ketika Anda tidak menetapkan pin. Claude Code mempersingkatnya menjadi 12 karakter pertama15704. Digest SHA-256, untuk [sumber `archive`](/docs/id/plugin-marketplaces#zip-archives): pin `sha256` dalam entri marketplace, atau digest dari file yang diunduh ketika Anda tidak menetapkan pin. Claude Code mempersingkatnya menjadi 12 karakter pertama

15315. `unknown`, untuk sumber `npm` atau direktori lokal yang tidak berada dalam repositori git15715. `unknown`, untuk sumber `npm` atau direktori lokal yang tidak berada dalam repositori git. Claude Code tidak mengambil versi dari repositori yang menutup path instalasi, seperti `~/.claude` yang dikelola git

1532 1572 

1533Untuk [sumber `command`](/docs/id/plugin-marketplaces#command-sources), Claude Code selalu menurunkan versi dari apa yang dihasilkan perintah: hash konten 12-karakter sendiri, atau ditambahkan ke versi `plugin.json` sebagai `<version>-<hash>` ketika satu diatur. Claude Code mengabaikan field `version` entri marketplace untuk sumber command. Perintah yang output hash-nya berubah oleh karena itu menghasilkan versi baru, bahkan ketika string versi yang ditulis tetap sama. Dalam [link mode](/docs/id/plugin-marketplaces#copy-mode-and-link-mode), hash mencakup path nyata direktori yang dicetak dan entri tingkat atasnya daripada konten file.1573Untuk [sumber `command`](/docs/id/plugin-marketplaces#command-sources), Claude Code selalu menurunkan versi dari apa yang dihasilkan perintah: hash konten 12-karakter sendiri, atau ditambahkan ke versi `plugin.json` sebagai `<version>-<hash>` ketika satu diatur. Claude Code mengabaikan field `version` entri marketplace untuk sumber command. Perintah yang output hash-nya berubah oleh karena itu menghasilkan versi baru, bahkan ketika string versi yang ditulis tetap sama. Dalam [link mode](/docs/id/plugin-marketplaces#copy-mode-and-link-mode), hash mencakup path nyata direktori yang dicetak dan entri tingkat atasnya daripada konten file.

1534 1574 

1535Untuk tipe sumber tersebut, ini memberi Anda tiga cara untuk membuat versi plugin:1575Untuk tipe sumber tersebut, ini memberi Anda tiga cara untuk membuat versi plugin:

1536 1576 

1537| Pendekatan | Cara | Perilaku update | Terbaik untuk |1577| Pendekatan | Cara | Perilaku update | Terbaik untuk |

1538| :------------------- | :-------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------- |1578| :------------------- | :-------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------- |

1539| **Versi eksplisit** | Atur `"version": "2.1.0"` dalam `plugin.json` | Pengguna mendapatkan update hanya ketika Anda menaikkan field ini. Mendorong commit baru tanpa menaikkannya tidak berpengaruh, dan `/plugin update` melaporkan "already at the latest version". | Plugin yang dipublikasikan dengan siklus rilis stabil |1579| **Versi eksplisit** | Atur `"version": "2.1.0"` dalam `plugin.json` | Pengguna mendapatkan update hanya ketika Anda menaikkan field ini. Mendorong commit baru tanpa menaikkannya tidak berpengaruh, dan `/plugin update` melaporkan "already at the latest version". Untuk plugin yang [dimuat di tempat](#plugin-caching-and-file-resolution), konten baru dimuat bagaimanapun. | Plugin yang dipublikasikan dengan siklus rilis stabil |

1540| **Versi commit-SHA** | Hilangkan `version` dari `plugin.json` dan entri marketplace | Pengguna mendapatkan update kapan pun commit yang diselesaikan sumber berubah | Plugin internal atau tim dalam pengembangan aktif |1580| **Versi commit-SHA** | Hilangkan `version` dari `plugin.json` dan entri marketplace | Pengguna mendapatkan update kapan pun commit yang diselesaikan sumber berubah | Plugin internal atau tim dalam pengembangan aktif |

1541| **Versi digest** | Gunakan [sumber `archive`](/docs/id/plugin-marketplaces#zip-archives) dan hilangkan `version` dari `plugin.json` dan entri marketplace | Dengan pin `sha256`, pengguna mendapatkan update ketika Anda mengubah pin. Tanpa satu, pengguna mendapatkan update kapan pun byte file zip yang di-host berubah | Plugin yang dipublikasikan sebagai file zip ke server statis atau repositori artefak |1581| **Versi digest** | Gunakan [sumber `archive`](/docs/id/plugin-marketplaces#zip-archives) dan hilangkan `version` dari `plugin.json` dan entri marketplace | Dengan pin `sha256`, pengguna mendapatkan update ketika Anda mengubah pin. Tanpa satu, pengguna mendapatkan update kapan pun byte file zip yang di-host berubah | Plugin yang dipublikasikan sebagai file zip ke server statis atau repositori artefak |

1542 1582 

Details

88 88 

89Setiap model memiliki cache-nya sendiri. Beralih dengan [`/model`](/docs/id/model-config#setting-your-model) berarti permintaan berikutnya membaca seluruh riwayat percakapan tanpa cache hits, meskipun kontennya identik.89Setiap model memiliki cache-nya sendiri. Beralih dengan [`/model`](/docs/id/model-config#setting-your-model) berarti permintaan berikutnya membaca seluruh riwayat percakapan tanpa cache hits, meskipun kontennya identik.

90 90 

91Ketika Anda menjalankan `/model` di terminal, Claude Code meminta Anda untuk mengonfirmasi pergantian hanya saat cache masih hangat. Cache tetap hangat selama satu [cache TTL](#cache-lifetime) setelah Claude Code terakhir mengirim permintaan dalam percakapan ini atau Claude terakhir merespons. Setelah waktu itu berlalu, cache telah kedaluwarsa, jadi Claude Code beralih tanpa bertanya.91Ketika Anda menjalankan `/model` di terminal, Claude Code meminta Anda untuk mengonfirmasi pergantian hanya saat cache masih hangat dan model baru bukan yang menghasilkan respons terakhir. Cache tetap hangat selama satu [cache TTL](#cache-lifetime) setelah Claude Code terakhir mengirim permintaan dalam percakapan ini atau Claude terakhir merespons. Setelah waktu itu berlalu, cache telah kedaluwarsa, jadi Claude Code beralih tanpa bertanya.

92 92 

93Sebelum v2.1.238, Claude Code tidak memeriksa cache TTL dan bertanya bahkan setelah cache telah kedaluwarsa.93Sebelum v2.1.238, Claude Code tidak memeriksa cache TTL dan bertanya bahkan setelah cache telah kedaluwarsa.

94 94 


264 Mengubah gaya output264 Mengubah gaya output

265</h3>265</h3>

266 266 

267Ketika Anda beralih [gaya output](/docs/id/output-styles) di tengah sesi dengan `/config` atau pengaturan `outputStyle`, Claude menggunakan gaya baru mulai dari pesan Anda berikutnya. Claude Code mengirimkan instruksi gaya baru sebagai pesan dalam percakapan, jadi permintaan itu masih membaca system prompt dan percakapan sebelumnya dari cache.267Ketika Anda beralih [gaya output](/docs/id/output-styles) di tengah sesi dengan [`/output-style`](/docs/id/output-styles#change-your-output-style), `/config`, atau pengaturan `outputStyle`, Claude menggunakan gaya baru mulai dari pesan Anda berikutnya. Claude Code mengirimkan instruksi gaya baru sebagai pesan dalam percakapan, jadi permintaan itu masih membaca system prompt dan percakapan sebelumnya dari cache.

268 268 

269Sebelum v2.1.251, perubahan gaya di tengah sesi mempertahankan cache tetapi tidak berlaku sampai Anda menjalankan `/clear` atau memulai sesi baru.269Sebelum v2.1.251, perubahan gaya di tengah sesi mempertahankan cache tetapi tidak berlaku sampai Anda menjalankan `/clear` atau memulai sesi baru.

270 270 


294 294 

295Ketika Anda [melanjutkan sesi](/docs/id/sessions#resume-a-session), Claude Code mengirimkan seluruh percakapan lagi, dan permintaan membaca dari cache bagian mana pun dari prefiks yang tidak berubah dan masih dalam [masa pakai cache](#cache-lifetime). Tabel lapisan di bagian atas halaman ini mengatakan apa yang berubah di setiap lapisan.295Ketika Anda [melanjutkan sesi](/docs/id/sessions#resume-a-session), Claude Code mengirimkan seluruh percakapan lagi, dan permintaan membaca dari cache bagian mana pun dari prefiks yang tidak berubah dan masih dalam [masa pakai cache](#cache-lifetime). Tabel lapisan di bagian atas halaman ini mengatakan apa yang berubah di setiap lapisan.

296 296 

297Prompt sistem akan berubah setelah [upgrade Claude Code](#upgrading-claude-code) atau dengan teks [`--append-system-prompt`](/docs/id/cli-reference#system-prompt-flags) yang berbeda pada resume. Secara default, percakapan yang dilanjutkan mempertahankan prompt sistem yang dimulainya, sehingga riwayatnya masih berada di belakang prompt yang sama, dan perubahan berlaku setelah percakapan dikompakkan atau dalam percakapan baru. [Bendera prompt sistem dalam percakapan yang dilanjutkan](/docs/id/cli-reference#system-prompt-flags-in-resumed-conversations) mencakup `--system-prompt-snapshot off` dan mode bare, di mana ini tidak berlaku.297Prompt sistem akan berubah setelah [upgrade Claude Code](#upgrading-claude-code) atau dengan teks [`--append-system-prompt`](/docs/id/cli-reference#system-prompt-flags) yang berbeda pada resume. Secara default, percakapan yang dilanjutkan mempertahankan prompt sistem yang dimulainya, sehingga riwayatnya masih berada di belakang prompt yang sama, dan perubahan berlaku setelah percakapan dikompakkan atau dalam percakapan baru. [Bendera prompt sistem dalam percakapan yang dilanjutkan](/docs/id/cli-reference#system-prompt-flags-in-resumed-conversations) mencakup kasus di mana Claude Code membangun kembali prompt pada setiap permintaan sebagai gantinya.

298 298 

299<h2 id="cache-lifetime">299<h2 id="cache-lifetime">

300 Cache lifetime300 Cache lifetime

remote-control.md +19 −22

Details

46 46 

47<Tabs>47<Tabs>

48 <Tab title="Mode server">48 <Tab title="Mode server">

49 Navigasikan ke direktori proyek Anda dan jalankan:49 Di direktori proyek Anda, jalankan:

50 50 

51 ```bash theme={null}51 ```bash theme={null}

52 claude remote-control52 claude remote-control


132 Periksa status koneksi132 Periksa status koneksi

133</h3>133</h3>

134 134 

135Dalam sesi terminal interaktif, indikator `/rc active` menunjukkan saat koneksi aktif, dan disembunyikan jika terminal terlalu sempit untuk menampilkannya. Dengan [rendering fullscreen](/docs/id/fullscreen) itu berada di akhir baris direktori kerja dalam header startup, dan tanpanya, di footer di bawah kotak input.135Dalam sesi interaktif, saat Remote Control terhubung, terminal menampilkan indikator `/rc active` yang menautkan ke sesi di claude.ai. Indikator disembunyikan ketika terminal terlalu sempit untuk menampilkannya. Untuk melihat URL sesi dan kode QR untuk [terhubung dari perangkat lain](#connect-from-another-device), jalankan `/remote-control` lagi untuk membuka panel status. Panel juga memungkinkan Anda memutuskan sambungan Remote Control sementara sesi lokal Anda terus berjalan.

136 136 

137Teks indikator adalah tautan ke sesi di claude.ai. Jalankan `/remote-control` lagi untuk membuka panel status dengan URL sesi dan kode QR untuk [terhubung dari perangkat lain](#connect-from-another-device). Ketika indikator berada di footer, Anda juga dapat membuka panel dengan memilih indikator dengan tombol panah bawah dan menekan Enter. Panel juga menawarkan opsi putus sambungan, yang mematikan Remote Control sementara sesi lokal Anda terus berjalan di terminal.137<span id="session-ended-elsewhere" />Jika koneksi gagal dalam sesi interaktif, indikator berubah untuk menunjukkan kegagalan, dan Claude Code menampilkan alasan dalam notifikasi dan menambahkannya ke percakapan. Jalankan `/remote-control` untuk terhubung kembali, kecuali alasan mengatakan sesi berubah di tempat lain:

138 138 

139Jika koneksi gagal, Claude Code menampilkan notifikasi dengan alasan kegagalan, menambahkan baris peringatan dengan alasan ke percakapan, dan mengalihkan indikator ke status kegagalan yang tetap berada di tempat. Untuk terhubung kembali, jalankan `/remote-control`, kecuali [alasan mengatakan sesi diambil alih atau berakhir di tempat lain, atau server tidak dapat menemukannya](#session-ended-elsewhere).139* **Koneksi lain mengambil alih sesi ini**: perangkat lain atau sesi Claude Code sekarang memilikinya. Jalankan `/remote-control` hanya jika Anda ingin mengambilnya kembali.

140 140* **Sesi ini diakhiri atau diarsipkan dari perangkat atau aplikasi lain**: jalankan `/remote-control` hanya jika Anda menginginkannya kembali. Claude Code membuka kembali sesi yang diarsipkan.

141<span id="session-ended-elsewhere" />Baca alasan sebelum Anda terhubung kembali. Ketika sesi diambil alih atau berakhir dari perangkat, aplikasi, atau sesi Claude Code lain, atau server tidak dapat menemukannya, alasan mengatakan yang mana, dan Claude Code menghilangkan saran biasanya untuk menjalankan `/remote-control`:141* **Server tidak lagi melaporkan sesi ini**: mungkin telah dihapus dari perangkat atau aplikasi lain.

142 

143* **Perangkat lain atau sesi Claude Code mengambil alih sesi**: jalankan `/remote-control` hanya jika Anda ingin mengambilnya kembali dari perangkat itu.

144* **Anda mengakhiri atau mengarsipkan sesi dari perangkat atau aplikasi lain**: jalankan `/remote-control` hanya jika Anda menginginkannya kembali; Claude Code membuka kembali sesi yang diarsipkan.

145* **Server tidak dapat menemukan sesi**: mungkin telah dihapus dari perangkat atau aplikasi lain.

146 142 

147<h3 id="session-url-reminders">143<h3 id="session-url-reminders">

148 Pengingat URL sesi144 Pengingat URL sesi


178 174 

179Ketika Anda mengganti nama sesi dari claude.ai atau aplikasi Claude, Claude Code juga memperbarui judul lokal yang ditampilkan di `claude --resume`. Claude Code menerapkan penggantian nama yang sama ke nama sesi yang ditampilkan di bilah prompt, dan dalam daftar `claude agents` ketika sesi [berjalan di latar belakang](/docs/id/agent-view). Sebelum v2.1.221, penggantian nama dari daftar sesi di claude.ai atau di aplikasi Claude hanya memperbarui judul, dan CLI menyimpan nama sesi sebelumnya; `/rename`, yang berjalan di CLI itu sendiri, menetapkan nama pada versi apa pun.175Ketika Anda mengganti nama sesi dari claude.ai atau aplikasi Claude, Claude Code juga memperbarui judul lokal yang ditampilkan di `claude --resume`. Claude Code menerapkan penggantian nama yang sama ke nama sesi yang ditampilkan di bilah prompt, dan dalam daftar `claude agents` ketika sesi [berjalan di latar belakang](/docs/id/agent-view). Sebelum v2.1.221, penggantian nama dari daftar sesi di claude.ai atau di aplikasi Claude hanya memperbarui judul, dan CLI menyimpan nama sesi sebelumnya; `/rename`, yang berjalan di CLI itu sendiri, menetapkan nama pada versi apa pun.

180 176 

181Jika Anda belum memiliki aplikasi Claude, gunakan perintah `/mobile` di dalam Claude Code untuk menampilkan kode QR unduhan untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) atau [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude).177Jika Anda belum memiliki aplikasi Claude, jalankan `/mobile` di dalam Claude Code untuk menampilkan kode QR untuk [claude.ai/mobile](https://claude.ai/mobile), yang membuka app store yang tepat untuk ponsel Anda.

182 178 

183<h3 id="what-connected-devices-see">179<h3 id="what-connected-devices-see">

184 Apa yang dilihat perangkat yang terhubung180 Apa yang dilihat perangkat yang terhubung


188 184 

189* **Pemadatan dan `/clear`**: saat Claude Code [memadatkan percakapan](/docs/id/context-window#what-survives-compaction), perangkat yang terhubung menampilkan kemajuan dan kemudian di mana percakapan dipadatkan. Ketika Anda menjalankan `/clear`, percakapan direset pada perangkat yang terhubung juga.185* **Pemadatan dan `/clear`**: saat Claude Code [memadatkan percakapan](/docs/id/context-window#what-survives-compaction), perangkat yang terhubung menampilkan kemajuan dan kemudian di mana percakapan dipadatkan. Ketika Anda menjalankan `/clear`, percakapan direset pada perangkat yang terhubung juga.

190* **Beralih percakapan dengan `/resume`**: perangkat yang terhubung tidak menerima judul percakapan yang dialihkan atau riwayat sebelumnya, tetapi pesan baru di kedua arah pergi ke dan dari percakapan mana pun yang terbuka di terminal Anda. Untuk bekerja pada percakapan asli dari perangkat lagi, jalankan `/resume` di terminal Anda dan beralih kembali ke itu.186* **Beralih percakapan dengan `/resume`**: perangkat yang terhubung tidak menerima judul percakapan yang dialihkan atau riwayat sebelumnya, tetapi pesan baru di kedua arah pergi ke dan dari percakapan mana pun yang terbuka di terminal Anda. Untuk bekerja pada percakapan asli dari perangkat lagi, jalankan `/resume` di terminal Anda dan beralih kembali ke itu.

191* **Menarik sesi dengan `/teleport`**: ketika Anda menarik sesi [Claude Code di web](/docs/id/claude-code-on-the-web#from-web-to-terminal) ke terminal Anda dengan `/teleport`, perangkat yang terhubung tidak menerima riwayat percakapan yang ditarik sebelumnya. Pesan baru di kedua arah pergi ke dan dari percakapan yang ditarik, yang sekarang adalah yang terbuka di terminal Anda.187* **Menarik sesi dengan `/teleport`**: ketika Anda menarik sesi [cloud](/docs/id/claude-code-on-the-web#from-cloud-to-terminal) ke terminal Anda dengan `/teleport`, perangkat yang terhubung tidak menerima riwayat percakapan yang ditarik sebelumnya. Pesan baru di kedua arah pergi ke dan dari percakapan yang ditarik, yang sekarang adalah yang terbuka di terminal Anda.

192* **Pesan dari sesi lain Anda**: dengan [pesan lintas sesi](/docs/id/cross-session-messaging), koneksi yang sama membawa pesan antara sesi Anda sendiri di mesin yang berbeda dan dari sesi [Claude Code di web](/docs/id/claude-code-on-the-web) Anda, melalui server Anthropic seperti sisa lalu lintas Remote Control. [Pesan sesi di mesin lain](/docs/id/cross-session-messaging#message-sessions-on-other-machines) mencakup aturan pengiriman dan [Kontrol pesan masuk](/docs/id/cross-session-messaging#control-inbound-messages) mencakup kontrol masuk. Memerlukan Claude Code v2.1.224 atau lebih baru.188* **Pesan dari sesi lain Anda**: dengan [pesan lintas sesi](/docs/id/cross-session-messaging), koneksi yang sama membawa pesan antara sesi Anda sendiri di mesin yang berbeda dan dari [sesi cloud](/docs/id/claude-code-on-the-web) Anda, melalui server Anthropic seperti sisa lalu lintas Remote Control. [Pesan sesi di mesin lain](/docs/id/cross-session-messaging#message-sessions-on-other-machines) mencakup aturan pengiriman dan [Kontrol pesan masuk](/docs/id/cross-session-messaging#control-inbound-messages) mencakup kontrol masuk. Memerlukan Claude Code v2.1.224 atau lebih baru.

193* **Prompt yang Anda kirim di tengah giliran**: ketika Anda mengirim prompt dari perangkat yang terhubung sebelum giliran saat ini berakhir, Claude Code mengantreannya dan menyimpannya dalam transkrip perangkat setelah giliran itu selesai.189* **Prompt yang Anda kirim di tengah giliran**: ketika Anda mengirim prompt dari perangkat yang terhubung sebelum giliran saat ini berakhir, Claude Code mengantreannya dan menyimpannya dalam transkrip perangkat setelah giliran itu selesai.

194* **Diff perubahan Anda**: ketika direktori sesi berada di repositori git, panel diff perangkat yang terhubung menampilkan diff perubahan yang tidak dikomit Anda. Perangkat meminta diff melalui koneksi, dan Claude Code menghitungnya di mesin Anda. Ketika pohon kerja Anda bersih, Claude Code malah melayani perubahan cabang Anda sejak divergen dari cabang default. Sebelum v2.1.247, Claude Code melaporkan diff ke perangkat yang terhubung hanya dalam sesi yang dilayani oleh `claude remote-control`.190* **Diff perubahan Anda**: ketika direktori sesi berada di repositori git, panel diff perangkat yang terhubung menampilkan diff perubahan yang tidak dikomit Anda. Perangkat meminta diff melalui koneksi, dan Claude Code menghitungnya di mesin Anda. Ketika pohon kerja Anda bersih, Claude Code malah melayani perubahan cabang Anda sejak divergen dari cabang default. Sebelum v2.1.247, Claude Code melaporkan diff ke perangkat yang terhubung hanya dalam sesi yang dilayani oleh `claude remote-control`.

195* **Model**: ketika Anda memilih [model](/docs/id/model-config) dari perangkat yang terhubung, Claude Code menjalankan sesi pada model itu. Pemilih `/model` terminal, `/status`, dan `/config` menampilkan model itu. Memerlukan Claude Code v2.1.238 atau lebih baru.191* **Model**: ketika Anda memilih [model](/docs/id/model-config) dari perangkat yang terhubung, Claude Code menjalankan sesi pada model itu. Pemilih `/model` terminal, `/status`, dan `/config` menampilkan model itu. Memerlukan Claude Code v2.1.238 atau lebih baru.


312 308 

313Untuk perangkat yang hilang atau dicuri, anggota menghapusnya dari halaman ini. Jika anggota tidak dapat masuk, admin dapat menggunakan **Sign out everywhere** di konsol admin untuk mencabut setiap sesi dan perangkat terdaftar untuk anggota itu, setelah itu anggota mendaftarkan ulang perangkat yang masih mereka miliki.309Untuk perangkat yang hilang atau dicuri, anggota menghapusnya dari halaman ini. Jika anggota tidak dapat masuk, admin dapat menggunakan **Sign out everywhere** di konsol admin untuk mencabut setiap sesi dan perangkat terdaftar untuk anggota itu, setelah itu anggota mendaftarkan ulang perangkat yang masih mereka miliki.

314 310 

315<h2 id="remote-control-vs-claude-code-on-the-web">311<h2 id="remote-control-vs-cloud-sessions">

316 Remote Control vs Claude Code di web312 Remote Control vs cloud sessions

317</h2>313</h2>

318 314 

319Remote Control dan [Claude Code di web](/docs/id/claude-code-on-the-web) keduanya menggunakan antarmuka claude.ai/code. Perbedaan utamanya adalah di mana sesi berjalan: Remote Control dieksekusi di mesin Anda, sehingga MCP servers lokal, alat, dan konfigurasi proyek Anda tetap tersedia. Claude Code di web dieksekusi di cloud.315Remote Control dan [cloud sessions](/docs/id/claude-code-on-the-web) keduanya menggunakan antarmuka claude.ai/code. Perbedaan utamanya adalah di mana sesi berjalan: Remote Control dieksekusi di mesin Anda, sehingga MCP servers lokal, alat, dan konfigurasi proyek Anda tetap tersedia. Sesi cloud dieksekusi di infrastruktur cloud, dikelola oleh Anthropic secara default.

320 316 

321Gunakan Remote Control ketika Anda sedang dalam pekerjaan lokal dan ingin terus melanjutkan dari perangkat lain. Gunakan Claude Code di web ketika Anda ingin memulai tugas tanpa pengaturan lokal apa pun, bekerja pada repo yang tidak Anda miliki klonnya, atau menjalankan beberapa tugas secara paralel.317Gunakan Remote Control ketika Anda sedang dalam pekerjaan lokal dan ingin terus melanjutkan dari perangkat lain. Gunakan sesi cloud ketika Anda ingin memulai tugas tanpa pengaturan lokal apa pun, bekerja pada repo yang tidak Anda miliki klonnya, atau menjalankan beberapa tugas secara paralel.

322 318 

323<h2 id="mobile-push-notifications">319<h2 id="mobile-push-notifications">

324 Notifikasi push mobile320 Notifikasi push mobile


374 * Perintah keluaran teks: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, dan `/reload-plugins`. `/usage-credits` mencetak URL penagihan alih-alih membuka browser. `/reload-plugins` hanya berfungsi ketika sesi berjalan di terminal interaktif; sesi tanpa satu menolaknya.370 * Perintah keluaran teks: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, dan `/reload-plugins`. `/usage-credits` mencetak URL penagihan alih-alih membuka browser. `/reload-plugins` hanya berfungsi ketika sesi berjalan di terminal interaktif; sesi tanpa satu menolaknya.

375 * `/model`, `/effort`, `/fast`, `/color`, dan `/rename`: teruskan nilai sebagai argumen, misalnya `/model sonnet` atau `/effort high`. Dari mobile dan web, `/model` dan `/effort` mengambil argumen sebagai pengganti pemilih terminal atau slider.371 * `/model`, `/effort`, `/fast`, `/color`, dan `/rename`: teruskan nilai sebagai argumen, misalnya `/model sonnet` atau `/effort high`. Dari mobile dan web, `/model` dan `/effort` mengambil argumen sebagai pengganti pemilih terminal atau slider.

376 * `/mcp`: dari aplikasi mobile, mengembalikan ringkasan teks status server alih-alih membuka pemilih. Di web, `/mcp` sendiri membuka direktori [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) alih-alih mengembalikan ringkasan. [Subperintah](/docs/id/commands#all-commands) `reconnect`, `enable`, dan `disable` berfungsi dari keduanya. Tidak seperti CLI lokal, `/mcp reconnect` tanpa nama server menghubungkan kembali setiap server yang telah gagal atau memerlukan autentikasi.372 * `/mcp`: dari aplikasi mobile, mengembalikan ringkasan teks status server alih-alih membuka pemilih. Di web, `/mcp` sendiri membuka direktori [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) alih-alih mengembalikan ringkasan. [Subperintah](/docs/id/commands#all-commands) `reconnect`, `enable`, dan `disable` berfungsi dari keduanya. Tidak seperti CLI lokal, `/mcp reconnect` tanpa nama server menghubungkan kembali setiap server yang telah gagal atau memerlukan autentikasi.

377 * `/config`, dari v2.1.181: dari aplikasi mobile, teruskan `key=value` untuk menetapkan pengaturan, atau jalankan tanpa argumen untuk membuat daftar kunci yang dapat Anda atur. Di web, `/config` membuka bagian Claude Code dari pengaturan Anda, dan mengabaikan teks setelah perintah.373 * `/config`: dari aplikasi mobile, teruskan `key=value` untuk menetapkan pengaturan, atau jalankan tanpa argumen untuk membuat daftar kunci yang dapat Anda atur. Di web, `/config` membuka bagian Claude Code dari pengaturan Anda, dan mengabaikan teks setelah perintah.

378 * Di Team dan Enterprise, `/usage-credits` dari mobile atau web tidak mengirim [permintaan kredit penggunaan ke admin Anda](/docs/id/costs#add-usage-credits-to-your-subscription). Pengiriman memerlukan konfirmasi yang hanya muncul di CLI interaktif, jadi perintah memberi tahu Anda untuk menjalankannya di sana. Sebelum v2.1.211, bentuk teks mengirim permintaan tanpa konfirmasi.374 * Di Team dan Enterprise, `/usage-credits` dari mobile atau web tidak mengirim [permintaan kredit penggunaan ke admin Anda](/docs/id/costs#add-usage-credits-to-your-subscription). Pengiriman memerlukan konfirmasi yang hanya muncul di CLI interaktif, jadi perintah memberi tahu Anda untuk menjalankannya di sana. Sebelum v2.1.211, bentuk teks mengirim permintaan tanpa konfirmasi.

379 * `/autocompact`, dari v2.1.221: teruskan ukuran jendela sebagai argumen, misalnya `/autocompact 500k`. Tanpa argumen, ia mencetak ukuran jendela saat ini sebagai teks alih-alih membuka dialog yang ditampilkan perintah dalam sesi terminal.375 * `/autocompact`, dari v2.1.221: teruskan ukuran jendela sebagai argumen, misalnya `/autocompact 500k`. Tanpa argumen, ia mencetak ukuran jendela saat ini sebagai teks alih-alih membuka dialog yang ditampilkan perintah dalam sesi terminal.

380 * `/advisor`, dari v2.1.260: teruskan model sebagai argumen, misalnya `/advisor opus`, atau teruskan `off` untuk mematikan penasihat. Kedua bentuk berlaku untuk sesi saat ini saja dan membiarkan default yang disimpan tidak berubah. Tanpa argumen, ia mencetak penasihat saat ini sebagai teks alih-alih membuka pemilih.376 * `/advisor`, dari v2.1.260: teruskan model sebagai argumen, misalnya `/advisor opus`, atau teruskan `off` untuk mematikan penasihat. Kedua bentuk berlaku untuk sesi saat ini saja dan membiarkan default yang disimpan tidak berubah. Tanpa argumen, ia mencetak penasihat saat ini sebagai teks alih-alih membuka pemilih.

377 * `/output-style`, dari v2.1.269: teruskan nama gaya sebagai argumen, misalnya `/output-style concise`, atau jalankan tanpa argumen untuk membuat daftar gaya. Dari mobile dan web, Anda hanya dapat membuat daftar dan memilih [gaya bawaan](/docs/id/output-styles#built-in-output-styles). Untuk menggunakan [gaya kustom](/docs/id/output-styles#create-a-custom-output-style), pilih di sesi itu sendiri.

381 378 

382<h2 id="troubleshooting">379<h2 id="troubleshooting">

383 Pemecahan Masalah380 Pemecahan Masalah


389 386 

390Anda tidak masuk dengan akun claude.ai, atau kredensial lain mengambil alih login Anda. Pesan ini mengambil salah satu bentuk berikut:387Anda tidak masuk dengan akun claude.ai, atau kredensial lain mengambil alih login Anda. Pesan ini mengambil salah satu bentuk berikut:

391 388 

392* Tidak masuk, dari `/remote-control` atau `--remote-control`: `Remote Control requires a claude.ai subscription.`389* Tidak masuk, dari `/remote-control` atau `--remote-control`: `Remote Control requires a claude.ai subscription.` atau `/remote-control requires a claude.ai subscription.`

393* Tidak masuk, dari `claude remote-control`: `You must be logged in to use Remote Control. Remote Control is only available with claude.ai subscriptions.`390* Tidak masuk, dari `claude remote-control`: `You must be logged in to use Remote Control. Remote Control is only available with claude.ai subscriptions.`

394* Masuk, tetapi kunci API atau token sedang digunakan: `Remote Control requires claude.ai subscription auth.` diikuti oleh kredensial yang digunakan, seperti `ANTHROPIC_API_KEY is set, so this session is using API-key auth`. Pengaturan `apiKeyHelper` dan `ANTHROPIC_AUTH_TOKEN` dinamai dengan cara yang sama.391* Masuk, tetapi kunci API atau token sedang digunakan: `Remote Control requires claude.ai subscription auth.` diikuti oleh kredensial yang digunakan, seperti `ANTHROPIC_API_KEY is set, so this session is using API-key auth`. Pengaturan `apiKeyHelper` dan `ANTHROPIC_AUTH_TOKEN` dinamai dengan cara yang sama.

395 392 


423 "Tidak dapat memverifikasi kelayakan Remote Control"420 "Tidak dapat memverifikasi kelayakan Remote Control"

424</h3>421</h3>

425 422 

426Claude Code tidak dapat menjangkau layanan feature-flag untuk memeriksa apakah Remote Control diaktifkan untuk akun Anda, biasanya karena Anda offline atau proxy memblokir permintaan. Coba lagi setelah Anda memiliki akses jaringan, atau jalankan `claude doctor` untuk detail. Pesan terkait "Tidak dapat memverifikasi kebijakan Remote Control organisasi Anda" memiliki penyebab yang sama dan perbaikan yang sama. Kedua pesan ditambahkan di v2.1.178.423Claude Code tidak dapat menjangkau layanan feature-flag untuk memeriksa apakah Remote Control diaktifkan untuk akun Anda, biasanya karena Anda offline atau proxy memblokir permintaan. Coba lagi setelah Anda memiliki akses jaringan, atau jalankan `claude doctor` untuk detail. Pesan terkait "Tidak dapat memverifikasi kebijakan Remote Control organisasi Anda" berarti Claude Code tidak dapat membaca kebijakan tersebut, dan memiliki perbaikan yang sama. Kedua pesan ditambahkan di v2.1.178.

427 424 

428<h3 id="remote-control-requires-feature-flag-evaluation">425<h3 id="remote-control-requires-feature-flag-evaluation">

429 "Remote Control memerlukan evaluasi feature-flag"426 "Remote Control memerlukan evaluasi feature-flag"


536</h2>533</h2>

537 534 

538* [Claude Code di web](/docs/id/claude-code-on-the-web): jalankan sesi di cloud alih-alih di mesin Anda, dikonfigurasi melalui [lingkungan cloud](/docs/id/cloud-environments)535* [Claude Code di web](/docs/id/claude-code-on-the-web): jalankan sesi di cloud alih-alih di mesin Anda, dikonfigurasi melalui [lingkungan cloud](/docs/id/cloud-environments)

539* [Pesan lintas sesi](/docs/id/cross-session-messaging): biarkan Claude mengirim pesan ke sesi Anda di mesin lain atau di [Claude Code di web](/docs/id/claude-code-on-the-web)536* [Pesan lintas sesi](/docs/id/cross-session-messaging): biarkan Claude mengirim pesan ke sesi Anda di mesin lain atau di [sesi cloud](/docs/id/claude-code-on-the-web)

540* [Channels](/docs/id/channels): teruskan Telegram, Discord, atau iMessage ke sesi sehingga Claude bereaksi terhadap pesan saat Anda pergi537* [Channels](/docs/id/channels): teruskan Telegram, Discord, atau iMessage ke sesi sehingga Claude bereaksi terhadap pesan saat Anda pergi

541* [Dispatch](/docs/id/desktop#sessions-from-dispatch): kirim pesan tugas dari ponsel Anda dan dapat menjalankan sesi Desktop untuk menanganinya538* [Dispatch](/docs/id/desktop#sessions-from-dispatch): kirim pesan tugas dari ponsel Anda dan dapat menjalankan sesi Desktop untuk menanganinya

542* [Autentikasi](/docs/id/authentication): atur `/login` dan kelola kredensial untuk claude.ai539* [Autentikasi](/docs/id/authentication): atur `/login` dan kelola kredensial untuk claude.ai

543* [Referensi CLI](/docs/id/cli-reference): daftar lengkap bendera dan perintah termasuk `claude remote-control`540* [Referensi CLI](/docs/id/cli-reference): daftar lengkap bendera dan perintah termasuk `claude remote-control`

544* [Keamanan](/docs/id/security): bagaimana sesi Remote Control sesuai dengan model keamanan Claude Code541* [Keamanan](/docs/id/security): bagaimana sesi Remote Control sesuai dengan model keamanan Claude Code

545* [Penggunaan data](/docs/id/data-usage): data apa yang mengalir melalui API Anthropic selama sesi lokal dan jarak jauh542* [Penggunaan data](/docs/id/data-usage): data apa yang mengalir melalui API Anthropic selama sesi lokal, Remote Control, dan cloud

routines.md +16 −18

Details

174 174 

175<Steps>175<Steps>

176 <Step title="Buka rutinitas untuk diedit">176 <Step title="Buka rutinitas untuk diedit">

177 Buka [claude.ai/code/routines](https://claude.ai/code/routines), klik rutinitas yang ingin Anda picu melalui API, lalu klik ikon pensil untuk membuka **Edit routine**.177 Buka [claude.ai/code/routines](https://claude.ai/code/routines), klik rutinitas yang ingin Anda picu melalui API, lalu buka menu di sebelah nama rutinitas dan pilih **Edit**.

178 </Step>178 </Step>

179 179 

180 <Step title="Tambahkan pemicu API">180 <Step title="Tambahkan pemicu API">


254 254 

255<Steps>255<Steps>

256 <Step title="Buka rutinitas untuk diedit">256 <Step title="Buka rutinitas untuk diedit">

257 Buka [claude.ai/code/routines](https://claude.ai/code/routines), klik rutinitas, lalu klik ikon pensil untuk membuka **Edit routine**.257 Buka [claude.ai/code/routines](https://claude.ai/code/routines), klik rutinitas, lalu buka menu di sebelah nama rutinitas dan pilih **Edit**.

258 </Step>258 </Step>

259 259 

260 <Step title="Tambahkan pemicu peristiwa GitHub">260 <Step title="Tambahkan pemicu peristiwa GitHub">


331Dari halaman detail rutinitas Anda dapat:331Dari halaman detail rutinitas Anda dapat:

332 332 

333* Klik **Run now** untuk memulai jalankan segera tanpa menunggu waktu terjadwal berikutnya. Anda dapat secara opsional menyediakan teks khusus jalankan, yang mencapai rutinitas dengan cara yang sama seperti bidang `text` pemicu API.333* Klik **Run now** untuk memulai jalankan segera tanpa menunggu waktu terjadwal berikutnya. Anda dapat secara opsional menyediakan teks khusus jalankan, yang mencapai rutinitas dengan cara yang sama seperti bidang `text` pemicu API.

334* Gunakan toggle di bagian **Repeats** untuk menjeda atau melanjutkan jadwal. Rutinitas yang dijeda menyimpan konfigurasi mereka tetapi tidak berjalan sampai Anda mengaktifkan kembali.334* Gunakan toggle di bagian atas halaman untuk menjeda atau melanjutkan jadwal. Rutinitas yang dijeda menyimpan konfigurasi mereka tetapi tidak berjalan sampai Anda mengaktifkan kembali.

335* Klik ikon pensil untuk membuka **Edit routine** dan ubah nama, prompt, repositori, lingkungan, konektor, atau pemicu rutinitas apa pun. Bagian **Select a trigger** adalah tempat Anda menambah atau menghapus jadwal, token API, dan pemicu peristiwa GitHub.335* Buka menu di sebelah nama rutinitas dan pilih **Edit** untuk mengubah nama, prompt, repositori, lingkungan, konektor, atau pemicu rutinitas apa pun. Bagian **Select a trigger** adalah tempat Anda menambah atau menghapus jadwal, token API, dan pemicu peristiwa GitHub.

336* Klik ikon hapus untuk menghapus rutinitas. Sesi masa lalu yang dibuat oleh rutinitas tetap dalam daftar sesi Anda.336* Buka menu yang sama dan pilih **Delete** untuk menghapus rutinitas.

337 337 

338<h3 id="manage-routines-from-the-cli">338<h3 id="manage-routines-from-the-cli">

339 Kelola rutinitas dari CLI339 Kelola rutinitas dari CLI


363 363 

364Rutinitas dapat menggunakan konektor MCP yang terhubung untuk membaca dari dan menulis ke layanan eksternal selama setiap jalankan. Misalnya, rutinitas yang melakukan triase permintaan dukungan mungkin membaca dari saluran Slack dan membuat masalah di Linear.364Rutinitas dapat menggunakan konektor MCP yang terhubung untuk membaca dari dan menulis ke layanan eksternal selama setiap jalankan. Misalnya, rutinitas yang melakukan triase permintaan dukungan mungkin membaca dari saluran Slack dan membuat masalah di Linear.

365 365 

366Konektor adalah [integrasi claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) di akun Anda. Server MCP yang Anda tambahkan secara lokal di CLI dengan `claude mcp add` disimpan di mesin Anda daripada akun claude.ai Anda, jadi mereka tidak muncul dalam daftar konektor. Untuk menggunakan salah satu server tersebut dalam rutinitas, tambahkan sebagai konektor di [claude.ai/customize/connectors](https://claude.ai/customize/connectors), atau deklarasikan dalam [`.mcp.json`](/docs/id/mcp#project-scope) yang berkomitmen sehingga itu adalah bagian dari repositori yang diklon.366Konektor adalah [integrasi claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) di akun Anda. Server MCP yang Anda tambahkan secara lokal di CLI dengan `claude mcp add` disimpan di mesin Anda daripada akun claude.ai Anda, jadi mereka tidak muncul dalam daftar konektor. Untuk menggunakan salah satu server tersebut dalam rutinitas, tambahkan sebagai konektor di [claude.ai/customize/connectors](https://claude.ai/customize/connectors). Untuk rutinitas dengan satu repositori, Anda dapat sebagai gantinya mendeklarasikannya dalam [`.mcp.json`](/docs/id/mcp#project-scope) yang berkomitmen sehingga itu adalah bagian dari repositori yang diklon.

367 367 

368Ketika Anda membuat rutinitas, semua konektor yang saat ini terhubung disertakan secara default. Hapus yang tidak diperlukan untuk membatasi alat mana yang dapat diakses Claude selama jalankan. Anda juga dapat menambahkan konektor langsung dari formulir rutinitas.368Ketika Anda membuat rutinitas, semua konektor yang saat ini terhubung disertakan secara default. Hapus yang tidak diperlukan untuk membatasi alat mana yang dapat diakses Claude selama jalankan. Anda juga dapat menambahkan konektor langsung dari formulir rutinitas.

369 369 


381 381 

382<Steps>382<Steps>

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

384 Pada halaman detail rutinitas, klik ikon pensil untuk membuka **Edit routine**.384 Pada halaman detail rutinitas, buka menu di sebelah nama rutinitas dan pilih **Edit**.

385 </Step>385 </Step>

386 386 

387 <Step title="Buka pemilih lingkungan">387 <Step title="Buka pemilih lingkungan">


421 `/schedule` menampilkan "Unknown command"421 `/schedule` menampilkan "Unknown command"

422</h3>422</h3>

423 423 

424CLI menyembunyikan `/schedule` ketika salah satu persyaratannya tidak terpenuhi: menu perintah menampilkan `No commands match "/schedule"` saat Anda mengetik, dan mengirimkannya mengembalikan `Unknown command: /schedule` dalam setiap kasus di bawah ini kecuali Console API key atau profil Anthropic dengan pengambilan feature-flag yang diaktifkan. Penyebabnya biasanya salah satu dari berikut ini:424CLI menyembunyikan `/schedule` ketika salah satu persyaratannya tidak terpenuhi: menu perintah menampilkan `No commands match "/schedule"` saat Anda mengetik. Mengirimkannya mengembalikan `Unknown command: /schedule`, kecuali dalam kasus-kasus di bawah ini yang mencatat jawaban berbeda.

425 425 

426* 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, 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 juga426Penyebabnya biasanya salah satu dari berikut ini:

427* Anda berada di dalam sesi Claude Code di web. Kelola rutinitas dari [UI web](https://claude.ai/code/routines) sebagai gantinya

428* Kebijakan organisasi Anda menonaktifkan [Claude Code di web](/docs/id/claude-code-on-the-web), yang rutinitas jalankan

429* 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

430 

431Kecuali kebijakan organisasi Anda menonaktifkan rutinitas atau Claude Code di web, Anda dapat membuat dan mengelola rutinitas di [claude.ai/code/routines](https://claude.ai/code/routines) terlepas dari bagaimana CLI dikonfigurasi.

432 427 

433<h3 id="/schedule-asks-you-to-authenticate">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 juga

434 `/schedule` meminta Anda untuk diautentikasi429* 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

435</h3>430* Anda berada di dalam sesi cloud. 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`

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 menjalankannya

436 433 

437Jika `/schedule` berjalan tetapi Claude merespons bahwa Anda perlu diautentikasi dengan akun claude.ai terlebih dahulu, CLI tidak memiliki login claude.ai yang tersimpan. Akun API tidak didukung untuk rutinitas. Jalankan `/login`, masuk dengan akun claude.ai Anda, kemudian jalankan `/schedule` lagi.434Kecuali kebijakan organisasi Anda menonaktifkan rutinitas atau sesi cloud, Anda dapat membuat dan mengelola rutinitas di [claude.ai/code/routines](https://claude.ai/code/routines) terlepas dari bagaimana CLI dikonfigurasi.

438 435 

439<h3 id="routines-are-disabled-by-your-organizations-policy">436<h3 id="routines-are-disabled-by-your-organizations-policy">

440 "Rutinitas dinonaktifkan oleh kebijakan organisasi Anda"437 "Rutinitas dinonaktifkan oleh kebijakan organisasi Anda"


449* [`/loop` and in-session scheduling](/docs/id/scheduled-tasks): jadwalkan tugas lokal dalam sesi CLI terbuka446* [`/loop` and in-session scheduling](/docs/id/scheduled-tasks): jadwalkan tugas lokal dalam sesi CLI terbuka

450* [Desktop scheduled tasks](/docs/id/desktop-scheduled-tasks): tugas terjadwal lokal yang berjalan di mesin Anda dengan akses ke file lokal447* [Desktop scheduled tasks](/docs/id/desktop-scheduled-tasks): tugas terjadwal lokal yang berjalan di mesin Anda dengan akses ke file lokal

451* [Cloud environments](/docs/id/cloud-environments): konfigurasi akses jaringan, variabel lingkungan, dan skrip penyiapan untuk sesi cloud448* [Cloud environments](/docs/id/cloud-environments): konfigurasi akses jaringan, variabel lingkungan, dan skrip penyiapan untuk sesi cloud

449* [Projects](/docs/id/claude-projects): pekerjaan berkelanjutan yang Claude koordinasikan di seluruh sesi cloud paralel; rutinitas yang dibuat dari proyek muncul di tab **Routines**

452* [MCP connectors](/docs/id/mcp): hubungkan layanan eksternal seperti Slack, Linear, dan Google Drive450* [MCP connectors](/docs/id/mcp): hubungkan layanan eksternal seperti Slack, Linear, dan Google Drive

453* [GitHub Actions](/docs/id/github-actions): jalankan Claude dalam saluran pipa CI pada peristiwa repositori451* [GitHub Actions](/docs/id/github-actions): jalankan Claude dalam saluran pipa CI pada peristiwa repositori

Details

21Dua pendekatan pertama dalam tabel di bawah berjalan pada sistem operasi host tanpa container. Sisanya menempatkan Claude Code di dalam container atau mesin virtual.21Dua pendekatan pertama dalam tabel di bawah berjalan pada sistem operasi host tanpa container. Sisanya menempatkan Claude Code di dalam container atau mesin virtual.

22 22 

23| Pendekatan | Apa yang diisolasi | Memerlukan Docker | Upaya pengaturan |23| Pendekatan | Apa yang diisolasi | Memerlukan Docker | Upaya pengaturan |

24| :------------------------------------------------ | :-------------------------------------------------------------------- | :---------------- | :----------------------------------------------------------------------------------------- |24| :------------------------------------------ | :-------------------------------------------------------------------- | :---------------- | :---------------------------------------------------------------------------------------------------------------------- |

25| [Sandboxed Bash tool](#sandboxed-bash-tool) | Perintah Bash dan proses anak mereka | Tidak | Minimal di macOS; rendah di Linux dan WSL2 |25| [Sandboxed Bash tool](#sandboxed-bash-tool) | Perintah Bash, PowerShell, dan Monitor serta proses anak mereka | Tidak | Minimal di macOS; rendah di Linux dan WSL2 |

26| [Sandbox runtime](#sandbox-runtime) | Seluruh proses Claude Code, termasuk alat file, server MCP, dan hooks | Tidak | Rendah |26| [Sandbox runtime](#sandbox-runtime) | Seluruh proses Claude Code, termasuk alat file, server MCP, dan hooks | Tidak | Rendah |

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

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

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

30| [Claude Code on the web](#claude-code-on-the-web) | Sistem operasi lengkap, dihosting oleh Anthropic | Tidak | Tidak ada; memerlukan langganan Claude dan GitHub saat Anda meluncurkan dari antarmuka web |30| [Cloud sessions](#cloud-sessions) | Sistem operasi lengkap, dihosting oleh Anthropic | Tidak | Tidak ada; memerlukan langganan Claude, dan akun GitHub yang terhubung kecuali Anda meluncurkan dengan `claude --cloud` |

31 31 

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

33 33 


44Cocokkan tujuan Anda dengan baris di bawah, kemudian baca bagian detail yang mengikuti.44Cocokkan tujuan Anda dengan baris di bawah, kemudian baca bagian detail yang mengikuti.

45 45 

46| Anda ingin | Mulai dengan |46| Anda ingin | Mulai dengan |

47| :------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |47| :------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

48| Mengurangi prompt izin selama pekerjaan sehari-hari di mesin Anda sendiri | [Sandboxed Bash tool](/docs/id/sandboxing), dikonfigurasi dengan `/sandbox` |48| Mengurangi prompt izin selama pekerjaan sehari-hari di mesin Anda sendiri | [Sandboxed Bash tool](/docs/id/sandboxing), dikonfigurasi dengan `/sandbox` |

49| Biarkan Claude bekerja tanpa pengawasan dengan `--dangerously-skip-permissions` atau mode otomatis | [Dev container](/docs/id/devcontainer) yang telah dikonfigurasi sebelumnya, container atau VM apa pun, atau [sandbox runtime](#sandbox-runtime) |49| Biarkan Claude bekerja tanpa pengawasan dengan `--dangerously-skip-permissions` atau mode otomatis | [Dev container](/docs/id/devcontainer) yang telah dikonfigurasi sebelumnya, container atau VM apa pun, atau [sandbox runtime](#sandbox-runtime) |

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

51| Bekerja pada repositori yang tidak terpercaya | Mesin virtual khusus, atau [Claude Code on the web](/docs/id/claude-code-on-the-web) jika Anda memiliki langganan Claude; GitHub hanya diperlukan ketika Anda meluncurkan dari antarmuka web |51| Bekerja pada repositori yang tidak terpercaya | Mesin virtual khusus, atau [Claude Code on the web](/docs/id/claude-code-on-the-web) jika Anda memiliki langganan Claude; GitHub tidak diperlukan ketika Anda meluncurkan dengan `claude --cloud` |

52| Standardisasi lingkungan bersandbox di seluruh tim | [Dev container](/docs/id/devcontainer) yang telah dikonfigurasi sebelumnya, disalin ke repositori Anda |52| Standardisasi lingkungan bersandbox di seluruh tim | [Dev container](/docs/id/devcontainer) yang telah dikonfigurasi sebelumnya, disalin ke repositori Anda |

53| Gunakan Claude Code dari perangkat tanpa pengaturan lokal | [Claude Code on the web](/docs/id/claude-code-on-the-web), yang memerlukan langganan Claude dan akun GitHub yang terhubung |53| Gunakan Claude Code dari perangkat tanpa pengaturan lokal | [Claude Code on the web](/docs/id/claude-code-on-the-web), yang memerlukan langganan Claude dan akun GitHub yang terhubung |

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


66 66 

67[Mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) menggantikan prompt dengan pengklasifikasi yang meninjau tindakan. Pengklasifikasi adalah kontrol per-tindakan, bukan batas isolasi, sehingga batas isolasi masih menambah pertahanan berlapis untuk berjalan tanpa pengawasan, dan tidak diperlukan seperti halnya untuk `--dangerously-skip-permissions`.67[Mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) menggantikan prompt dengan pengklasifikasi yang meninjau tindakan. Pengklasifikasi adalah kontrol per-tindakan, bukan batas isolasi, sehingga batas isolasi masih menambah pertahanan berlapis untuk berjalan tanpa pengawasan, dan tidak diperlukan seperti halnya untuk `--dangerously-skip-permissions`.

68 68 

69[Sandboxed Bash tool](#sandboxed-bash-tool) sendiri hanya membatasi Bash, sehingga tidak cukup untuk berjalan sepenuhnya tanpa pengawasan di kedua mode. Anda dapat melapisi pendekatan: menjalankan sandboxed Bash tool di dalam container atau VM memberi Anda pembatasan perintah tingkat OS di atas batas lingkungan luar. Untuk bagaimana sandbox Bash itu sendiri berinteraksi dengan aturan izin dan mode, lihat [How sandboxing relates to permissions and permission modes](/docs/id/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes).69[Sandboxed Bash tool](#sandboxed-bash-tool) sendiri hanya membatasi perintah shell, sehingga tidak cukup untuk berjalan sepenuhnya tanpa pengawasan di kedua mode. Anda dapat melapisi pendekatan: menjalankan sandboxed Bash tool di dalam container atau VM memberi Anda pembatasan perintah tingkat OS di atas batas lingkungan luar. Untuk bagaimana sandbox Bash itu sendiri berinteraksi dengan aturan izin dan mode, lihat [How sandboxing relates to permissions and permission modes](/docs/id/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes).

70 70 

71<h2 id="sandboxed-bash-tool">71<h2 id="sandboxed-bash-tool">

72 Sandboxed Bash tool72 Sandboxed Bash tool


76 Opsi ini tidak mendukung Windows asli. Pada host Windows, gunakan WSL2 atau salah satu pendekatan container atau VM di bawah.76 Opsi ini tidak mendukung Windows asli. Pada host Windows, gunakan WSL2 atau salah satu pendekatan container atau VM di bawah.

77</Note>77</Note>

78 78 

79Sandboxed Bash tool bawaan di Claude Code. Ini menggunakan primitif sistem operasi untuk membatasi akses filesystem dan jaringan dari setiap perintah Bash yang dijalankan Claude.79Sandboxed Bash tool bawaan di Claude Code. Ini menggunakan primitif sistem operasi untuk membatasi akses filesystem dan jaringan dari setiap perintah Bash, PowerShell, atau Monitor yang dijalankan Claude.

80 80 

81Jalankan perintah `/sandbox` untuk membuka panel sandbox dan pilih mode. Panduan [Sandboxing](/docs/id/sandboxing) mencakup mode persetujuan, batas default, dan cara memperluas atau mempersempit.81Jalankan perintah `/sandbox` untuk membuka panel sandbox dan pilih mode. Panduan [Sandboxing](/docs/id/sandboxing) mencakup mode persetujuan, batas default, dan cara memperluas atau mempersempit.

82 82 


91 Sandbox runtime91 Sandbox runtime

92</h2>92</h2>

93 93 

94Paket [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime) membungkus seluruh proses dalam isolasi Seatbelt atau bubblewrap yang sama yang digunakan sandbox Bash bawaan. Menjalankan Claude Code melalui runtime membatasi setiap alat, hook, dan server MCP dalam sesi, bukan hanya Bash. Runtime adalah pratinjau penelitian beta, dan format konfigurasinya mungkin berubah seiring paket berkembang.94Paket [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime) membungkus seluruh proses dalam isolasi Seatbelt atau bubblewrap yang sama yang digunakan sandbox Bash bawaan. Menjalankan Claude Code melalui runtime membatasi setiap alat, hook, dan server MCP dalam sesi, bukan hanya perintah shell. Runtime adalah pratinjau penelitian beta, dan format konfigurasinya mungkin berubah seiring paket berkembang.

95 95 

96Bagian ini mencakup apa yang Anda konfigurasikan dan apa yang diberlakukan runtime sendiri. Untuk menerapkan runtime dalam aplikasi Agent SDK, lihat [panduan penerapan aman](/docs/id/agent-sdk/secure-deployment#sandbox-runtime).96Bagian ini mencakup apa yang Anda konfigurasikan dan apa yang diberlakukan runtime sendiri. Untuk menerapkan runtime dalam aplikasi Agent SDK, lihat [panduan penerapan aman](/docs/id/agent-sdk/secure-deployment#sandbox-runtime).

97 97 


175 175 

176[Docker Sandboxes](https://docs.docker.com/ai/sandboxes/) menyediakan microVM dengan daemon Docker sendiri dan sinkronisasi workspace, yang dapat menjalankan Claude Code pada host apa pun dengan Docker Sandboxes terinstal. Ini adalah produk gratis dan mandiri dari Docker yang tidak memerlukan Docker Desktop.176[Docker Sandboxes](https://docs.docker.com/ai/sandboxes/) menyediakan microVM dengan daemon Docker sendiri dan sinkronisasi workspace, yang dapat menjalankan Claude Code pada host apa pun dengan Docker Sandboxes terinstal. Ini adalah produk gratis dan mandiri dari Docker yang tidak memerlukan Docker Desktop.

177 177 

178<h2 id="claude-code-on-the-web">178<h2 id="cloud-sessions">

179 Claude Code on the web179 Cloud sessions

180</h2>180</h2>

181 181 

182[Claude Code on the web](/docs/id/claude-code-on-the-web) menjalankan setiap sesi dalam mesin virtual terisolasi yang dikelola Anthropic. Proxy jaringan menerapkan daftar allowlist default, dan proxy terpisah menyimpan token GitHub Anda di luar sandbox sambil mengeluarkan kredensial berscopeduntuk akses repositori di dalamnya. Sesi yang organisasi Anda arahkan ke [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) berjalan pada infrastruktur yang Anda sediakan sebagai gantinya, di mana isolasi, kontrol egress, dan kredensial git adalah tanggung jawab deployment Anda.182A [cloud session](/docs/id/claude-code-on-the-web) runs in an isolated, Anthropic-managed virtual machine. A network proxy enforces a default allowlist, and a separate proxy holds your GitHub token outside the sandbox while issuing scoped credentials for repository access inside it. Sessions your organization routes to a [self-hosted environment](/docs/id/self-hosted-environments) run on infrastructure you provision instead, where isolation, egress control, and git credentials are your deployment's responsibility.

183 183 

184Gunakan pendekatan ini ketika Anda menginginkan isolasi VM penuh tanpa menyediakan infrastruktur sendiri, atau ketika Anda mendelegasikan tugas dari perangkat yang tidak memiliki lingkungan pengembangan lokal. Ini memerlukan langganan Claude. Ketika Anda meluncurkan sesi dari antarmuka web, Anda juga memerlukan akun GitHub yang terhubung sehingga sandbox dapat mengkloning repositori Anda. Ketika Anda meluncurkan dari CLI dengan `--cloud`, Claude Code dapat [membundel dan mengunggah repositori lokal Anda](/docs/id/claude-code-on-the-web#send-local-repositories-without-github) sebagai gantinya. Lihat [Claude Code on the web](/docs/id/claude-code-on-the-web) untuk ketersediaan paket dan opsi autentikasi GitHub.184Use this approach when you want full VM isolation without provisioning infrastructure yourself, or when you are delegating tasks from a device that does not have a local development environment. It requires a Claude subscription. Unless you launch from the CLI, you also need a connected GitHub account so the sandbox can clone your repository. When you launch from the CLI with `--cloud`, Claude Code can [bundle and upload your local repository](/docs/id/claude-code-on-the-web#send-local-repositories-without-github) instead. See [Use Claude Code in the cloud](/docs/id/claude-code-on-the-web) for plan availability and GitHub authentication options.

185 185 

186<h2 id="enforce-isolation-across-an-organization">186<h2 id="enforce-isolation-across-an-organization">

187 Enforce isolation across an organization187 Enforce isolation across an organization

sandboxing.md +27 −9

Details

6 6 

7> Pelajari bagaimana alat Bash sandboxed Claude Code menyediakan isolasi filesystem dan jaringan untuk eksekusi agen yang lebih aman dan mandiri.7> Pelajari bagaimana alat Bash sandboxed Claude Code menyediakan isolasi filesystem dan jaringan untuk eksekusi agen yang lebih aman dan mandiri.

8 8 

9Sandbox Bash memungkinkan Claude menjalankan sebagian besar perintah shell tanpa berhenti untuk meminta izin. Alih-alih menyetujui setiap perintah, Anda menentukan file dan domain jaringan mana yang dapat diakses perintah, dan sistem operasi memberlakukan batas itu untuk setiap perintah Bash dan proses anak-anaknya.9Sandbox Bash memungkinkan Claude menjalankan sebagian besar perintah shell tanpa berhenti untuk meminta izin. Alih-alih menyetujui setiap perintah, Anda menentukan file dan domain jaringan mana yang dapat diakses perintah, dan sistem operasi memberlakukan batas itu untuk setiap perintah Bash, PowerShell, atau Monitor dan proses anak-anaknya.

10 10 

11<Note>11<Note>

12 Untuk membandingkan pendekatan isolasi lain seperti dev containers, container khusus, dan mesin virtual, lihat [Sandbox environments](/docs/id/sandbox-environments). Untuk mengurangi prompt izin untuk alat selain Bash, lihat [permission modes](/docs/id/permission-modes).12 Untuk membandingkan pendekatan isolasi lain seperti dev containers, container khusus, dan mesin virtual, lihat [Sandbox environments](/docs/id/sandbox-environments). Untuk mengurangi prompt izin untuk alat selain Bash, lihat [permission modes](/docs/id/permission-modes).


42 </Step>42 </Step>

43 43 

44 <Step title="Jalankan perintah Bash">44 <Step title="Jalankan perintah Bash">

45 Minta Claude untuk menjalankan perintah, seperti build atau test suite. Secara default, perintah di dalam sandbox dapat menulis ke direktori kerja, direktori temp sesi, dan [direktori apa pun yang telah Anda tambahkan](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) dengan `--add-dir`, `/add-dir`, atau `permissions.additionalDirectories`. Pertama kali perintah memerlukan domain jaringan baru, Claude Code meminta persetujuan, atau dalam [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) mengirimkan permintaan ke pengklasifikasi.45 Minta Claude untuk menjalankan perintah, seperti build atau test suite. Secara default, perintah di dalam sandbox dapat menulis ke direktori kerja, direktori temp sesi, dan [direktori apa pun yang telah Anda tambahkan](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) dengan `--add-dir`, `/add-dir`, atau `permissions.additionalDirectories`.

46 

47 Pertama kali perintah memerlukan domain jaringan baru, Claude Code meminta persetujuan; dalam [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), Claude malah menamai host yang dibutuhkan perintah [pada perintah itu sendiri](#per-command-allowed-domains-in-auto-mode) untuk pengklasifikasi ditinjau bersama dengannya.

46 48 

47 Perintah yang tidak dapat berjalan sandboxed kembali ke alur izin reguler. Claude Code memberi judul prompt izin mereka "Bash command (unsandboxed)" bukan "Bash command", sehingga Anda dapat mengetahui perintah mana yang berjalan di luar sandbox. Untuk memperluas atau mempersempit apa yang diizinkan sandbox, lihat [Configure sandboxing](#configure-sandboxing).49 Perintah yang tidak dapat berjalan sandboxed kembali ke alur izin reguler. Claude Code memberi judul prompt izin mereka "Bash command (unsandboxed)" bukan "Bash command", sehingga Anda dapat mengetahui perintah mana yang berjalan di luar sandbox. Untuk memperluas atau mempersempit apa yang diizinkan sandbox, lihat [Configure sandboxing](#configure-sandboxing).

48 50 


145* Aturan `Bash` ask yang kosong, atau bentuk setara `Bash(*)`, dilewati untuk perintah yang berjalan sandboxed; masih berlaku untuk perintah yang kembali ke alur izin reguler. Dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), aturan tidak dilewati: itu meminta perintah sandboxed juga, termasuk yang hanya-baca. Sebelum v2.1.212, skip berlaku dalam plan mode juga147* Aturan `Bash` ask yang kosong, atau bentuk setara `Bash(*)`, dilewati untuk perintah yang berjalan sandboxed; masih berlaku untuk perintah yang kembali ke alur izin reguler. Dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), aturan tidak dilewati: itu meminta perintah sandboxed juga, termasuk yang hanya-baca. Sebelum v2.1.212, skip berlaku dalam plan mode juga

146 148 

147<Info>149<Info>

148 Mode auto-allow bekerja secara independen dari pengaturan mode izin Anda, dengan satu pengecualian: [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode). Bahkan jika Anda tidak dalam mode "accept edits", perintah Bash sandboxed berjalan secara otomatis ketika auto-allow diaktifkan. Ini berarti perintah Bash yang memodifikasi file dalam batas sandbox dieksekusi tanpa prompt, bahkan dalam mode Manual, di mana alat edit file akan meminta.150 Mode auto-allow bekerja secara independen dari pengaturan mode izin Anda, kecuali dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) dan, dalam mode auto, untuk perintah yang membawa [per-command allowed domains](#per-command-allowed-domains-in-auto-mode). Bahkan jika Anda tidak dalam mode "accept edits", perintah Bash sandboxed berjalan secara otomatis ketika auto-allow diaktifkan. Ini berarti perintah Bash yang memodifikasi file dalam batas sandbox dieksekusi tanpa prompt, bahkan dalam mode Manual, di mana alat edit file akan meminta.

149 151 

150 Dalam plan mode, auto-allow tidak memperluas persetujuan; lihat [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) untuk bagaimana Claude Code membatasi perintah saat Anda merencanakan. Sebelum v2.1.212, auto-allow menjalankan perintah sandboxed tanpa prompt dalam plan mode juga.152 Dalam plan mode, auto-allow tidak memperluas persetujuan; lihat [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) untuk bagaimana Claude Code membatasi perintah saat Anda merencanakan. Sebelum v2.1.212, auto-allow menjalankan perintah sandboxed tanpa prompt dalam plan mode juga.

151</Info>153</Info>


540 542 

541* **Di direktori kerja Anda dan direktori di atasnya**: file pengaturan `.claude`, direktori `.claude/skills`, `.claude/agents`, `.claude/commands`, dan `.claude/hooks`, `.mcp.json`, dan file yang dijalankan Claude Code sendiri, seperti `.claude/workflows` dan `.claude/scheduled_tasks.json`543* **Di direktori kerja Anda dan direktori di atasnya**: file pengaturan `.claude`, direktori `.claude/skills`, `.claude/agents`, `.claude/commands`, dan `.claude/hooks`, `.mcp.json`, dan file yang dijalankan Claude Code sendiri, seperti `.claude/workflows` dan `.claude/scheduled_tasks.json`

542* **Di direktori kerja Anda saja**: file startup shell seperti `.bashrc` dan `.zshrc`, `.gitconfig`, direktori `.vscode` dan `.idea`, dan `hooks` dan `config` di dalam `.git`544* **Di direktori kerja Anda saja**: file startup shell seperti `.bashrc` dan `.zshrc`, `.gitconfig`, direktori `.vscode` dan `.idea`, dan `hooks` dan `config` di dalam `.git`

543* **File yang akan mengubah direktori kerja Anda menjadi repositori git bare**: `HEAD`, `objects`, dan `refs` di tingkat atas, ditambah `config` dan `hooks` di sana ketika mereka sudah ada, bahkan ketika direktori `config` milik proyek Anda daripada git. Di Linux dan WSL2, sandbox menghapus file `HEAD` tingkat atas atau direktori `objects` atau `refs` yang muncul saat perintah sandboxed berjalan545* **File yang akan mengubah direktori kerja Anda menjadi repositori git bare**: `HEAD`, `objects`, dan `refs` di tingkat atas, ditambah `config` dan `hooks` di sana ketika `HEAD` berada di sebelahnya. File bernama `config` ditolak bahkan tanpa `HEAD`. Di Linux dan WSL2, sandbox menghapus file `HEAD` tingkat atas atau direktori `objects` atau `refs` yang muncul saat perintah sandboxed berjalan

544* **Di `~/.claude`, atau direktori yang ditunjuk `CLAUDE_CONFIG_DIR`**: sebagian besar isinya, ditambah `~/.claude.json` dan penyimpanan kredensial `.credentials.json`546* **Di `~/.claude`, atau direktori yang ditunjuk `CLAUDE_CONFIG_DIR`**: sebagian besar isinya, ditambah `~/.claude.json` dan penyimpanan kredensial `.credentials.json`

545 547 

546Jika symlink muncul di jalur file pengaturan yang dilindungi selama sesi, sandbox juga menolak penulisan ke file yang ditunjuknya, mulai dari perintah berikutnya.548Jika symlink muncul di jalur file pengaturan yang dilindungi selama sesi, sandbox juga menolak penulisan ke file yang ditunjuknya, mulai dari perintah berikutnya.


555 557 

556Akses jaringan dikendalikan melalui server proxy yang berjalan di luar sandbox:558Akses jaringan dikendalikan melalui server proxy yang berjalan di luar sandbox:

557 559 

558* **Pembatasan domain**: Claude Code tidak memungkinkan domain apa pun secara default. Pertama kali perintah memerlukan domain baru, Claude Code meminta persetujuan, atau dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) mengirimkan permintaan ke pengklasifikasi. Jika Anda memilih Ya saat diminta, Claude Code memungkinkan host untuk sisa sesi saat ini dan tidak meminta lagi untuk koneksi nanti ke host yang sama. Jika Anda memilih "Ya, dan jangan tanya lagi", Claude Code menyimpan aturan izin `WebFetch(domain:...)` ke [pengaturan lokal](/docs/id/permissions#permission-system) Anda, sehingga host tetap diizinkan di sesi mendatang. Izinkan domain sebelumnya dengan [`allowedDomains`](/docs/id/settings-reference#sandbox-network-alloweddomains) untuk menghindari prompt sepenuhnya. Claude Code juga memungkinkan domain sebelumnya dari aturan izin `WebFetch(domain:...)`, seperti dijelaskan dalam [Permission rules](#permission-rules).560* **Pembatasan domain**: Claude Code tidak memungkinkan domain apa pun secara default. Pertama kali perintah memerlukan domain baru, Claude Code meminta persetujuan; dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), Claude malah menamai host yang dibutuhkan perintah pada perintah itu sendiri, per [Domain yang diizinkan per perintah](#per-command-allowed-domains-in-auto-mode).

561* **Pilihan persetujuan**: jika Anda memilih Ya saat diminta, Claude Code memungkinkan host untuk sisa sesi saat ini dan tidak meminta lagi untuk koneksi nanti ke host yang sama. Jika Anda memilih "Ya, dan jangan tanya lagi", Claude Code menyimpan aturan izin `WebFetch(domain:...)` ke [pengaturan lokal](/docs/id/permissions#permission-system) Anda, sehingga host tetap diizinkan di sesi mendatang.

562* **Domain yang diizinkan sebelumnya**: izinkan domain sebelumnya dengan [`allowedDomains`](/docs/id/settings-reference#sandbox-network-alloweddomains) untuk menghindari prompt sepenuhnya. Claude Code juga memungkinkan domain sebelumnya dari aturan izin `WebFetch(domain:...)`, seperti dijelaskan dalam [Aturan izin](#permission-rules).

559* **Allowlist ketat**: jika Anda mengatur [`strictAllowlist`](/docs/id/settings-reference#sandbox-network-strictallowlist) ke `true` dalam pengaturan pengguna, terkelola, atau CLI `--settings`, Claude Code menolak akses perintah sandboxed ke host apa pun di luar allowlist alih-alih meminta. Allowlist adalah yang sama dengan yang diminta sandbox sebaliknya: `allowedDomains` ditambah domain dari aturan izin `WebFetch(domain:...)`, atau hanya entri pengaturan terkelola ketika `allowManagedDomainsOnly` diatur. Claude Code memberlakukan ini hanya untuk perintah sandboxed; alat dalam proses seperti `WebFetch` masih mengikuti [aturan izin](#permission-rules) mereka. Mengaturnya di `.claude/settings.json` atau `.claude/settings.local.json` repositori tidak berpengaruh. Memerlukan Claude Code v2.1.219 atau lebih baru.563* **Allowlist ketat**: jika Anda mengatur [`strictAllowlist`](/docs/id/settings-reference#sandbox-network-strictallowlist) ke `true` dalam pengaturan pengguna, terkelola, atau CLI `--settings`, Claude Code menolak akses perintah sandboxed ke host apa pun di luar allowlist alih-alih meminta. Allowlist adalah yang sama dengan yang diminta sandbox sebaliknya: `allowedDomains` ditambah domain dari aturan izin `WebFetch(domain:...)`, atau hanya entri pengaturan terkelola ketika `allowManagedDomainsOnly` diatur. Claude Code memberlakukan ini hanya untuk perintah sandboxed; alat dalam proses seperti `WebFetch` masih mengikuti [aturan izin](#permission-rules) mereka. Mengaturnya di `.claude/settings.json` atau `.claude/settings.local.json` repositori tidak berpengaruh. Memerlukan Claude Code v2.1.219 atau lebih baru.

560* **Lockdown terkelola**: jika [`allowManagedDomainsOnly`](/docs/id/settings-reference#sandbox-network-allowmanageddomainsonly) diatur dalam pengaturan terkelola, domain yang tidak diizinkan diblokir secara otomatis alih-alih meminta, dan hanya `allowedDomains` dan aturan izin `WebFetch(domain:...)` dari pengaturan terkelola yang dihormati.564* **Lockdown terkelola**: jika [`allowManagedDomainsOnly`](/docs/id/settings-reference#sandbox-network-allowmanageddomainsonly) diatur dalam pengaturan terkelola, domain yang tidak diizinkan diblokir secara otomatis alih-alih meminta, dan hanya `allowedDomains` dan aturan izin `WebFetch(domain:...)` dari pengaturan terkelola yang dihormati.

561* **Proxy korporat**: ketika jaringan Anda memerlukan lalu lintas keluar untuk melewati proxy korporat, atur `HTTPS_PROXY`, `HTTP_PROXY`, dan `NO_PROXY` seperti yang dijelaskan [konfigurasi proxy](/docs/id/network-config#proxy-configuration), dalam blok `env` pengaturan Anda sehingga [agen latar belakang](/docs/id/network-config#set-network-variables-in-settings-not-the-shell) mendapatkannya juga, atau di lingkungan tempat Anda meluncurkan Claude Code. Claude Code memberlakukan allowlist domain dan kemudian menerowongi koneksi yang diizinkan melalui proxy hulu tersebut.565* **Proxy korporat**: ketika jaringan Anda memerlukan lalu lintas keluar untuk melewati proxy korporat, atur `HTTPS_PROXY`, `HTTP_PROXY`, dan `NO_PROXY` seperti yang dijelaskan [konfigurasi proxy](/docs/id/network-config#proxy-configuration), dalam blok `env` pengaturan Anda sehingga [agen latar belakang](/docs/id/network-config#set-network-variables-in-settings-not-the-shell) mendapatkannya juga, atau di lingkungan tempat Anda meluncurkan Claude Code. Claude Code memberlakukan allowlist domain dan kemudian menerowongi koneksi yang diizinkan melalui proxy hulu tersebut.


565Dalam aturan `WebFetch(domain:...)`, sandbox menghormati dua bentuk wildcard: `*.` terdepan, seperti `*.example.com`, dan `*` bare. Bentuk `*` bare memerlukan Claude Code v2.1.186 atau lebih baru. Wildcard di posisi lain, seperti `WebFetch(domain:example.*)`, masih cocok dengan fetch tetapi tidak berpengaruh pada perintah sandboxed.569Dalam aturan `WebFetch(domain:...)`, sandbox menghormati dua bentuk wildcard: `*.` terdepan, seperti `*.example.com`, dan `*` bare. Bentuk `*` bare memerlukan Claude Code v2.1.186 atau lebih baru. Wildcard di posisi lain, seperti `WebFetch(domain:example.*)`, masih cocok dengan fetch tetapi tidak berpengaruh pada perintah sandboxed.

566 570 

567<Note>571<Note>

568 Proxy bawaan memberlakukan allowlist berdasarkan hostname yang diminta dan, secara default, tidak menghentikan atau memeriksa lalu lintas TLS. Pengaturan eksperimental [`network.tlsTerminate`](/docs/id/settings-reference#sandbox-network-tlsterminate), tersedia di Claude Code v2.1.199 dan lebih baru, membuat proxy bawaan menghentikan TLS itu sendiri, yang [entri kredensial `mask`](#mask-credentials) memerlukan. Lihat [Security limitations](#security-limitations) untuk implikasi default, dan [Custom proxy configuration](#custom-proxy-configuration) jika model ancaman Anda memerlukan inspeksi TLS.572 Proxy bawaan memberlakukan allowlist berdasarkan hostname yang diminta dan, secara default, tidak menghentikan atau memeriksa lalu lintas TLS. Pengaturan eksperimental [`network.tlsTerminate`](/docs/id/settings-reference#sandbox-network-tlsterminate), tersedia di Claude Code v2.1.199 dan lebih baru, membuat proxy bawaan menghentikan TLS itu sendiri, yang [entri kredensial `mask`](#mask-credentials) memerlukan. Lihat [Batasan keamanan](#security-limitations) untuk implikasi default, dan [Konfigurasi proxy khusus](#custom-proxy-configuration) jika model ancaman Anda memerlukan inspeksi TLS.

569</Note>573</Note>

570 574 

575<h4 id="per-command-allowed-domains-in-auto-mode">

576 Domain yang diizinkan per perintah dalam mode otomatis

577</h4>

578 

579Dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) dengan sandboxing aktif, Claude menamai host yang dibutuhkan perintah pada perintah itu sendiri alih-alih memicu persetujuan jaringan untuk setiap koneksi. Setiap perintah Bash, PowerShell, atau [Monitor](/docs/id/tools-reference#monitor-tool) yang berjalan dalam sandbox dapat membawa daftar host di luar allowlist sandbox: domain seperti `registry.npmjs.org`, wildcard seperti `*.pythonhosted.org`, atau alamat IP, masing-masing dengan `:port` opsional. Pengklasifikasi meninjau host bersama dengan perintah. Memerlukan Claude Code v2.1.271 atau lebih baru.

580 

581Daftar yang disetujui membuka host tersebut hanya untuk perintah itu saja, selama berjalan. Tidak ada yang ditambahkan ke host yang diizinkan sesi Anda atau pengaturan Anda; perintah berikutnya menamai host-nya sendiri.

582 

583Perintah yang membawa host pergi ke pengklasifikasi alih-alih disetujui oleh aturan izin atau [mode auto-allow](#sandbox-modes) sandbox. Jika [aturan ask](/docs/id/permissions#manage-permissions) memaksa prompt untuk perintah, dialog izin di terminal Anda mencantumkan host di sebelahnya, dan menyetujui di sana mencakup keduanya.

584 

585Daftar per perintah memperluas hanya apa yang ditolak sandbox secara default. Entri [`deniedDomains`](/docs/id/settings-reference#sandbox-network-denieddomains) masih memblokir. Ketika [`strictAllowlist`](/docs/id/settings-reference#sandbox-network-strictallowlist) atau [`allowManagedDomainsOnly`](/docs/id/settings-reference#sandbox-network-allowmanageddomainsonly) mengunci allowlist, Claude Code menolak daftar per perintah.

586 

587Sementara daftar per perintah berlaku, Claude Code menolak koneksi ke host yang tidak ada perintah yang disetujui daftarkan, tanpa prompt atau pemeriksaan pengklasifikasi. Penolakan menamai host dalam hasil perintah, dan Claude menjalankan kembali perintah dengan host ditambahkan.

588 

571<h4 id="ipv6-addresses-in-domain-lists">589<h4 id="ipv6-addresses-in-domain-lists">

572 Alamat IPv6 dalam daftar domain590 Alamat IPv6 dalam daftar domain

573</h4>591</h4>


610Aturan izin dan sandboxing mengontrol hal yang berbeda:628Aturan izin dan sandboxing mengontrol hal yang berbeda:

611 629 

612* **Aturan izin** mengontrol alat mana yang dapat digunakan Claude Code dan dievaluasi sebelum alat apa pun berjalan. Mereka berlaku untuk semua alat: Bash, Read, Edit, WebFetch, MCP, dan lainnya, kecuali bahwa aturan deny atau ask tidak dapat memblokir [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) sementara alat lain tetap ada.630* **Aturan izin** mengontrol alat mana yang dapat digunakan Claude Code dan dievaluasi sebelum alat apa pun berjalan. Mereka berlaku untuk semua alat: Bash, Read, Edit, WebFetch, MCP, dan lainnya, kecuali bahwa aturan deny atau ask tidak dapat memblokir [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) sementara alat lain tetap ada.

613* **Sandboxing** menyediakan penegakan tingkat OS yang membatasi apa yang dapat diakses perintah Bash pada tingkat filesystem dan jaringan. Ini hanya berlaku untuk perintah Bash dan proses anak mereka.631* **Sandboxing** menyediakan penegakan tingkat OS yang membatasi apa yang dapat diakses perintah Bash pada tingkat filesystem dan jaringan. Ini hanya berlaku untuk perintah Bash, PowerShell, dan [Monitor](/docs/id/tools-reference#monitor-tool) serta proses anak mereka.

614 632 

615Kedua lapisan juga berbeda dalam cara penegakan mereka. Claude Code mengevaluasi keputusan izin sebelum perintah berjalan, berdasarkan string perintah dan, dalam mode auto, penilaian classifier terpisah tentang apakah perintah aman. Sistem operasi memberlakukan batas sandbox pada proses yang berjalan, sehingga berlaku terlepas dari apa yang dipilih model untuk dijalankan dan bahkan jika perintah yang diizinkan melakukan lebih dari nama yang disarankan.633Kedua lapisan juga berbeda dalam cara penegakan mereka. Claude Code mengevaluasi keputusan izin sebelum perintah berjalan, berdasarkan string perintah dan, dalam mode auto, penilaian classifier terpisah tentang apakah perintah aman. Sistem operasi memberlakukan batas sandbox pada proses yang berjalan, sehingga berlaku terlepas dari apa yang dipilih model untuk dijalankan dan bahkan jika perintah yang diizinkan melakukan lebih dari nama yang disarankan.

616 634 


644| [Auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) | Apakah setiap panggilan alat berjalan | Classifier yang meninjau tindakan |662| [Auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) | Apakah setiap panggilan alat berjalan | Classifier yang meninjau tindakan |

645| `--dangerously-skip-permissions` | Apakah setiap panggilan alat berjalan | Tidak ada. Pemeriksaan [Protected path](/docs/id/permission-modes#protected-paths) juga dilewati; [tindakan yang tidak ada mode auto-approve](/docs/id/permission-modes#actions-no-mode-auto-approves) masih berlaku |663| `--dangerously-skip-permissions` | Apakah setiap panggilan alat berjalan | Tidak ada. Pemeriksaan [Protected path](/docs/id/permission-modes#protected-paths) juga dilewati; [tindakan yang tidak ada mode auto-approve](/docs/id/permission-modes#actions-no-mode-auto-approves) masih berlaku |

646 664 

647Mode [auto-allow](#sandbox-modes) sandbox terpisah dari [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode): auto-allow menyetujui perintah Bash karena batas sandbox memuatnya, sementara auto mode menggunakan classifier untuk meninjau tindakan. Keduanya bekerja secara independen dan dapat dikombinasikan. Untuk memilih batas isolasi untuk run tanpa pengawasan, lihat [Sandbox environments](/docs/id/sandbox-environments#how-isolation-relates-to-permission-modes). Untuk tabel pasangan mode izin dan sandbox umum dengan flag yang memulai masing-masing, lihat [Common setups](/docs/id/permission-modes#common-setups).665Mode [auto-allow](#sandbox-modes) sandbox terpisah dari [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode): auto-allow menyetujui perintah Bash karena batas sandbox memuatnya, sementara auto mode menggunakan classifier untuk meninjau tindakan. Keduanya bekerja secara independen dan dapat dikombinasikan, dengan pengecualian yang tercantum di bawah [Sandbox modes](#sandbox-modes). Untuk memilih batas isolasi untuk run tanpa pengawasan, lihat [Sandbox environments](/docs/id/sandbox-environments#how-isolation-relates-to-permission-modes). Untuk tabel pasangan mode izin dan sandbox umum dengan flag yang memulai masing-masing, lihat [Common setups](/docs/id/permission-modes#common-setups).

648 666 

649<h2 id="configure-the-sandbox-for-your-organization">667<h2 id="configure-the-sandbox-for-your-organization">

650 Konfigurasi sandbox untuk organisasi Anda668 Konfigurasi sandbox untuk organisasi Anda


656 Memberlakukan sandboxing dengan pengaturan terkelola674 Memberlakukan sandboxing dengan pengaturan terkelola

657</h3>675</h3>

658 676 

659Untuk memerlukan sandbox untuk setiap pengembang, berikan kunci `sandbox` melalui [managed settings](/docs/id/managed-settings#delivery-mechanisms), baik sebagai file yang dikelola oleh MDM Anda atau melalui [server-managed settings](/docs/id/server-managed-settings) di Claude.ai.677Untuk memerlukan sandbox untuk setiap pengembang, berikan kunci `sandbox` melalui [managed settings](/docs/id/managed-settings#delivery-mechanisms), baik sebagai file yang dikelola oleh MDM Anda atau melalui [server-managed settings](/docs/id/server-managed-settings) di claude.ai.

660 678 

661Konfigurasi pengaturan terkelola berikut mengaktifkan sandbox, menolak untuk memulai Claude Code jika sandbox tidak dapat diinisialisasi, dan mencegah model dari mencoba kembali perintah di luar sandbox:679Konfigurasi pengaturan terkelola berikut mengaktifkan sandbox, menolak untuk memulai Claude Code jika sandbox tidak dapat diinisialisasi, dan mencegah model dari mencoba kembali perintah di luar sandbox:

662 680 

Details

169cancel the deploy check job169cancel the deploy check job

170```170```

171 171 

172Di balik layar, Claude menggunakan alat-alat ini:172Ini adalah alat yang mendasari yang digunakan Claude:

173 173 

174| Alat | Tujuan |174| Alat | Tujuan |

175| :----------- | :--------------------------------------------------------------------------------------------------------------------------- |175| :----------- | :--------------------------------------------------------------------------------------------------------------------------- |


238* Tugas hanya berjalan saat Claude Code berjalan dan idle. Menutup terminal atau membiarkan sesi keluar menghentikan semuanya. [Backgrounding sesi](/docs/id/agent-view#from-inside-a-session) membawa tugas `/loop` ke sesi latar belakang, yang terus berjalan tanpa terminal.238* Tugas hanya berjalan saat Claude Code berjalan dan idle. Menutup terminal atau membiarkan sesi keluar menghentikan semuanya. [Backgrounding sesi](/docs/id/agent-view#from-inside-a-session) membawa tugas `/loop` ke sesi latar belakang, yang terus berjalan tanpa terminal.

239* Tidak ada catch-up untuk fire yang terlewat. Jika waktu terjadwal tugas berlalu saat Claude sibuk dengan permintaan yang berjalan lama, itu berjalan sekali saat Claude menjadi idle, bukan sekali per interval yang terlewat.239* Tidak ada catch-up untuk fire yang terlewat. Jika waktu terjadwal tugas berlalu saat Claude sibuk dengan permintaan yang berjalan lama, itu berjalan sekali saat Claude menjadi idle, bukan sekali per interval yang terlewat.

240* Memulai percakapan baru menghapus semua tugas session-scoped. Saat Anda melanjutkan sesi dengan `claude --resume` atau `claude --continue`, Claude Code memulihkan tugas yang dijadwalkan dengan `CronCreate`, kecuali tugas berulang yang telah [kedaluwarsa](#seven-day-expiry) dan tugas sekali jalan yang waktu terjadwalnya telah berlalu. Sebuah `/loop` [yang berjalan sendiri](#let-claude-choose-the-interval) tidak dipulihkan, jadi jalankan `/loop` lagi untuk memulainya kembali. Tugas Bash latar belakang dan monitor tidak pernah dipulihkan pada resume.240* Memulai percakapan baru menghapus semua tugas session-scoped. Saat Anda melanjutkan sesi dengan `claude --resume` atau `claude --continue`, Claude Code memulihkan tugas yang dijadwalkan dengan `CronCreate`, kecuali tugas berulang yang telah [kedaluwarsa](#seven-day-expiry) dan tugas sekali jalan yang waktu terjadwalnya telah berlalu. Sebuah `/loop` [yang berjalan sendiri](#let-claude-choose-the-interval) tidak dipulihkan, jadi jalankan `/loop` lagi untuk memulainya kembali. Tugas Bash latar belakang dan monitor tidak pernah dipulihkan pada resume.

241* Dengan [feature-flag fetching off](/docs/id/env-vars#features-that-need-feature-flag-fetching), Claude Code menyimpan tugas yang Anda minta untuk disimpan di seluruh sesi dalam direktori `.claude` proyek. Ketika direktori itu atau file tugas di dalamnya adalah symlink, Claude Code mengembalikan error alih-alih menjadwalkan tugas.241* Dengan [feature-flag fetching off](/docs/id/env-vars#features-that-need-feature-flag-fetching), Claude Code menyimpan tugas yang Anda minta untuk disimpan di seluruh sesi dalam file `.claude/scheduled_tasks.json` proyek. Ketika direktori `.claude` atau file tersebut adalah symlink, Claude Code mengembalikan error alih-alih menjadwalkan tugas. Tugas yang disimpan hanya berjalan di folder proyek tempat Anda membuatnya. Jika Anda menyalin file ke folder lain, seperti worktree baru, sesi di sana menampilkan tugas yang disalin tetapi tidak menjalankannya, jadi buat tugas lagi di folder tersebut.

242 242 

243Untuk otomasi yang didorong cron yang perlu berjalan tanpa pengawasan:243Untuk otomasi yang didorong cron yang perlu berjalan tanpa pengawasan:

244 244 

security.md +2 −2

Details

124 Keamanan eksekusi cloud124 Keamanan eksekusi cloud

125</h2>125</h2>

126 126 

127Saat menggunakan [Claude Code di web](/docs/id/claude-code-on-the-web), kontrol keamanan tambahan tersedia. Sesi yang organisasi Anda arahkan ke [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) berjalan di infrastruktur Anda sendiri, di mana isolasi, egress jaringan, dan kredensial git adalah tanggung jawab deployment Anda. Di lingkungan yang di-host Anthropic:127Saat menggunakan [sesi cloud](/docs/id/claude-code-on-the-web), kontrol keamanan tambahan tersedia. Sesi yang organisasi Anda arahkan ke [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) berjalan di infrastruktur Anda sendiri, di mana isolasi, egress jaringan, dan kredensial git adalah tanggung jawab deployment Anda. Di lingkungan yang di-host Anthropic:

128 128 

129* **Mesin virtual terisolasi**: Setiap sesi cloud berjalan di VM yang terisolasi dan dikelola Anthropic129* **Mesin virtual terisolasi**: Setiap sesi cloud berjalan di VM yang terisolasi dan dikelola Anthropic

130* **Kontrol akses jaringan**: Akses jaringan dibatasi secara default dan dapat dikonfigurasi untuk dinonaktifkan atau hanya mengizinkan domain tertentu130* **Kontrol akses jaringan**: Akses jaringan dibatasi secara default dan dapat dikonfigurasi untuk dinonaktifkan atau hanya mengizinkan domain tertentu


133* **Pencatatan audit**: Semua operasi di sesi cloud dicatat untuk kepatuhan dan tujuan audit133* **Pencatatan audit**: Semua operasi di sesi cloud dicatat untuk kepatuhan dan tujuan audit

134* **Pembersihan otomatis**: VM sesi diklaim kembali setelah periode tidak aktif134* **Pembersihan otomatis**: VM sesi diklaim kembali setelah periode tidak aktif

135 135 

136Untuk detail lebih lanjut tentang eksekusi cloud, lihat [Claude Code di web](/docs/id/claude-code-on-the-web); untuk mengonfigurasi akses jaringan untuk sesi cloud, lihat [Konfigurasi lingkungan cloud](/docs/id/cloud-environments#network-access).136Untuk detail lebih lanjut tentang eksekusi cloud, lihat [Gunakan Claude Code di cloud](/docs/id/claude-code-on-the-web); untuk mengonfigurasi akses jaringan untuk sesi cloud, lihat [Konfigurasi lingkungan cloud](/docs/id/cloud-environments#network-access).

137 137 

138Sesi [Remote Control](/docs/id/remote-control) bekerja berbeda: antarmuka web terhubung ke proses Claude Code yang berjalan di mesin lokal Anda. Semua eksekusi kode dan akses file tetap lokal, dan lalu lintas sesi berjalan melalui Anthropic API melalui TLS; saat terhubung, transkrip sesi disimpan di server Anthropic untuk menyinkronkan percakapan di seluruh perangkat, seperti yang dijelaskan dalam [Connection and security](/docs/id/remote-control#connection-and-security). Tidak ada VM cloud atau sandboxing yang terlibat. Koneksi menggunakan beberapa kredensial berumur pendek dengan cakupan sempit, masing-masing dibatasi untuk tujuan tertentu dan kedaluwarsa secara independen, untuk membatasi radius ledakan dari kredensial tunggal yang dikompromikan.138Sesi [Remote Control](/docs/id/remote-control) bekerja berbeda: antarmuka web terhubung ke proses Claude Code yang berjalan di mesin lokal Anda. Semua eksekusi kode dan akses file tetap lokal, dan lalu lintas sesi berjalan melalui Anthropic API melalui TLS; saat terhubung, transkrip sesi disimpan di server Anthropic untuk menyinkronkan percakapan di seluruh perangkat, seperti yang dijelaskan dalam [Connection and security](/docs/id/remote-control#connection-and-security). Tidak ada VM cloud atau sandboxing yang terlibat. Koneksi menggunakan beberapa kredensial berumur pendek dengan cakupan sempit, masing-masing dibatasi untuk tujuan tertentu dan kedaluwarsa secara independen, untuk membatasi radius ledakan dari kredensial tunggal yang dikompromikan.

139 139 

Details

34`/plugin` membuka panel interaktif dan hanya tersedia di CLI terminal. Jika Claude melaporkan bahwa `/plugin` tidak tersedia di lingkungan ini, instal dengan cara lain:34`/plugin` membuka panel interaktif dan hanya tersedia di CLI terminal. Jika Claude melaporkan bahwa `/plugin` tidak tersedia di lingkungan ini, instal dengan cara lain:

35 35 

36* **Aplikasi desktop Claude, sesi lokal atau SSH**: buka [browser plugin](/docs/id/desktop#install-plugins) dengan mengklik tombol **+** di sebelah prompt, kemudian **Plugins**, kemudian **Add plugin**36* **Aplikasi desktop Claude, sesi lokal atau SSH**: buka [browser plugin](/docs/id/desktop#install-plugins) dengan mengklik tombol **+** di sebelah prompt, kemudian **Plugins**, kemudian **Add plugin**

37* **Claude Code di web atau sesi cloud desktop**: deklarasikan plugin dalam `.claude/settings.json` seperti yang ditunjukkan di bawah [Enable in cloud sessions](#enable-in-cloud-sessions-and-shared-repositories)37* **Sesi cloud**: deklarasikan plugin dalam `.claude/settings.json` seperti yang ditunjukkan di bawah [Enable in cloud sessions](#enable-in-cloud-sessions-and-shared-repositories)

38 38 

39Instalasi terminal meminta scope. Pilih user scope untuk menulis plugin ke pengaturan pengguna Anda, sehingga dimuat di setiap sesi lokal baru yang Anda mulai di mesin ini.39Instalasi terminal meminta scope. Pilih user scope untuk menulis plugin ke pengaturan pengguna Anda, sehingga dimuat di setiap sesi lokal baru yang Anda mulai di mesin ini.

40 40 


49 Aktifkan dalam sesi cloud dan repositori bersama49 Aktifkan dalam sesi cloud dan repositori bersama

50</h3>50</h3>

51 51 

52Plugin yang dibatasi pengguna tidak masuk ke [Claude Code di web](/docs/id/claude-code-on-the-web), karena sesi tersebut berjalan di cloud daripada di mesin Anda. Untuk mengaktifkan plugin di sana, atau untuk mengaktifkannya bagi semua orang yang mengkloning repositori, deklarasikan dalam pengaturan proyek yang diperiksa:52Plugin yang dibatasi pengguna tidak masuk ke [sesi cloud](/docs/id/claude-code-on-the-web), karena sesi tersebut tidak berjalan di mesin Anda. Untuk mengaktifkan plugin di sana, atau untuk mengaktifkannya bagi semua orang yang mengkloning repositori, deklarasikan dalam pengaturan proyek yang diperiksa:

53 53 

54```json .claude/settings.json theme={null}54```json .claude/settings.json theme={null}

55{55{

Details

10 Lingkungan yang di-host sendiri berada dalam beta publik pada paket Team dan Enterprise dan dinonaktifkan secara default. Lihat [Ketersediaan dan batasan](#availability-and-limitations) untuk jalur pengaktifan dan apa yang dikecualikan.10 Lingkungan yang di-host sendiri berada dalam beta publik pada paket Team dan Enterprise dan dinonaktifkan secara default. Lihat [Ketersediaan dan batasan](#availability-and-limitations) untuk jalur pengaktifan dan apa yang dikecualikan.

11</Note>11</Note>

12 12 

13Lingkungan yang di-host sendiri menjalankan sesi cloud Claude Code pada infrastruktur yang dioperasikan organisasi Anda. [Sesi cloud](/docs/id/claude-code-on-the-web) adalah sesi apa pun yang berjalan di tempat selain mesin pengembang: pengembang memulainya dari claude.ai, aplikasi mobile dan desktop, terminal dengan [`claude --cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-web), dan [rutinitas terjadwal](/docs/id/routines), dan secara default mereka dijalankan pada infrastruktur Anthropic. Dalam lingkungan yang di-host sendiri, sesi yang sama dijalankan di dalam jaringan Anda, dan pengalaman pengembang sebaliknya sama terlepas dari perbedaan dalam [Ketersediaan dan batasan](#availability-and-limitations) dan [masalah yang diketahui](/docs/id/self-hosted-environments-deploy#known-issues-and-limitations) halaman deploy.13Lingkungan yang di-host sendiri menjalankan sesi cloud Claude Code pada infrastruktur yang dioperasikan organisasi Anda. [Sesi cloud](/docs/id/claude-code-on-the-web) adalah sesi apa pun yang berjalan di tempat selain mesin pengembang: pengembang memulainya dari claude.ai, aplikasi mobile dan desktop, terminal dengan [`claude --cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-cloud), dan [rutinitas terjadwal](/docs/id/routines), dan secara default mereka dijalankan pada infrastruktur Anthropic. Dalam lingkungan yang di-host sendiri, sesi yang sama dijalankan di dalam jaringan Anda, dan pengalaman pengembang sebaliknya sama terlepas dari perbedaan dalam [Ketersediaan dan batasan](#availability-and-limitations) dan [masalah yang diketahui](/docs/id/self-hosted-environments-deploy#known-issues-and-limitations) halaman deploy.

14 14 

15Jika tim Anda tidak menggunakan sesi cloud, tidak ada yang perlu dikonfigurasi di sini: sesi di terminal atau IDE selalu berjalan di mesin pengembang sendiri. Jika Anda ingin menjalankan Claude Code pada mesin yang selalu aktif milik Anda dan menggerakkannya dari perangkat lain, gunakan [Remote Control](/docs/id/remote-control), yang juga tersedia pada paket Pro dan Max. Ketika Anda siap untuk menyiapkan, langsung ke [quickstart](/docs/id/self-hosted-environments-quickstart); untuk meninjau postur keamanan terlebih dahulu, mulai dengan [Deploy ke produksi](/docs/id/self-hosted-environments-deploy). Sisa halaman ini menjelaskan cara kerja self-hosting dan kapan memilihnya.15Jika tim Anda tidak menggunakan sesi cloud, tidak ada yang perlu dikonfigurasi di sini: sesi di terminal atau IDE selalu berjalan di mesin pengembang sendiri. Jika Anda ingin menjalankan Claude Code pada mesin yang selalu aktif milik Anda dan menggerakkannya dari perangkat lain, gunakan [Remote Control](/docs/id/remote-control), yang juga tersedia pada paket Pro dan Max. Ketika Anda siap untuk menyiapkan, langsung ke [quickstart](/docs/id/self-hosted-environments-quickstart); untuk meninjau postur keamanan terlebih dahulu, mulai dengan [Deploy ke produksi](/docs/id/self-hosted-environments-deploy). Sisa halaman ini menjelaskan cara kerja self-hosting dan kapan memilihnya.

16 16 


44 44 

45Periksa ini sebelum merencanakan peluncuran:45Periksa ini sebelum merencanakan peluncuran:

46 46 

47* **Plans**: beta publik untuk organisasi Team dan Enterprise. Lingkungan yang di-host sendiri dinonaktifkan secara default; [Owner](/docs/id/cloud-environments#organization-shared-environments) mengaktifkan **Allow self-hosted environments** pada [halaman admin **Cloud environments**](https://claude.ai/admin-settings/cloud-environments), yang memerlukan [Claude Code on the web](/docs/id/claude-code-on-the-web) diaktifkan untuk organisasi.47* **Plans**: beta publik untuk organisasi Team dan Enterprise. Lingkungan yang di-host sendiri dinonaktifkan secara default; [Owner](/docs/id/cloud-environments#organization-shared-environments) mengaktifkan **Allow self-hosted environments** pada [halaman admin **Cloud environments**](https://claude.ai/admin-settings/cloud-environments), yang memerlukan [cloud sessions](/docs/id/claude-code-on-the-web) diaktifkan untuk organisasi.

48* **Zero Data Retention**: tidak tersedia untuk organisasi dengan [Zero Data Retention](/docs/id/zero-data-retention) diaktifkan.48* **Zero Data Retention**: tidak tersedia untuk organisasi dengan [Zero Data Retention](/docs/id/zero-data-retention) diaktifkan.

49* **Model inference**: sesi menggunakan Anthropic API, dan inferensi tidak dapat dirutekan melalui [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry](/docs/id/third-party-integrations), atau [LLM gateway](/docs/id/llm-gateway).49* **Model inference**: sesi menggunakan Anthropic API, dan inferensi tidak dapat dirutekan melalui [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry](/docs/id/third-party-integrations), atau [LLM gateway](/docs/id/llm-gateway).

50* **Surfaces**: sesi dimulai dari [Claude Code on the web](/docs/id/claude-code-on-the-web), aplikasi mobile dan desktop, [rutinitas terjadwal](/docs/id/routines), dan terminal, dengan [`claude --cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-web) atau [dispatch `--environment`](/docs/id/self-hosted-environments-testing#run-the-test-loop), dapat berjalan di lingkungan yang di-host sendiri. Sesi [Claude Tag](https://claude.com/docs/claude-tag/overview) dapat berjalan di dalamnya juga, tetapi Claude tidak dapat menggunakan [Access bundles](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle) dalam sesi tersebut belum. Sesi [Claude Security](/docs/id/claude-security) dan [Code Review](/docs/id/code-review) belum dirutekan ke mereka. Dukungan untuk dua permukaan itu mengikuti secara terpisah.50* **Surfaces**: sesi dimulai dari [claude.ai/code](https://claude.ai/code), aplikasi mobile dan desktop, [rutinitas terjadwal](/docs/id/routines), dan terminal, dengan [`claude --cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-cloud) atau [dispatch `--environment`](/docs/id/self-hosted-environments-testing#run-the-test-loop), dapat berjalan di lingkungan yang di-host sendiri. Sesi [Claude Tag](https://claude.com/docs/claude-tag/overview) dapat berjalan di dalamnya juga, tetapi Claude tidak dapat menggunakan [Access bundles](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle) dalam sesi tersebut belum. Sesi [Claude Security](/docs/id/claude-security) dan [Code Review](/docs/id/code-review) belum dirutekan ke mereka. Dukungan untuk dua permukaan itu mengikuti secara terpisah.

51* **Repositories**: sesi memeriksa repositori dari GitHub; lihat [opsi autentikasi GitHub](/docs/id/claude-code-on-the-web#github-authentication-options).51* **Repositories**: sesi memeriksa repositori dari GitHub; lihat [opsi autentikasi GitHub](/docs/id/claude-code-on-the-web#github-authentication-options).

52* **Billing**: sesi dalam lingkungan yang di-host sendiri menggunakan penggunaan Claude Code organisasi Anda dengan cara yang sama seperti sesi dalam lingkungan yang di-host Anthropic.52* **Billing**: sesi dalam lingkungan yang di-host sendiri menggunakan penggunaan Claude Code organisasi Anda dengan cara yang sama seperti sesi dalam lingkungan yang di-host Anthropic.

53 53 

Details

37| `CLAUDE_CODE_REMOTE_SESSION_ID` | ID sesi dalam bentuk `cse_...` yang ditandai. Ini adalah sesi yang sama yang dilihat [lifecycle hooks](#lifecycle-hooks) sebagai `CLAUDE_RUNNER_SESSION_ID` dalam bentuk `session_...`; variabel UUID cocok di kedua sisi, dan mengganti awalan `cse_` dengan `session_` menghasilkan ID yang ditampilkan di URL sesi. |37| `CLAUDE_CODE_REMOTE_SESSION_ID` | ID sesi dalam bentuk `cse_...` yang ditandai. Ini adalah sesi yang sama yang dilihat [lifecycle hooks](#lifecycle-hooks) sebagai `CLAUDE_RUNNER_SESSION_ID` dalam bentuk `session_...`; variabel UUID cocok di kedua sisi, dan mengganti awalan `cse_` dengan `session_` menghasilkan ID yang ditampilkan di URL sesi. |

38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | ID sesi yang sama dalam bentuk UUID kanonik, untuk sistem yang menggunakan UUID sebagai kunci. |38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | ID sesi yang sama dalam bentuk UUID kanonik, untuk sistem yang menggunakan UUID sebagai kunci. |

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

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

41| `ANTHROPIC_BASE_URL` | URL dasar API yang akan digunakan anak, dikirimkan oleh bidang kontrol per sesi dan biasanya `https://api.anthropic.com`. Jangan timpa: kredensial inferensi sesi adalah token OAuth yang dikeluarkan Anthropic yang tidak diterima penyedia lain, jadi inferensi di lingkungan yang di-host sendiri tidak dapat dialihkan ke tempat lain. |41| `ANTHROPIC_BASE_URL` | URL dasar API yang akan digunakan anak, dikirimkan oleh bidang kontrol per sesi dan biasanya `https://api.anthropic.com`. Jangan timpa: kredensial inferensi sesi adalah token OAuth yang dikeluarkan Anthropic yang tidak diterima penyedia lain, jadi inferensi di lingkungan yang di-host sendiri tidak dapat dialihkan ke tempat lain. |

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

43 43 


410 Bagaimana konfigurasi setiap sesi dirakit410 Bagaimana konfigurasi setiap sesi dirakit

411</h3>411</h3>

412 412 

413Runner memberikan setiap sesi direktori konfigurasinya sendiri, ditanam dari snapshot dalam memori `~/.claude/` host yang ditangkap runner sekali saat startup: `settings.json`, `CLAUDE.md`, hooks, agents, commands, dan skills di gambar runner Anda berlaku untuk setiap sesi sebagai baseline tingkat pengguna. Karena snapshot diambil saat startup, perubahan konfigurasi di host yang berjalan hanya berlaku setelah restart runner. Atur `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` untuk menabur dari jalur berbeda, atau arahkan ke direktori kosong untuk menonaktifkan penanaman.413Runner memberikan setiap sesi direktori konfigurasinya sendiri, ditanam dari snapshot `~/.claude/` host yang ditangkap runner sekali saat startup: `settings.json`, `CLAUDE.md`, hooks, agents, commands, dan skills di gambar runner Anda berlaku untuk setiap sesi sebagai baseline tingkat pengguna. Jika Anda mengubah konfigurasi di host yang berjalan, perubahan hanya berlaku setelah Anda memulai ulang runner.

414 

415Atur `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` untuk menabur dari jalur berbeda, atau arahkan ke direktori kosong untuk menonaktifkan penanaman.

414 416 

415`.claude/settings.json` yang dikomit repositori berlapis di atas sebagai pengaturan proyek. Sesi juga membaca [`managed-settings.json`](/docs/id/settings#where-settings-live) dari jalur sistem standar di gambar runner Anda. Apakah kuncinya berlaku bersama [pengaturan yang dikelola server](/docs/id/server-managed-settings) mengikuti [bagaimana Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources): secara default, ketika organisasi Anda mengirimkan kunci yang dikelola server apa pun, sesi mengabaikan file gambar runner terlepas dari [kunci yang dibaca Claude Code dari setiap sumber admin](/docs/id/managed-settings#keys-read-from-every-admin-source), seperti blok `env`, kunci sandbox, jalur biner sandbox, dan `forceRemoteSettingsRefresh`. Lihat [prioritas pengaturan](/docs/id/settings#settings-precedence).417`.claude/settings.json` yang dikomit repositori berlapis di atas sebagai pengaturan proyek. Sesi juga membaca [`managed-settings.json`](/docs/id/settings#where-settings-live) dari jalur sistem standar di gambar runner Anda. Apakah kuncinya berlaku bersama [pengaturan yang dikelola server](/docs/id/server-managed-settings) mengikuti [bagaimana Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources): secara default, ketika organisasi Anda mengirimkan kunci yang dikelola server apa pun, sesi mengabaikan file gambar runner terlepas dari [kunci yang dibaca Claude Code dari setiap sumber admin](/docs/id/managed-settings#keys-read-from-every-admin-source), seperti blok `env`, kunci sandbox, jalur biner sandbox, dan `forceRemoteSettingsRefresh`. Lihat [prioritas pengaturan](/docs/id/settings#settings-precedence).

416 418 

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Terapkan lingkungan yang di-host sendiri ke produksi

6 

7> Jalankan runner yang di-host sendiri dalam produksi: pengerasan keamanan, kontrol egress jaringan, kredensial git, resep Kubernetes dan Compose, serta pemecahan masalah.

8 

9<Note>

10 Lingkungan yang di-host sendiri berada dalam beta publik pada paket Team dan Enterprise; [Ketersediaan dan batasan](/docs/id/self-hosted-environments#availability-and-limitations) mencakup jalur pengaktifan. Halaman ini mencakup menjalankan armada dalam produksi; lihat [quickstart](/docs/id/self-hosted-environments-quickstart) untuk runner dan sesi pertama Anda.

11</Note>

12 

13Sebuah [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) menjalankan [sesi cloud](/docs/id/claude-code-on-the-web) Claude Code pada runner yang Anda terapkan di dalam jaringan Anda, dan dalam produksi sesi-sesi tersebut menjalankan kode yang diarahkan model atas nama semua orang yang dapat mengirim sesi ke lingkungan. Halaman ini untuk operator yang membawa lingkungan yang berfungsi ke produksi. Ini berfungsi melalui penerapan secara berurutan: apa yang harus dikunci sebelum menghubungkan sistem nyata, egress yang dibutuhkan armada, bagaimana sesi mengautentikasi ke host git Anda, resep penerapan itu sendiri, dan apa yang harus diperiksa ketika sesi berperilaku tidak normal.

14 

15<h2 id="harden-your-deployment">

16 Keraskan penerapan Anda

17</h2>

18 

19Runner yang di-host sendiri menjalankan kode arbitrer yang diarahkan model pada infrastruktur Anda atas nama semua orang yang dapat mengirim sesi ke lingkungannya. Itu adalah anggota organisasi Anthropic Anda, dan siapa pun yang dapat memulai sesi saluran [Claude Tag](https://claude.com/docs/claude-tag/overview) dalam cakupan yang diarahkan Pemilik ke lingkungan. Kerjakan setiap item sebelum Anda menghubungkan lingkungan ke sistem produksi:

20 

21* **Kontainer ephemeral per-sesi**: jalankan setiap proses runner dalam kontainer atau VM segar yang dihancurkan ketika proses keluar, dengan `--capacity 1` dan `--drain-grace-sec 0` default sehingga setiap kontainer melayani tepat satu sesi. Pada kapasitas yang lebih tinggi, atau dengan grace drain positif, satu kontainer melayani beberapa sesi dari [pemilik terkunci](/docs/id/self-hosted-environments#key-concepts) yang sama; lihat [Runner lifecycle](/docs/id/self-hosted-environments#runner-lifecycle). Jangan gunakan kembali filesystem antara restart runner, kecuali dalam pengaturan [pre-warmed checkout](#reuse-a-pre-warmed-checkout) yang disengaja, dan tidak pernah di seluruh pemilik.

22* **Tidak ada kredensial luas dalam gambar**: jangan sertakan kunci SSH jangka panjang, kredensial penyedia cloud, atau token akses pribadi yang memberikan lebih dari yang dibutuhkan sesi. Mint kredensial yang digunakan selama sesi, seperti push atau token API, per sesi dari [script wrapper](/docs/id/self-hosted-environments-configuration#wrapper-scripts) Anda. Untuk klon awal, yang terjadi sebelum wrapper berjalan, gunakan [`checkout` lifecycle hook](/docs/id/self-hosted-environments-configuration#checkout) atau [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy); lihat [Konfigurasi git](#configure-git).

23* **Simpan rahasia lingkungan dari host yang menjalankan sesi**: rahasia lingkungan dapat mendaftarkan runner dan mengambil sesi apa pun yang antri di lingkungan. Pada armada tetap, itu hidup di setiap host runner, di mana kode sesi apa pun dapat membaca file rahasia. Lebih suka [runner on-demand](/docs/id/self-hosted-environments-configuration#on-demand-runners), di mana rahasia tetap di host orchestrator, yang tidak pernah menjalankan kode pengguna, dan setiap runner menerima perintah kerja sekali pakai yang mendaftarkan tepat satu runner. Pada armada tetap, perlakukan file environment-secret sebagai dapat dibaca oleh setiap sesi dan putar rahasia setelah kompromi sesi yang dicurigai.

24* **Egress jaringan default-deny**: batasi lalu lintas keluar kontainer runner dan sesi di batas jaringan Anda sendiri di setiap lingkungan; [Default-deny egress](#default-deny-egress) mencakup apa yang harus diizinkan dan mengapa.

25* **IAM host least-privilege**: identitas komputasi yang terpasang ke host runner, seperti profil instans atau akun layanan node, harus memberikan hanya apa yang dibutuhkan runner itu sendiri. Sesi harus mendapatkan kredensial mereka sendiri melalui script wrapper Anda daripada mewarisi identitas host.

26* **Blokir endpoint metadata cloud dari sesi**: menjaga sesi dari identitas host memerlukan pemblokiran akses mereka ke endpoint metadata cloud, dan kebijakan egress tingkat subnet tidak mencegat lalu lintas metadata link-local, jadi blokir di kontainer itu sendiri:

27 

28 * IMDSv2 dengan batas hop satu

29 * GKE Workload Identity dengan penyembunyian metadata

30 * Penolakan eksplisit untuk `169.254.169.254` dalam namespace jaringan kontainer sesi

31 

32 Blokir berlaku untuk script wrapper dan lifecycle hooks Anda juga, karena mereka berbagi kontainer. Autentikasi pertukaran token apa pun dengan [session JWT](/docs/id/self-hosted-environments-identity) terhadap layanan token Anda sendiri melalui egress yang diizinkan, atau gunakan identitas web berbasis file seperti IAM Roles for Service Accounts (IRSA) di Amazon EKS.

33* **Isolasi filesystem per-runner**: setiap proses runner mendapatkan direktori kerjanya sendiri yang tidak dapat dibaca atau ditulis oleh proses lain di host. Buat `--hooks-dir`, script wrapper, dan `~/.claude/` host read-only untuk sesi, baik built-in ke gambar atau dipasang read-only.

34* **Dispatch tidak memiliki kontrol akses per-lingkungan**: anggota organisasi Anthropic Anda dapat mengirim sesi ke salah satu lingkungannya. Jika Pemilik [merutekan saluran Claude Tag ke lingkungan](/docs/id/cloud-environments#set-the-environment-a-claude-tag-channel-uses), siapa pun yang [pengaturan akses Claude Tag](https://claude.com/docs/claude-tag/admins/restrict-access#restrict-who-can-use-claude) mengakui dapat memulai sesi saluran yang berjalan di sana. Secara default itu adalah siapa pun di ruang kerja Slack yang terhubung, dengan atau tanpa akun Claude. Perlakukan setiap host runner sebagai dapat dijangkau untuk eksekusi kode oleh semua orang yang dapat mengirim ke sana, dan tempatkan di host runner hanya data dan kredensial yang semua orang tersebut diizinkan untuk membaca. [`--lock-to-account`](/docs/id/self-hosted-environments-reference#runner-cli-flags) membatasi sesi akun mana yang dijalankan host tertentu, tetapi tidak mempersempit siapa yang dapat mengirim ke lingkungan. Untuk membuat lingkungan yang di-host sendiri satu-satunya opsi picker, [Pemilik](/docs/id/cloud-environments#organization-shared-environments) dapat menyembunyikan lingkungan yang di-host Anthropic untuk seluruh organisasi dari halaman [**Cloud environments**](https://claude.ai/admin-settings/cloud-environments).

35* **Terapkan penjaga pengaturan repo**: pilih mode penjaga dengan [`--confine-repo-settings`](/docs/id/self-hosted-environments-reference#runner-cli-flags). Default `warn` mencatat pelanggaran dan masih menghasilkan sesi, `enforce` menolak sesi, dan `off` menonaktifkan pemindaian. Runner memindai pengaturan yang berkomitmen di setiap repositori untuk:

36 

37 * Hibah yang diselesaikan di luar ruang kerja sesi itu sendiri: entri `additionalDirectories`, aturan `Edit`, `Write`, atau `NotebookEdit` dalam `permissions.allow`, atau entri `sandbox.filesystem.allowWrite` atau `allowRead`

38 * Blok `env` yang tidak kosong

39 * Penggantian postur operator seperti `sandbox.enabled: false`

40 

41 Penjaga berjalan terlepas dari [`--trust-workspace`](/docs/id/self-hosted-environments-reference#runner-cli-flags), dan tidak mencakup hook repositori, `.mcp.json`, atau aturan Bash; lihat [Permissions and tool approval](/docs/id/self-hosted-environments-configuration#permissions-and-tool-approval) untuk tempat hibah tersebut berada.

42 

43<Note>

44 Daftar IP allowlist organisasi Anda tidak mencakup lalu lintas runner yang di-host sendiri secara default. Jangan andalkan itu sebagai kontrol jaringan untuk lalu lintas runner atau sesi; terapkan default-deny egress di batas jaringan Anda sendiri, dan hubungi tim akun Anthropic Anda jika Anda menginginkan penegakan allowlist IP untuk organisasi Anda.

45</Note>

46 

47<h2 id="network-requirements">

48 Persyaratan jaringan

49</h2>

50 

51Runner dan anak-anak sesi yang dihasilkannya membuat koneksi keluar ke host di bawah. Batasi egress kontainer sesi ke host ini dan layanan internal spesifik yang perlu dijangkau sesi; [Default-deny egress](#default-deny-egress) mencakup cara dan alasannya.

52 

53Host-host ini selalu diperlukan:

54 

55| Host | Port | Digunakan untuk |

56| :------------------------------------------------------------------- | :-------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

57| `api.anthropic.com` | 443, HTTPS; WSS untuk konektor SCM saja | Bidang kontrol runner dan streaming sesi, inferensi model, flag fitur, analitik produk, pengambilan kunci [JWKS](/docs/id/self-hosted-environments-identity), penandatanganan komit, proxy git ketika `--use-anthropic-git-proxy` diatur, dan terowongan [SCM connector](/docs/id/self-hosted-environments-reference#scm-connector-flags) orchestrator ketika `--scm-connector-host` diatur |

58| Host git Anda, seperti `github.com` atau host GitHub Enterprise Anda | 443 atau 22 | Kloning dan push repositori. Tidak diperlukan jika runner menggunakan `--use-anthropic-git-proxy`, yang merutekan lalu lintas git melalui `api.anthropic.com`. |

59 

60Apakah host-host ini diperlukan tergantung pada konfigurasi Anda:

61 

62| Host | Port | Ketika diperlukan |

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

64| `downloads.claude.ai` | 443 | Pada waktu instalasi, ketika Anda menginstal atau memperbarui Claude Code di host dengan installer asli; script `install.sh` itu sendiri disajikan dari `claude.ai`. Pada waktu runtime sesi, hanya ketika sesi menginstal plugin dari marketplace Anthropic resmi. |

65| `storage.googleapis.com` | 443 | Pada waktu runtime sesi, untuk hitungan instalasi plugin dan metadata yang ditampilkan dalam `/plugin`. |

66| `code.claude.com` dan `claude.com` | 443 | Pencarian dokumentasi oleh agen claude-code-guide built-in dan permintaan WebFetch yang telah disetujui sebelumnya selama sesi. Memblokir host-host ini hanya mempengaruhi pencarian dokumentasi. |

67| `*.frame.claudeusercontent.com` | 443 | Hanya ketika [alat Artifact](/docs/id/artifacts#availability) tersedia untuk sesi di organisasi Anda; default bervariasi menurut paket, sesuai tabel ketersediaan di sana. Atur `CLAUDE_CODE_DISABLE_ARTIFACT=1` di runner untuk menjaga alat tetap dinonaktifkan terlepas dari pengaturan organisasi. |

68| `registry.npmjs.org` | 443 | Ketika sesi menginstal plugin, baik untuk mengambil paket plugin sumber npm maupun untuk menginstal dependensi Node.js plugin, atau ketika server MCP yang diluncurkan `npx` berjalan |

69| `http-intake.logs.us5.datadoghq.com` | 443 | Metrik operasional Anthropic. Hanya ketika `CLAUDE_CODE_BYOC_ENABLE_DATADOG=1` diatur; dimatikan secara default di lingkungan yang di-host sendiri. |

70| `browser-intake-us5-datadoghq.com` | 443 | Unggahan laporan kesalahan Anthropic, dikirim hanya ketika [pelaporan kesalahan](/docs/id/data-usage#telemetry-services) diaktifkan untuk akun sesi. Ditekan oleh `DISABLE_ERROR_REPORTING=1` atau `DISABLE_TELEMETRY=1`. |

71 

72Runner tidak menjangkau `statsig.anthropic.com`, `*.sentry.io`, `claude.ai`, atau `platform.claude.com`. Host-host ini muncul dalam beberapa daftar periksa jaringan enterprise yang lebih lama, tetapi Anda tidak perlu mengizinkan daftar mereka untuk lalu lintas runner atau sesi: pengambilan flag fitur pergi ke `api.anthropic.com`, dan runner mengautentikasi dengan rahasia lingkungan daripada OAuth interaktif. Dua alur sisi host memang menjangkau `claude.ai`, jadi jalankan dari host yang egress-nya memungkinkannya daripada memperluas egress kontainer sesi: installer satu baris mengambil `install.sh` dari `claude.ai` pada waktu instalasi, dan `claude auth login` interaktif, yang [guided setup](/docs/id/self-hosted-environments-quickstart#set-up-an-environment-and-runner), mode signed-in `doctor`, dan [CI dispatch](/docs/id/self-hosted-environments-testing#authenticate-from-ci) gunakan, masuk melalui `claude.ai`, `claude.com`, dan `platform.claude.com`. `mcp-proxy.anthropic.com` juga tidak diperlukan: sesi yang di-host sendiri tidak menggunakannya, dan pengiriman konektor claude.ai organisasi Anda ke sesi, ketika diaktifkan untuk organisasi Anda, merutekan melalui `api.anthropic.com`. Lihat [MCP servers](/docs/id/self-hosted-environments-configuration#mcp-servers).

73 

74<h3 id="default-deny-egress">

75 Default-deny egress

76</h3>

77 

78Terapkan kontainer runner dan sesi dalam segmen jaringan atau namespace yang lalu lintas keluarnya dibatasi ke host dalam [tabel persyaratan jaringan](#network-requirements), host git Anda, dan layanan internal spesifik yang perlu dijangkau sesi. Produk tidak dapat memverifikasi atau menegakkan ini, jadi terapkan di batas jaringan Anda sendiri di setiap lingkungan. Kode sesi diarahkan model dan dapat mencoba koneksi ke host arbitrer; default-deny egress di lapisan jaringan membatasi di mana upaya tersebut dapat mendarat. Ini berlaku terlepas dari mode izin: set alat yang telah disetujui sebelumnya sudah mencakup `Bash`, jadi egress shell berjalan tanpa prompt bahkan tanpa [mode auto](/docs/id/self-hosted-environments-configuration#permissions-and-tool-approval).

79 

80Untuk detail tentang telemetri mana yang dipancarkan setiap sesi dan cara mematikannya, lihat [Telemetry](/docs/id/self-hosted-environments-reference#telemetry).

81 

82<h3 id="authenticate-to-an-egress-proxy">

83 Autentikasi ke proxy egress

84</h3>

85 

86Beberapa proxy egress korporat memerlukan header `Proxy-Authorization` pada setiap koneksi. Token dalam header itu sering berputar terlalu cepat untuk ditulis ke URL proxy yang Anda atur dalam `HTTPS_PROXY`. Atur `HTTPS_PROXY` atau `HTTP_PROXY` ke URL proxy Anda seperti biasa, kemudian atur `--proxy-authorization-command` atau `--proxy-authorization-file` untuk memberi tahu runner di mana membaca nilai header. Kedua flag memerlukan Claude Code v2.1.238 atau lebih baru.

87 

88<h4 id="choose-where-the-proxy-authorization-value-comes-from">

89 Pilih dari mana nilai `Proxy-Authorization` berasal

90</h4>

91 

92Pilih flag yang cocok dengan cara Anda menghasilkan token `Proxy-Authorization`:

93 

94* **[`--proxy-authorization-command <command>`](/docs/id/self-hosted-environments-reference#runner-cli-flags)**: pilih ini untuk token yang Anda hasilkan sesuai permintaan. Runner menjalankan perintah shell dan menggunakan stdout yang dipangkas sebagai nilai header, misalnya `Bearer <token>`.

95* **[`--proxy-authorization-file <path>`](/docs/id/self-hosted-environments-reference#runner-cli-flags)**: pilih ini untuk token yang proses lain putar di tempat. Runner membaca file dan menggunakan isinya yang dipangkas sebagai nilai header.

96 

97<h4 id="configurations-the-runner-refuses-to-start-with">

98 Konfigurasi yang menolak runner untuk dimulai dengan

99</h4>

100 

101Setiap flag juga memiliki bentuk variabel lingkungan, tercantum di sebelahnya dalam [referensi flag CLI runner](/docs/id/self-hosted-environments-reference#runner-cli-flags). Sebelum runner menghubungi proxy atau bidang kontrol Anda, itu memeriksa flag dan variabelnya, dan menolak untuk memulai dalam tiga kasus:

102 

103* **Kedua flag diatur**: satu flag ditambah variabel lingkungan flag lainnya dihitung sebagai pengaturan keduanya.

104* **Tidak ada URL proxy**: baik `HTTPS_PROXY` maupun `HTTP_PROXY` tidak memegang URL `http://` atau `https://`. Runner membaca kedua variabel dalam huruf besar atau kecil, dan tidak berkonsultasi dengan `ALL_PROXY`.

105* **Flag apa pun diteruskan ke subperintah orchestrator**: `self-hosted-runner orchestrator` tidak menerima flag atau variabel lingkungannya. Teruskan flag ke setiap runner yang dimulai orchestrator.

106 

107<h4 id="what-the-runner-changes-while-a-proxy-authorization-flag-is-set">

108 Apa yang diubah runner saat flag proxy-authorization diatur

109</h4>

110 

111Dengan flag apa pun yang diatur, runner memulai pendengar miliknya sendiri dan mengirim lalu lintas proxy dari dirinya sendiri, lifecycle hooks-nya, dan sesi-sesinya melalui pendengar itu. Pendengar menambahkan header `Proxy-Authorization` dalam perjalanan ke proxy Anda.

112 

113* **Pendengar**: pendengar adalah proxy forward di `127.0.0.1`. Runner memulai pendengar sebelum mendaftar dengan bidang kontrol, dan keluar pada startup jika pendengar tidak dapat dimulai.

114* **Variabel proxy**: runner menulis ulang mana pun dari `HTTPS_PROXY` dan `HTTP_PROXY` yang Anda atur sehingga menunjuk ke pendengar. Nilai yang ditulis ulang itu menjangkau runner itu sendiri, lifecycle hooks-nya, dan setiap sesi yang dijalankannya.

115* **Rotasi token**: token yang diputar berlaku tanpa restart. Untuk setiap koneksi yang dibuka pendengar ke proxy Anda, runner menjalankan perintah Anda atau membaca file Anda lagi dan menambahkan hasilnya sebagai header.

116* **Lingkungan sesi**: sesi menjangkau proxy Anda hanya melalui pendengar. Dalam lingkungan setiap sesi, runner menghapus `ALL_PROXY`, menghapus ejaan apa pun dari `HTTPS_PROXY` atau `HTTP_PROXY` yang tidak Anda atur, dan menyematkan `NO_PROXY` ke nilai runner itu sendiri.

117* **Log**: runner tidak pernah mencatat nilai header.

118 

119<h2 id="configure-git">

120 Konfigurasi git

121</h2>

122 

123Runner mengelola checkout repositori tetapi tidak mengonfigurasi identitas git atau kredensial secara default. Anda mengontrol gambar dan lingkungan proses runner, jadi Anda mengontrol konfigurasi git. Pilih salah satu dari dua pendekatan:

124 

125* **Biarkan runner mengonfigurasi git**: mulai runner dengan `--configure-git` untuk memilikinya menulis identitas yang sama dan konfigurasi penandatanganan komit yang digunakan sesi yang di-host Anthropic

126* **Kirim konfigurasi git dalam gambar Anda**: atur identitas dan kredensial push sendiri, misalnya untuk berkomitmen di bawah identitas bot Anda sendiri

127 

128Lantai versi Git di host runner: [`--configure-git`](#let-the-runner-configure-git) penandatanganan komit SSH memerlukan Git 2.34 atau lebih baru, [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) memerlukan 2.32 atau lebih baru, dan melanjutkan sesi dari cabang yang didorong oleh [`--push-outcome-on-release`](/docs/id/self-hosted-environments-reference#runner-cli-flags) memerlukan 2.29 atau lebih baru. Git 2.24 cukup jika Anda menghilangkan ketiganya dan mengelola identitas git sendiri.

129 

130<h3 id="let-the-runner-configure-git">

131 Biarkan runner mengonfigurasi git

132</h3>

133 

134Mulai runner dengan `--configure-git`, atau atur `SELF_HOSTED_RUNNER_CONFIGURE_GIT=1`, untuk memilikinya menulis konfigurasi git global pada startup:

135 

136* `user.name = Claude` dan `user.email = noreply@anthropic.com`, cocok dengan sesi yang di-host Anthropic

137* Penandatanganan komit dan tag format SSH, dirutekan melalui shim yang dikelola runner yang menandatangani setiap komit melalui layanan penandatanganan Anthropic menggunakan kredensial sesi itu sendiri. Tanda tangan dapat diverifikasi di GitHub terhadap kunci penandatanganan SSH yang dipublikasikan Anthropic.

138* `push.negotiate = true`, jadi git menanyakan host git Anda komit mana yang sudah dimilikinya sebelum mengemas push. Memerlukan Claude Code v2.1.257 atau lebih baru.

139* `core.hooksPath` menunjuk ke direktori hooks yang dikelola runner. Hook `commit-msg` dan `prepare-commit-msg`-nya menambahkan trailer `Co-authored-by:` untuk pembuat sesi ke setiap komit, dibangun dari email dalam [`CCR_SESSION_ACCOUNT_EMAIL`](/docs/id/self-hosted-environments-configuration#wrapper-scripts) dan dihilangkan ketika variabel itu tidak diatur. Jika gambar Anda sudah menetapkan `core.hooksPath`, runner membiarkan pengaturan Anda tetap, melewati instalasi hook ini, dan mencetak peringatan `[runner:git]`.

140 

141Penandatanganan komit memerlukan git 2.34 atau lebih baru; runner memeriksa pada startup dan keluar dengan kesalahan jika git Anda lebih lama. Flag ini tidak mengonfigurasi kredensial push, yang masih Anda sediakan dalam gambar.

142 

143<h3 id="ship-git-config-in-your-image">

144 Kirim konfigurasi git dalam gambar Anda

145</h3>

146 

147Identitas git diperlukan untuk komit apa pun. Aturnya di seluruh sistem dalam Dockerfile Anda sehingga konfigurasi berlaku terlepas dari pengguna mana yang menjalankan proses runner:

148 

149```dockerfile theme={null}

150RUN git config --system user.name "Claude" && \

151 git config --system user.email "noreply@anthropic.com"

152```

153 

154Tanpa identitas, `git commit` gagal dengan `Please tell me who you are` dan sesi tidak dapat membuat kemajuan. Anda dapat menggunakan identitas bot Anda sendiri; runner tidak mengganti nilai-nilai ini.

155 

156Jangan memanggang kredensial push jangka panjang atau berskop luas ke gambar runner bersama: kredensial dalam gambar tersedia untuk setiap sesi yang dijalankan gambar, siapa pun yang memulainya. Sebagai gantinya, mint token jangka pendek, least-scoped per sesi dari [script wrapper](/docs/id/self-hosted-environments-configuration#wrapper-scripts) Anda, menggunakan identitas pembuat sesi yang didekode dari session JWT. Pasangkan dengan kontainer per-sesi ephemeral, yang memerlukan `--capacity 1`, jadi tidak ada kredensial yang melampaui sesi yang memintnya; lihat [bagian pengerasan](#harden-your-deployment).

157 

158Jika Anda harus mengonfigurasi kredensial push di tingkat gambar, misalnya untuk kunci deploy read-only, cakupkan seerat mungkin yang diizinkan host git Anda:

159 

160* Kunci deploy SSH terbatas pada satu repositori dengan rewrite `url.<base>.insteadOf`

161* `credential.helper` yang mengembalikan token berskop minimal

162* `GIT_SSH_COMMAND` menunjuk ke kunci berskop sempit

163 

164Mekanisme apa pun yang Anda konfigurasi harus bekerja tanpa prompt, karena klon built-in runner dan fetch menonaktifkan prompt yang git, SSH, dan Git Credential Manager akan menampilkan:

165 

166* Runner menetapkan `GIT_TERMINAL_PROMPT=0`, jadi git tidak meminta nama pengguna atau kata sandi.

167* Runner menjalankan SSH dengan `BatchMode=yes`, ditambahkan ke `GIT_SSH_COMMAND` Anda jika Anda menetapkan satu, jadi SSH tidak meminta frasa sandi atau konfirmasi host.

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

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.

172 

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

174 

175```dockerfile theme={null}

176RUN git config --system --add safe.directory '*'

177```

178 

179<h3 id="use-the-anthropic-git-proxy">

180 Gunakan proxy git Anthropic

181</h3>

182 

183Mulai runner dengan `--use-anthropic-git-proxy`, atau atur `CLAUDE_RUNNER_USE_GIT_PROXY=1`, untuk memilikinya klon melalui proxy git Anthropic, diautentikasi dengan token jangka pendek sesi itu sendiri. Untuk sesi pengguna biasa, proxy menggunakan token OAuth GitHub atau GitHub Enterprise yang disimpan untuk pembuat sesi; untuk sesi bot dan agen, itu menggunakan token instalasi GitHub App organisasi Anda. Bagaimanapun, gambar runner tidak memerlukan kredensial git sama sekali: tidak ada kunci SSH, tidak ada credential helper, tidak ada `.netrc`. Ini adalah jalur auth yang sama yang digunakan lingkungan yang di-host Anthropic.

184 

185Proxy memerlukan `--capacity 1` karena URL proxy adalah per-sesi, dan git 2.32 atau lebih baru karena git yang lebih lama mengabaikan mekanisme konfigurasi yang digunakan proxy untuk mengisolasi sesi satu sama lain. Runner menolak untuk memulai jika salah satu persyaratan tidak terpenuhi. Karena proxy mengambil dari sisi Anthropic, host git Anda harus dapat dijangkau dari infrastruktur Anthropic, persyaratan yang sama yang dimiliki sesi yang di-host Anthropic; untuk host git yang hanya dapat dirutekan di dalam jaringan Anda, gunakan [`checkout` lifecycle hook](/docs/id/self-hosted-environments-configuration#checkout). Setiap proses runner menangani satu sesi pada satu waktu, jadi jalankan lebih banyak replika untuk paralelisme. Ketika proxy diaktifkan, `--git-host-rewrite` dan `--git-ssh-rewrite` tidak berpengaruh: URL proxy menunjuk ke `api.anthropic.com`, bukan host git Anda.

186 

187Runner juga melaporkan opt-in ke Anthropic ketika mendaftar, mencetak `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` pada startup. Setiap sesi pada runner yang telah opt-in kemudian menggunakan baik git yang dikelola Anthropic atau URL proxy per-sesi. Ketika sesi menggunakan URL proxy per-sesi, runner mencatat satu baris `[runner:warn]` mengatakan demikian.

188 

189<h3 id="rewrite-git-urls-for-private-networks">

190 Tulis ulang URL git untuk jaringan pribadi

191</h3>

192 

193URL repositori tiba dari bidang kontrol sebagai HTTPS, dengan nama host host git Anda; untuk GitHub Enterprise, itu adalah nama host yang Anda konfigurasi untuk [integrasi GitHub Enterprise](/docs/id/github-enterprise-server) dalam pengaturan admin Claude Code di claude.ai. Dua flag yang dapat diulang menulis ulang URL tersebut sebelum klon:

194 

195* `--git-host-rewrite <from>=<to>`: untuk split-horizon DNS, di mana Anthropic menjangkau host git Anda melalui nama host eksternal tetapi runner harus menggunakan yang internal

196* `--git-ssh-rewrite <host>`: untuk host git yang hanya menerima SSH, menulis ulang `https://<host>/owner/repo` ke `git@<host>:owner/repo`

197 

198Penulisan ulang host berjalan terlebih dahulu, jadi daftar nama host internal dalam `--git-ssh-rewrite` jika Anda memerlukan keduanya. Untuk kontrol penuh atas checkout, gunakan [`checkout` lifecycle hook](/docs/id/self-hosted-environments-configuration#checkout).

199 

200<h2 id="build-the-runner-image">

201 Bangun gambar runner

202</h2>

203 

204Anthropic tidak menerbitkan gambar runner yang telah dibangun sebelumnya. Bangun milik Anda sendiri di sekitar biner `claude`, berlapis dengan toolchain apa pun yang dibutuhkan repositori Anda: runtime bahasa, compiler, package manager, dan sidecar [MCP](/docs/id/mcp).

205 

206Resep di bawah menggunakan `--capacity 4`, jadi satu kontainer melayani hingga empat sesi bersamaan dari pemilik terkunci yang sama. Itu tidak memberikan isolasi kontainer per-sesi dalam [bagian pengerasan](#harden-your-deployment): sebelum menghubungkan lingkungan ke sistem produksi, jalankan resep pada `--capacity 1` dengan satu kontainer per sesi, atau gunakan [runner on-demand](/docs/id/self-hosted-environments-configuration#on-demand-runners), yang juga menjaga rahasia lingkungan dari host yang menjalankan sesi.

207 

208Dockerfile ini adalah titik awal minimal:

209 

210```dockerfile theme={null}

211FROM debian:bookworm-slim

212ARG CLAUDE_CODE_VERSION

213RUN apt-get update && apt-get install -y --no-install-recommends git curl ca-certificates openssh-client \

214 && rm -rf /var/lib/apt/lists/*

215RUN curl -fsSL "https://downloads.claude.ai/claude-code-releases/${CLAUDE_CODE_VERSION:?set with --build-arg CLAUDE_CODE_VERSION}/linux-x64/claude" \

216 -o /usr/local/bin/claude && chmod +x /usr/local/bin/claude

217RUN git config --system user.name "Claude" \

218 && git config --system user.email "noreply@anthropic.com" \

219 && git config --system --add safe.directory '*'

220ENTRYPOINT ["claude"]

221```

222 

223Tukar `linux-x64` untuk `linux-arm64` jika node Anda adalah ARM, atau untuk `linux-x64-musl` atau `linux-arm64-musl` pada gambar berbasis musl seperti Alpine; lihat [Alpine Linux setup](/docs/id/setup#alpine-linux-and-musl-based-distributions) untuk paket tambahan yang dibutuhkan gambar musl. URL adalah lokasi rilis Claude Code standar, jadi Anda dapat memverifikasi biner yang diunduh terhadap manifes yang ditandatangani rilis seperti yang dijelaskan dalam [Binary integrity and code signing](/docs/id/setup#binary-integrity-and-code-signing). Bangun gambar dengan Claude Code versi 2.1.224 atau lebih baru, kemudian dorong ke registri Anda dan referensikan dalam resep di bawah:

224 

225```bash theme={null}

226docker build --build-arg CLAUDE_CODE_VERSION=2.1.224 -t <your-registry>/claude-runner:latest .

227```

228 

229<h2 id="size-cpu-and-memory-for-sessions">

230 Ukuran CPU dan memori untuk sesi

231</h2>

232 

233Ukuran kontainer atau host runner untuk sesi yang dijalankannya daripada untuk proses runner. Runner itu sendiri menanyakan pekerjaan, menyiapkan checkout setiap sesi, menjalankan [lifecycle hooks](/docs/id/self-hosted-environments-configuration#lifecycle-hooks) Anda, dan memulai serta mengawasi proses sesi. Beban datang dari sesi: masing-masing adalah proses Claude Code ditambah apa pun yang dimulainya, seperti build, test suite, instalasi paket, dan [MCP server](/docs/id/mcp).

234 

235Untuk satu sesi, mulai dengan nilai-nilai berikut, dinyatakan sebagai permintaan dan batas Kubernetes atau setara platform Anda, dan perlakukan sebagai titik awal daripada persyaratan:

236 

237* **Memori**: permintaan dan batas 4 GiB masing-masing, yang memenuhi minimum 4 GB dalam [persyaratan sistem](/docs/id/setup#system-requirements) Claude Code. Jaga keduanya tetap sama sehingga penjadwal memperhitungkan memori penuh kontainer. Ketika kontainer mencapai batas memorinya, kernel membunuh proses di dalamnya, yang dapat mengakhiri sesi di tengah-tugas.

238* **CPU**: permintaan 2 CPU dan batas 4 CPU, jadi sesi dapat meledak di atas permintaan selama build. Kernel membatasi kontainer pada batas CPU-nya daripada membunuh proses di dalamnya, jadi sesi pada batas berjalan lebih lambat tetapi terus berjalan.

239 

240Dalam spec kontainer Kubernetes, atur nilai awal tersebut dengan blok `resources` berikut:

241 

242```yaml theme={null}

243resources:

244 requests:

245 cpu: "2"

246 memory: 4Gi

247 limits:

248 cpu: "4"

249 memory: 4Gi

250```

251 

252Build dan test biasanya merupakan bagian terbesar dan paling variabel dari beban sesi, jadi jalankan build representatif repositori Anda, ukur puncak CPU dan memorinya, dan naikkan nilai awal apa pun yang tidak meninggalkan ruang untuk proses Claude Code di atas puncak itu.

253 

254Runner menggunakan `--capacity` untuk membatasi berapa banyak sesi yang dijalankannya sekaligus. Itu tidak membagi CPU atau memori di antara mereka, jadi sesi pada runner berbagi CPU dan memori kontainer. Untuk membatasi bagian satu sesi, terapkan batas dari [script wrapper](/docs/id/self-hosted-environments-configuration#wrapper-scripts) Anda. Apa yang harus diberikan satu kontainer oleh karena itu tergantung pada berapa banyak sesi yang dilayaninya sekaligus:

255 

256* **Satu sesi per runner**: berikan setiap kontainer nilai satu sesi. Gunakan ukuran ini pada `--capacity 1`, yang [bagian pengerasan](#harden-your-deployment) rekomendasikan, dan untuk [runner on-demand](/docs/id/self-hosted-environments-configuration#on-demand-runners), di mana Anda menetapkan nilai pada workload yang [`spawn-runner` hook](/docs/id/self-hosted-environments-configuration#the-spawn-runner-hook) Anda kirimkan, seperti template pod Job Kubernetes.

257* **Beberapa sesi per runner**: pada `--capacity` di atas satu, kalikan nilai satu sesi dengan kapasitas, karena hingga banyak sesi dapat berjalan dalam kontainer sekaligus. Resep [Kubernetes](#kubernetes) dan [Docker Compose](#docker-compose) menjalankan `--capacity 4` tanpa batas CPU atau memori, jadi tambahkan batas yang diukur untuk kapasitas yang Anda jalankan.

258 

259<h2 id="kubernetes">

260 Kubernetes

261</h2>

262 

263Runner melayani `GET /healthz` di port 8080 secara default, dapat dikonfigurasi dengan `--health-port`, jadi probe Kubernetes bekerja tanpa setup tambahan. Endpoint mengembalikan `200` kapan pun proses hidup, jadi probe di bawah mendeteksi proses mati, bukan yang terjebak; untuk menangkap runner yang berhenti polling, beri peringatan pada seri `last_poll_age_seconds` dari [`/metrics`](/docs/id/self-hosted-environments-reference#prometheus-metrics). Deployment di bawah memasang rahasia lingkungan dari Secret Kubernetes, menunjuk probe liveness dan readiness ke `/healthz`, dan menetapkan periode grace terminasi 90 detik. Lihat [Shutdown timing](#shutdown-timing) untuk alasan periode grace penting.

264 

265Manifest tidak menetapkan `resources` CPU atau memori pada kontainer runner. Tambahkan blok yang diukur untuk kapasitas yang Anda jalankan, seperti [Size CPU and memory for sessions](#size-cpu-and-memory-for-sessions) jelaskan.

266 

267```yaml theme={null}

268apiVersion: apps/v1

269kind: Deployment

270metadata:

271 name: claude-runner

272 namespace: claude-runners

273spec:

274 replicas: 3

275 selector:

276 matchLabels:

277 app: claude-runner

278 template:

279 metadata:

280 labels:

281 app: claude-runner

282 app.kubernetes.io/part-of: claude-code-self-hosted-runner

283 spec:

284 terminationGracePeriodSeconds: 90

285 containers:

286 - name: runner

287 image: <your-registry>/claude-runner:latest

288 args:

289 - self-hosted-runner

290 - --environment-secret-file

291 - /etc/claude/environment-secret

292 - --capacity

293 - "4"

294 volumeMounts:

295 - name: environment-secret

296 mountPath: /etc/claude

297 readOnly: true

298 ports:

299 - name: health

300 containerPort: 8080

301 readinessProbe:

302 httpGet:

303 path: /healthz

304 port: 8080

305 initialDelaySeconds: 5

306 periodSeconds: 10

307 livenessProbe:

308 httpGet:

309 path: /healthz

310 port: 8080

311 initialDelaySeconds: 30

312 periodSeconds: 30

313 volumes:

314 - name: environment-secret

315 secret:

316 secretName: claude-runner-environment-secret

317```

318 

319Deployment di atas hidup dalam namespace `claude-runners`. Buat namespace terlebih dahulu:

320 

321```bash theme={null}

322kubectl create namespace claude-runners

323```

324 

325Buat Secret pendukung dari file lokal yang memegang nilai yang Anda salin dalam langkah [**Copy environment key**](/docs/id/self-hosted-environments-quickstart#set-up-an-environment-and-runner) UI admin, jadi rahasia tidak pernah muncul dalam riwayat shell Anda. Jalankan `(umask 077 && cat > ./environment-secret)`, tempel rahasia, tekan Enter, kemudian Ctrl-D. Kemudian buat Secret dan hapus file:

326 

327```bash theme={null}

328kubectl create secret generic claude-runner-environment-secret -n claude-runners --from-file=environment-secret=./environment-secret

329```

330 

331<h2 id="docker-compose">

332 Docker Compose

333</h2>

334 

335Layanan Compose di bawah memulai ulang runner kapan pun keluar, yang mencakup crash dan exit normal setelah draining. Kebijakan restart Docker memulai ulang kontainer yang sama dengan lapisan yang dapat ditulisnya utuh, jadi runner kembali pada filesystem yang digunakan kembali daripada yang segar yang [postur pengerasan](#harden-your-deployment) rekomendasikan; gunakan resep ini untuk evaluasi, dan untuk produksi baik buat ulang kontainer per run atau gunakan orchestrator yang melakukannya.

336 

337```yaml theme={null}

338services:

339 claude-runner:

340 image: <your-registry>/claude-runner:latest

341 command:

342 - self-hosted-runner

343 - --environment-secret-file

344 - /run/secrets/environment-secret

345 - --capacity

346 - "4"

347 secrets:

348 - environment-secret

349 restart: always

350 stop_grace_period: 90s

351 

352secrets:

353 environment-secret:

354 file: ./environment-secret

355```

356 

357<h2 id="shutdown-timing">

358 Waktu shutdown

359</h2>

360 

361Pada `SIGTERM`, runner berhenti menerima pekerjaan baru dan, kecuali Anda menetapkan [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal), menunggu hingga `--drain-wait-sec`, nol secara default, agar turn yang sedang berjalan selesai, menghentikan pohon proses setiap sesi, dan menjalankan hook lifecycle [`post-session`](/docs/id/self-hosted-environments-configuration#post-session). Pohon proses tersebut mencakup perintah yang masih dijalankan Claude dalam sesi.

362 

363Jalur drain penuh memerlukan hingga `--session-stop-grace-sec` + `--drain-wait-sec` + `--post-session-hook-timeout-sec`, ditambah 15 detik overhead tetap untuk pembersihan proses, ditambah 30 detik lagi ketika [`--push-outcome-on-release`](/docs/id/self-hosted-environments-reference#runner-cli-flags) diatur. Itu adalah 80 detik pada default, dan runner mencatat totalnya saat startup. Sesi drain secara paralel di bawah satu anggaran ini, jadi totalnya tidak bertambah dengan `--capacity`.

364 

365Pada `--drain-wait-sec 0` default, restart bergulir mengganggu turn yang sedang berjalan; setiap sesi dilanjutkan di runner lain, kehilangan pekerjaan yang tidak didorong seperti yang dijelaskan di bawah [Known issues](#additional-limitations). Atur `--drain-wait-sec`, dan naikkan periode grace untuk mencocokkan, untuk membiarkan turn selesai terlebih dahulu.

366 

367Sepanjang seluruh jalur itu, runner terus melakukan heartbeat ke control plane pada kapasitas nol, sehingga lease sesi tidak kedaluwarsa dan tidak dikembalikan ke runner lain sementara hook `post-session` masih menulis pekerjaan yang belum dikomit. Heartbeat berhenti tepat sebelum runner deregisters.

368 

369Berikan runner setidaknya total yang dicatat saat startup sebelum host menghentikannya. Di mana Anda menetapkan itu tergantung pada cara host Anda berhenti:

370 

371* **Dengan periode grace `SIGTERM`**: atur `terminationGracePeriodSeconds` pada Kubernetes, `stop_grace_period` pada Docker Compose, atau setara orchestrator Anda ke setidaknya total itu. Default Kubernetes 30 detik lebih pendek dari jalur drain runner, jadi Kubernetes menghentikan pod sebelum runner selesai draining.

372* **Dengan [`--retire-at`](/docs/id/self-hosted-environments-reference#runner-cli-flags)**: ukuran margin antara waktu retire dan waktu stop host untuk mencakup turn tipikal, ditambah background-task hold yang dijelaskan [Runner lifecycle](/docs/id/self-hosted-environments#runner-lifecycle), ditambah total yang sama. Hitung waktu retire di setiap peluncuran, misalnya `date +%s` ditambah lifetime yang dimaksudkan runner.

373* **Dengan [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal)**: tambahkan dua bagian lagi ke total jalur drain. Yang pertama adalah menit yang Anda konfigurasi. Yang kedua adalah post-release grace yang dijelaskan [Defer the drain past the first signal](#defer-the-drain-past-the-first-signal), 75 detik pada default. Dengan flag diatur, runner juga mencetak angka gabungan saat startup, setelah total jalur drain.

374 

375<h3 id="defer-the-drain-past-the-first-signal">

376 Defer the drain past the first signal

377</h3>

378 

379Atur [`--defer-shutdown-max-min <n>`](/docs/id/self-hosted-environments-reference#runner-cli-flags) jika Anda ingin runner yang sedang Anda restart terus melayani sesi yang dipegang selama hingga `n` menit, alih-alih mendrainnya pada sinyal pertama. Pada `SIGTERM` atau `SIGINT` pertama, runner berhenti menerima pekerjaan baru dan terus melayani sesi yang dipegang. Ini terus polling sehingga control plane tidak mengantrekan kembali sesi tersebut. Memerlukan Claude Code v2.1.238 atau lebih baru.

380 

381<h4 id="what-happens-to-the-sessions-the-runner-holds-after-the-first-signal">

382 Apa yang terjadi pada sesi yang dipegang runner setelah sinyal pertama

383</h4>

384 

385Dalam dua tahap pertama yang mengikuti sinyal, runner melepaskan sesi, dan sesi yang dirilis dilanjutkan di runner segar ketika pengguna mereka mengirim pesan berikutnya. Menghitung dari sinyal pertama, runner bergerak melalui tiga tahap:

386 

387* **Untuk `n` menit pertama**: runner melayani sesinya secara normal dan terus memberlakukan `--startup-timeout-min` dan `--kill-session-after-min`. Jika Anda juga menetapkan [`--release-idle-session-min`](/docs/id/self-hosted-environments-reference#runner-cli-flags), runner melepaskan sesi apa pun yang penggunanya telah idle selama itu; tanpanya, sesi idle tetap di runner.

388* **Ketika `n` menit habis**: runner melepaskan setiap sesi yang masih dipegang, idle atau tidak. Runner menunggu turn sesi mid-turn berakhir, dan hingga 60 detik lagi untuk background tasks turn, sebelum melepaskan sesi itu.

389* **Ketika post-release grace habis**: runner mendrainkan sesi apa pun yang masih dipegang, dan control plane mengantrekan kembali setiap sesi yang didrain ke runner lain segera. Post-release grace dimulai ketika `n` menit habis dan 75 detik pada default. Jika Anda menetapkan `--drain-wait-sec` di atas 60 detik, post-release grace adalah `--drain-wait-sec` ditambah 15 detik sebagai gantinya.

390 

391Di tahap mana pun, runner keluar 0 segera setelah tidak memegang sesi. Sinyal kedua memotong tahap pendek: runner mendrainkan segera, seperti yang dilakukan pada sinyal pertama tanpa `--defer-shutdown-max-min`. Setelah drain sedang berlangsung, sinyal berikutnya force-exits runner. Itu berlaku apakah sinyal kedua atau post-release grace yang habis memulai drain.

392 

393<h4 id="size-the-stop-timeout">

394 Ukuran stop timeout

395</h4>

396 

397Berikan stop timeout host Anda setidaknya jumlah dari tiga bagian: `n` menit yang Anda konfigurasi, post-release grace, dan jalur drain penuh yang dijelaskan [Shutdown timing](#shutdown-timing). Dengan pengaturan default post-release grace adalah 75 detik dan jalur drain adalah 80 detik, jadi izinkan `n` menit ditambah 155 detik. Runner mencetak jumlah ini saat startup kapan pun `--defer-shutdown-max-min` diatur.

398 

399Jika stop timeout habis sebelum runner selesai, host membunuh runner. Sesi yang masih dipegang tidak mendapatkan hook `post-session`. Runner tidak deregisters, dan control plane mengantrekan kembali sesi sekitar satu menit kemudian. Jika Anda tidak dapat memberikan stop timeout jumlah itu, biarkan `--defer-shutdown-max-min` tidak diatur sehingga runner mendrainkan pada sinyal pertama sebagai gantinya.

400 

401<h3 id="what-reaches-a-running-post-session-hook">

402 Apa yang mencapai hook post-session yang sedang berjalan

403</h3>

404 

405Hook `post-session` dan setiap anak sesi Claude masing-masing berjalan dalam kelompok proses POSIX mereka sendiri, terpisah dari runner, jadi mekanisme stop mencapainya secara berbeda:

406 

407* **`SIGTERM` sementara runner sudah draining**: force-exits runner segera, melewati apa pun yang tersisa dari jalur drain. Tanpa [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal), itu adalah `SIGTERM` kedua yang diterima runner. Tidak ada yang menandai hook `post-session` mid-run, jadi di host bare di mana proses init mengadopsi orphans, itu selesai sendiri, tetapi tanpa pengawasan: anggaran timeout-nya tidak lagi berlaku, dan penulisan ke pipa log tertutup dapat membunuhnya dengan `SIGPIPE`, jadi hook yang perlu bertahan dari forced exit di sana harus mengarahkan ulang output-nya sendiri ke file. Dalam resep container di halaman ini runner adalah PID 1 container dan keluarnya mengakhiri container, dan di bawah `KillMode=control-group` default systemd, kill cgroup-wide mencapai hook juga, seperti yang dijelaskan entri **Cgroup-wide kills**; di keduanya, perlakukan forced exit sebagai fatal untuk hook dan andalkan periode grace sebagai gantinya.

408* **Sinyal process-group-wide**, seperti `kill -- -<pid>` dalam skrip wrapper, shell job control, atau watchdog group-wide: mencapai runner dan subprocess mid-`checkout`-hook, yang tetap group-attached dengan sengaja, tetapi bukan hook `post-session` mid-run atau anak sesi.

409* **Cgroup-wide kills**, seperti `KillMode=control-group` default systemd atau `SIGKILL` yang dikirimkan Kubernetes ke seluruh container ketika `terminationGracePeriodSeconds` kedaluwarsa: mencapai segalanya, termasuk hook. Isolasi process-group tidak melindungi terhadap ini, itulah mengapa periode grace harus mencakup jalur drain penuh.

410* **Timeout hook sendiri**: ketika hook melebihi `--post-session-hook-timeout-sec`, runner mengirim `SIGTERM` ke seluruh kelompok proses hook, kemudian `SIGKILL` dua detik kemudian, jadi worker yang hook fork, seperti tar, rsync, atau git, berakhir dengan shell wrapper alih-alih bertahan sebagai orphan. Pengawasan runner berakhir setelah stdio hook ditutup: worker yang mengarahkan ulang output-nya sendiri ke file dan bertahan melampaui tahap `SIGTERM` melampaui jangkauan runner.

411 

412Ketika drain dimulai, dan lagi pada forced exit, runner mencatat berapa banyak hook `post-session` yang masih berjalan, jadi Anda dapat membedakan drain yang tenang dari yang mid-snapshot.

413 

414<h2 id="keep-the-base-directory-and-capacity-identical-across-runners">

415 Jaga direktori dasar dan kapasitas identik di seluruh runner

416</h2>

417 

418Jika runner mati mid-sesi, server antri ulang sesi dan runner lain dalam lingkungan mengambilnya. Runner itu menurunkan jalur checkout dari `--base-dir` dan `--capacity` miliknya sendiri: `--capacity 1` checkout langsung di bawah `--base-dir`, dan `--capacity` di atas `1` menggunakan worktree per-sesi. Ketika runner dalam lingkungan yang sama menggunakan nilai berbeda untuk flag apa pun, direktori kerja sesi yang dilanjutkan berubah, dan jalur absolut yang agen catat sebelumnya, dalam edit, panggilan alat, atau catatan miliknya sendiri, menunjuk ke lokasi yang tidak lagi ada.

419 

420Gunakan `--base-dir` dan `--capacity` yang sama pada setiap runner dalam lingkungan, dan jangan gunakan nilai per-host seperti ID instans atau nama host.

421 

422Direktori dasar default ke `/workspace`, dengan pengecualian baris referensi [`--base-dir`](/docs/id/self-hosted-environments-reference#runner-cli-flags) catat. Runner memerlukan akses tulis ke sana. Pada startup, sebelum mendaftar, runner membuat direktori dan mengkonfirmasi dapat menulis ke sana, dan keluar dengan `cannot create or write to base directory` ketika tidak bisa. Runner yang dimulai sebagai root membuat `/workspace` default itu sendiri. Untuk runner non-root, buat direktori dan berikan kepemilikan pengguna runner sebelum memulai runner, atau arahkan `--base-dir` ke direktori yang pengguna itu sudah miliki.

423 

424<h2 id="reuse-a-pre-warmed-checkout">

425 Gunakan kembali checkout yang telah dipanaskan sebelumnya

426</h2>

427 

428Untuk repositori besar, klon dapat mendominasi startup sesi. Pada `--capacity 1` tanpa [`checkout` hook](/docs/id/self-hosted-environments-configuration#checkout), runner menyimpan satu klon kanonik per repositori di `<base-dir>/<repo-owner>/<repo>` dan menggunakannya kembali di seluruh sesi: itu mengambil ref yang diminta, melepaskan `HEAD`, dan reset keras ke sana, yang hampir instan ketika sedikit yang berubah. Untuk melewati klon dingin, sediakan klon dalam salah satu dari dua cara:

429 

430* **Klon dalam gambar**: bangun klon ke gambar runner Anda di jalur itu. Setiap kontainer segar kemudian dimulai dengan klon hangat tanpa menggunakan kembali disk.

431* **Klon pada volume persisten**: pada runner yang Anda pre-lock ke akun satu pengguna dengan [`--lock-to-account`](/docs/id/self-hosted-environments-reference#runner-cli-flags), arahkan `--base-dir` ke volume persisten, jadi disk hanya pernah melayani akun itu. Runner yang pre-locked tidak pernah mengambil sesi saluran Claude Tag, jadi opsi ini tidak berlaku untuk runner yang melayani mereka.

432 

433Apa jalur penggunaan kembali lakukan dan tidak jamin:

434 

435* **Bentuk klon apa pun bekerja**: klon penuh, shallow, atau single-branch di jalur digunakan apa adanya. Runner tidak pernah melewatkan `--depth` ketika mengambil ke klon yang ada, jadi pre-warm penuh menyimpan riwayat penuhnya dan yang shallow tetap shallow. `CLAUDE_RUNNER_FETCH_DEPTH` (`full`, `0`, atau angka; default 50) mengontrol hanya klon dingin yang dibuat runner ketika tidak ada klon yang ada.

436* **Perubahan terlacak reset, file tidak terlacak bertahan**: setiap sesi dimulai dari reset keras yang menghapus modifikasi sesi sebelumnya, tetapi runner tidak pernah menjalankan `git clean`, jadi file tidak terlacak dari sesi sebelumnya pemilik terkunci tetap di pohon.

437* **Direktori per-sesi juga bertahan**: di samping checkout, runner membuat entri per-sesi di bawah `<base-dir>/_sessions/` untuk setiap sesi yang dijalankannya. Direktori konfigurasi Claude sesi menyimpan salinan lokal transkrip percakapan. Di sebelahnya duduk file yang diunggah sesi, ketika sesi memiliki apa pun. Direktori sesi duduk di sana juga: itu menyimpan worktree per-sesi apa pun dan checkout hook `checkout` sementara sesi berjalan, dan itu menyimpan apa pun yang Claude tulis di dalamnya.

438 

439 Secara default runner meninggalkan ini di tempat ketika sesi berakhir, jadi pada disk yang melampaui proses runner mereka menumpuk. Setiap sesi berjalan sebagai pengguna runner sendiri, jadi sesi kemudian apa pun yang disk layani dapat membacanya. Jika Anda menyimpan `--base-dir` persisten, ukuran volume untuk pertumbuhan itu. Hal yang sama berlaku untuk setup apa pun yang memulai ulang runner pada filesystem yang sama, termasuk resep [Docker Compose](#docker-compose).

440* **Dengan `--remove-session-state`, direktori per-sesi tidak bertahan**: mulai runner dengan [`--remove-session-state`](/docs/id/self-hosted-environments-reference#runner-cli-flags) untuk memilikinya menghapus direktori per-sesi setiap sesi saat sesi berakhir. Penghapusan adalah best-effort: direktori tetap ketika runner dibunuh sebelum cleanup-nya berjalan. Klon kanonik dan file yang ditulis sesi di tempat lain di host, seperti direktori sementara, tetap terlepas.

441* **Dengan proxy git, reset menjadi checkout**: dengan [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), runner membersihkan `.git/` klon sebelum setiap sesi, menyimpan object store, refs, dan shallow state tetapi menghapus index, jadi setiap sesi membayar checkout working-tree penuh daripada reset hampir instan; itu masih tidak pernah re-clone. Pre-warm submodule tidak didukung di bawah proxy.

442* **Klon panjang tidak memerlukan workaround**: runner membatasi setiap operasi git dengan watchdog no-progress 120 detik dan hard cap 30 menit, bukan timeout flat, jadi klon dingin lambat yang terus melaporkan kemajuan selesai.

443 

444<h2 id="pin-the-version">

445 Sematkan versi

446</h2>

447 

448Proses Claude Code anak setiap sesi menjalankan biner runner itu sendiri, dan runner mematikan auto-update di dalam sesi yang dihasilkannya, jadi setiap sesi menjalankan versi yang Anda instal di host atau bangun ke gambar. Update tingkat host berlaku waktu berikutnya runner dimulai.

449 

450* **Untuk menyimpan armada pada satu versi**: bangun gambar dengan versi yang disematkan, atau pada host telanjang instal versi spesifik dan [nonaktifkan auto-update](/docs/id/setup#disable-auto-updates)

451* **Untuk upgrade**: instal versi yang lebih baru atau bangun ulang gambar, kemudian mulai ulang runner

452* **Plugin**: marketplace plugin tidak auto-update juga; atur `FORCE_AUTOUPDATE_PLUGINS=1` dalam lingkungan runner untuk membiarkan plugin auto-update sementara biner tetap disematkan

453 

454<h2 id="scale-the-fleet">

455 Skala armada

456</h2>

457 

458Orchestrator Anda memutuskan kapan menambah atau menghapus runner. Karena [kunci one-owner-per-runner](/docs/id/self-hosted-environments#runner-lifecycle), jumlah replika minimum adalah jumlah pengguna dan agen Claude Tag yang Anda harapkan aktif bersamaan; `--capacity` mengontrol paralelisme dalam sesi satu pemilik, bukan di seluruh pemilik.

459 

460Dua pendekatan penskalaan tersedia:

461 

462* **Armada tetap**: jalankan set replika runner statis dan skala pada [metrik Prometheus](/docs/id/self-hosted-environments-reference#prometheus-metrics) yang dilayani setiap runner

463* **Runner on-demand**: jalankan subperintah `claude self-hosted-runner orchestrator`, yang menanyakan Anthropic untuk sesi yang antri tanpa runner tersedia dan memanggil hook `spawn-runner` Anda untuk boot satu per sesi. Lihat [On-demand runners](/docs/id/self-hosted-environments-configuration#on-demand-runners).

464 

465<h2 id="known-issues-and-limitations">

466 Masalah dan batasan yang diketahui

467</h2>

468 

469Berikut adalah batasan dalam rilis ini, dengan workaround di mana ada.

470 

471<h3 id="connector-traffic-leaves-your-network">

472 Lalu lintas konektor meninggalkan jaringan Anda

473</h3>

474 

475Anthropic memanggil alat konektor dari infrastruktur miliknya sendiri daripada dari runner Anda. Alat konektor adalah konektor claude.ai, seperti GitHub, Slack, dan Linear. Ketika Claude menggunakan konektor dalam sesi yang di-host sendiri, lalu lintas itu melewati `api.anthropic.com` daripada berasal dari dalam batas jaringan Anda.

476 

477Untuk menjaga konektor keluar dari sesi yang di-host sendiri, saring dengan [pengaturan kebijakan `allowedMcpServers` dan `deniedMcpServers`](/docs/id/managed-mcp#policy-based-control-with-allowlists-and-denylists). Claude Code menerapkan pengaturan ini ke konektor yang dikirimkan Anthropic serta ke server yang Anda seed dari host runner dan server yang ditambahkan pengguna, jadi jika Anda terapkan allowlist untuk server lain, Claude Code memblokir konektor yang dikirimkan juga. Untuk menjaga konektor tersedia bersama allowlist berbasis URL, tambahkan entri yang cocok dengan jalur proxy Anthropic untuk konektor yang dikirimkan:

478 

479* `https://api.anthropic.com/v2/ccr-sessions/*`

480* `https://api.anthropic.com/v1/code/sessions/*`

481* `https://api.anthropic.com/v1/code/mcp/*`

482 

483Jika lalu lintas alat harus tetap di dalam jaringan, jalankan alat setara sebagai server MCP lokal pada gambar runner. Lihat [MCP servers](/docs/id/self-hosted-environments-configuration#mcp-servers).

484 

485<h3 id="some-sessions-don’t-count-as-idle">

486 Beberapa sesi tidak dihitung sebagai menganggur

487</h3>

488 

489Sesi yang memegang tugas latar belakang yang tidak pernah selesai tidak dihitung sebagai menganggur, jadi `--release-idle-session-min` tidak akan melepaskan slot sesi itu. Sesi yang menunggu persetujuan yang diminta dari dalam panggilan alat yang berjalan juga tidak dihitung sebagai menganggur. Selalu atur `--kill-session-after-min` bersama sebagai backstop keras sehingga tidak ada sesi yang dapat memegang slot tanpa batas.

490 

491`--kill-session-after-min` adalah backstop untuk sesi yang melarikan diri. Pada runner pada v2.1.260 atau lebih baru, sesi yang mencapai batas tidak dihentikan begitu saja. Runner memberikan jendela grace, 15 menit secara default, yang dapat Anda ubah dengan [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](/docs/id/self-hosted-environments-reference#environment-variable-only-settings):

492 

493* Jika sesi menunggu penggunanya, runner melepaskannya. Jika putarannya telah berakhir dan hanya memegang tugas latar belakang, runner menunggu hingga 60 detik untuk tugas-tugas itu selesai dan kemudian melepaskannya. Sesi dilanjutkan ketika penggunanya mengirim pesan berikutnya.

494* Jika putaran masih berjalan, runner menunggu putaran selesai, atau untuk sesi berikutnya menunggu penggunanya, dan kemudian melepaskannya.

495* Jika sesi masih di runner ketika jendela grace berakhir, runner menghentikannya, dan pekerjaan putaran yang berjalan hilang. Putaran menunggu persetujuan yang diminta dari dalam panggilan alat yang berjalan adalah satu cara sesi melampaui jendela.

496 

497Sesi yang dilepaskan dilanjutkan dari klon segar, jadi pekerjaan yang tidak didorong hilang bagaimanapun; lihat [Resumed sessions lose unpushed work](#additional-limitations). Sebelum v2.1.260, runner menghentikan setiap sesi pada batas, setelah menunggu paling banyak jendela grace untuk putaran yang berjalan selesai.

498 

499Atur flag di atas sesi terpanjang yang diharapkan, seperti `--kill-session-after-min 480` untuk 8 jam. Untuk membebaskan slot dari percakapan yang menjadi menganggur, gunakan `--release-idle-session-min`.

500 

501<h3 id="additional-limitations">

502 Batasan tambahan

503</h3>

504 

505* **Sesi yang dilanjutkan kehilangan pekerjaan yang tidak didorong**: ketika sesi dilepaskan atau runner-nya dimulai ulang, dan pengguna mengirim pesan lain, sesi dilanjutkan pada runner segar yang klon repositori lagi dari cabang awalnya, jadi pekerjaan yang tidak didorong sesi hilang. Atur [`--push-outcome-on-release`](/docs/id/self-hosted-environments-reference#runner-cli-flags) untuk memiliki runner membuat push best-effort dari cabang hasil sesi sebelum melepaskan, jadi sesi yang dilanjutkan dimulai dari komit tersebut; ini menyimpan pekerjaan yang berkomitmen, bukan working tree yang kotor. Sebelum mengaktifkannya, batasi siapa yang dapat mendorong ke ref `claude/*` pada remote sumber, misalnya dengan ruleset cabang: pada resume, runner mengambil cabang yang sebelumnya didorong tanpa memverifikasi siapa yang mendorongnya, jadi siapa pun dengan akses push ke ref tersebut dapat menempatkan konten ke dalam workspace yang dilanjutkan. Runner juga membuang konfigurasi per-sesi pada resume, berarti direktori konfigurasi Claude sesi dan status shell apa pun yang ditulis sesi; `--push-outcome-on-release` tidak mencakup itu.

506* **Repositori pribadi tidak dapat ditambahkan mid-sesi**: repositori yang ditambahkan ke sesi setelah dimulai tidak diklon dengan kredensial pada runner yang di-host sendiri, jadi penambahan gagal. Pilih setiap repositori yang dibutuhkan sesi ketika Anda membuatnya.

507* **Beberapa konektor tidak muncul dalam sesi yang di-host sendiri**: konektor yang belum Anda hubungkan dalam pengaturan claude.ai tidak terdaftar dalam sesi yang di-host sendiri, dan sesi tidak akan meminta Anda untuk menghubungkannya. Hubungkan dalam Pengaturan terlebih dahulu, kemudian mulai sesi segar. Menambahkan konektor ke sesi yang sudah berjalan juga tidak membuat alat-alatnya tersedia untuk Claude; mulai sesi segar untuk mengambil konektor yang baru ditambahkan.

508 

509<h3 id="report-an-issue">

510 Laporkan masalah

511</h3>

512 

513Untuk masalah dengan lingkungan yang di-host sendiri, hubungi tim akun Anthropic Anda.

514 

515<h2 id="troubleshooting">

516 Troubleshooting

517</h2>

518 

519Untuk diagnosis terpandu, jalankan subperintah doctor pada host runner. Subperintah doctor memulai sesi Claude Code interaktif dengan log dan status runner yang terlampir. Masuk dengan `claude auth login` pada host tersebut terlebih dahulu sehingga sesi dapat menanyakan lingkungan Anda, runner-nya, dan sesi-sesi yang antri. Tanpa masuk tersebut, misalnya ketika host melakukan autentikasi dengan kunci API, itu terbatas pada endpoint kesehatan lokal, metrik, dan log runner, dan itu membaca log hanya jika Anda memulai runner dengan `--log-file`.

520 

521```bash theme={null}

522claude self-hosted-runner doctor

523```

524 

525Masalah umum:

526 

527* **Runner tidak muncul di lingkungan**: konfirmasi bahwa host dapat menjangkau `api.anthropic.com` melalui HTTPS, rahasia lingkungan saat ini, dan jam host berada dalam lima menit dari waktu nyata; skew yang lebih besar menyebabkan autentikasi gagal. Log runner `[runner:fatal]` dengan alasan penolakan pada kegagalan auth.

528* **Runner keluar saat startup dengan `cannot create or write to base directory`**: runner tidak dapat membuat atau menulis ke `--base-dir`, yang secara default adalah `/workspace`. Perbaiki kepemilikan direktori atau arahkan `--base-dir` ke jalur yang dapat ditulis, seperti dijelaskan dalam [Keep the base directory and capacity identical across runners](#keep-the-base-directory-and-capacity-identical-across-runners). Jika runner malah mencatat `[runner:fatal]` mengatakan pemeriksaan direktori dasar habis waktu, direktori berada pada mount NFS atau CSI yang tergantung. Periksa kesehatan mount daripada izin. Runner mencetak kedua kegagalan startup ini ke stderr sebelum membuka `--log-file`, jadi cari di terminal atau log kontainer platform Anda daripada file log. Sebelum v2.1.225, runner tidak memeriksa direktori dasar saat startup, dan misconfiguration ini gagal sesi setelah pickup sebagai gantinya.

529* **Sesi tetap antri**: setiap runner online dapat dikunci ke pemilik yang berbeda. Periksa `claude_code_self_hosted_runner_locked_account` [metrik](/docs/id/self-hosted-environments-reference#prometheus-metrics) setiap runner atau bidang `locked_account` dari baris log `[runner:health]`-nya untuk melihat siapa yang memegangnya. Keduanya menunjukkan email pemilik hanya setelah runner telah dikeluarkan token sesi yang membawa klaim `act.email`, yang sesi agen Claude Tag tidak pernah lakukan. Tanpa klaim, runner tidak memancarkan seri `locked_account` dan mencatat `locked_account=yes`, yang memberi tahu Anda bahwa runner terkunci tetapi tidak ke pemilik mana. Tambahkan replika, atau tunggu runner yang ada untuk mengalirkan dan memulai ulang. Jika lingkungan menggunakan runner on-demand, periksa orchestrator sebagai gantinya; lihat [On-demand runners](/docs/id/self-hosted-environments-configuration#on-demand-runners).

530* **Sesi gagal segera setelah pickup**: buka sesi di claude.ai/code untuk melihat kesalahan. Penyebab paling umum adalah [kredensial git](#configure-git) yang hilang dalam gambar runner dan alat build yang tidak diinstal. Direktori dasar yang tidak dapat ditulis menghentikan runner saat startup daripada gagal sesi. Lihat entri **Runner keluar saat startup dengan `cannot create or write to base directory`** dalam daftar ini.

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.

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

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

536 

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.

538 

539Setiap proses anak sesi menulis log debug terpisah. Pada kegagalan runner menampilkan ekor log bersama sesi di claude.ai/code. Kecuali Anda memulai runner dengan [`--remove-session-state`](/docs/id/self-hosted-environments-reference#runner-cli-flags), itu juga menyimpan log sesi yang gagal di disk dan mencetak jalurnya dalam log runner.

540 

541<h2 id="what’s-next">

542 Apa selanjutnya

543</h2>

544 

545* [Sesuaikan sesi](/docs/id/self-hosted-environments-configuration): script wrapper, lifecycle hook, runner on-demand, server MCP, dan izin

546* [Uji end to end](/docs/id/self-hosted-environments-testing): verifikasi gambar runner baru dari CI sebelum mempromosikannya

547* [Referensi](/docs/id/self-hosted-environments-reference): setiap flag CLI, variabel lingkungan, dan metrik

Details

31| `--debug-token-dir <path>` | `SELF_HOSTED_RUNNER_DEBUG_TOKEN_DIR` | unset | Tulis token langsung ke disk untuk inspeksi. Debug saja; jangan gunakan dalam produksi. |31| `--debug-token-dir <path>` | `SELF_HOSTED_RUNNER_DEBUG_TOKEN_DIR` | unset | Tulis token langsung ke disk untuk inspeksi. Debug saja; jangan gunakan dalam produksi. |

32| `--defer-shutdown-max-min <n>` | `SELF_HOSTED_RUNNER_DEFER_SHUTDOWN_MAX_MS` | `0` | Pada `SIGTERM` atau `SIGINT` pertama, terus melayani session yang sudah terpasang daripada mengalirnya, kemudian lepaskan apa pun yang masih terpasang N menit kemudian dan keluar. Naikkan timeout berhenti host Anda sebelum mengatur ini. Lihat [Defer the drain past the first signal](/docs/id/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal). `0` menonaktifkan. Memerlukan Claude Code v2.1.238 atau lebih baru. |32| `--defer-shutdown-max-min <n>` | `SELF_HOSTED_RUNNER_DEFER_SHUTDOWN_MAX_MS` | `0` | Pada `SIGTERM` atau `SIGINT` pertama, terus melayani session yang sudah terpasang daripada mengalirnya, kemudian lepaskan apa pun yang masih terpasang N menit kemudian dan keluar. Naikkan timeout berhenti host Anda sebelum mengatur ini. Lihat [Defer the drain past the first signal](/docs/id/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal). `0` menonaktifkan. Memerlukan Claude Code v2.1.238 atau lebih baru. |

33| `--drain-grace-sec <n>` | `SELF_HOSTED_RUNNER_DRAIN_GRACE_MS` | `0` | Sampai runner menerima sinyal shutdown atau mencapai waktu pensiun, mengontrol kapan runner keluar setelah session aktifnya selesai: `0` keluar segera tanpa polling lebih lanjut, dan nilai positif membuat runner tetap hidup dan re-polling antrian owner yang terkunci untuk banyak detik itu terlebih dahulu, dengan biaya isolasi kontainer per-session yang dijelaskan di [bagian hardening](/docs/id/self-hosted-environments-deploy#harden-your-deployment). Setelah sinyal pertama yang Anda tunda dengan [`--defer-shutdown-max-min`](/docs/id/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), runner keluar segera setelah tidak memiliki session, apa pun yang Anda atur di sini. |33| `--drain-grace-sec <n>` | `SELF_HOSTED_RUNNER_DRAIN_GRACE_MS` | `0` | Sampai runner menerima sinyal shutdown atau mencapai waktu pensiun, mengontrol kapan runner keluar setelah session aktifnya selesai: `0` keluar segera tanpa polling lebih lanjut, dan nilai positif membuat runner tetap hidup dan re-polling antrian owner yang terkunci untuk banyak detik itu terlebih dahulu, dengan biaya isolasi kontainer per-session yang dijelaskan di [bagian hardening](/docs/id/self-hosted-environments-deploy#harden-your-deployment). Setelah sinyal pertama yang Anda tunda dengan [`--defer-shutdown-max-min`](/docs/id/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), runner keluar segera setelah tidak memiliki session, apa pun yang Anda atur di sini. |

34| `--drain-marker-file <path>` | `SELF_HOSTED_RUNNER_DRAIN_MARKER_FILE` | unset | File penanda yang ditulis host Anda untuk mengumumkan drain yang elegan sebelum mengirim `SIGTERM`. Ketika file ada saat drain dimulai, runner melaporkan keluarnya ke Anthropic sebagai drain host daripada sinyal shutdown biasa. Drain itu sendiri, termasuk hold `--drain-wait-sec`, berjalan sama seperti tanpa flag. Beri nama path pada filesystem lokal yang tidak dapat ditulis session. Memerlukan Claude Code v2.1.271 atau lebih baru. |

34| `--drain-wait-sec <n>` | `SELF_HOSTED_RUNNER_DRAIN_WAIT_MS` | `0` | Setelah drain dimulai, yang mana pada `SIGTERM` kecuali Anda mengatur [`--defer-shutdown-max-min`](/docs/id/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), tunggu hingga N detik untuk setiap turn in-flight session dan background task selesai sebelum menghentikan child. Selama menunggu ini, runner menghitung background task yang baru saja selesai sebagai masih berjalan sampai turn follow-up yang membaca hasilnya dimulai, untuk paling banyak jendela [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). |35| `--drain-wait-sec <n>` | `SELF_HOSTED_RUNNER_DRAIN_WAIT_MS` | `0` | Setelah drain dimulai, yang mana pada `SIGTERM` kecuali Anda mengatur [`--defer-shutdown-max-min`](/docs/id/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), tunggu hingga N detik untuk setiap turn in-flight session dan background task selesai sebelum menghentikan child. Selama menunggu ini, runner menghitung background task yang baru saja selesai sebagai masih berjalan sampai turn follow-up yang membaca hasilnya dimulai, untuk paling banyak jendela [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). |

35| `--environment-secret-file <path>` | `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` | required | Path ke file yang berisi rahasia lingkungan, atau, untuk runner yang dihasilkan oleh [orchestrator](/docs/id/self-hosted-environments-configuration#on-demand-runners), JWT work-order sekali pakai. `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` membawa nilai rahasia secara langsung, bukan path file. Flag `--pool-secret-file` yang lebih lama dan variabel `SELF_HOSTED_RUNNER_POOL_SECRET` masih berfungsi dan mencetak pemberitahuan deprecation ke stderr; build runner program preview yang lebih lama dari 2.1.216 hanya mengenali nama yang lebih lama itu. |36| `--environment-secret-file <path>` | `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` | required | Path ke file yang berisi rahasia lingkungan, atau, untuk runner yang dihasilkan oleh [orchestrator](/docs/id/self-hosted-environments-configuration#on-demand-runners), JWT work-order sekali pakai. `SELF_HOSTED_RUNNER_ENVIRONMENT_SECRET` membawa nilai rahasia secara langsung, bukan path file. Flag `--pool-secret-file` yang lebih lama dan variabel `SELF_HOSTED_RUNNER_POOL_SECRET` masih berfungsi dan mencetak pemberitahuan deprecation ke stderr; build runner program preview yang lebih lama dari 2.1.216 hanya mengenali nama yang lebih lama itu. |

36| `--exec-path <path>` | `SELF_HOSTED_RUNNER_EXEC_PATH` | binary sendiri | Binary atau wrapper script untuk dihasilkan untuk setiap session. Lihat [Wrapper scripts](/docs/id/self-hosted-environments-configuration#wrapper-scripts). |37| `--exec-path <path>` | `SELF_HOSTED_RUNNER_EXEC_PATH` | binary sendiri | Binary atau wrapper script untuk dihasilkan untuk setiap session. Lihat [Wrapper scripts](/docs/id/self-hosted-environments-configuration#wrapper-scripts). |


39| `--git-ssh-rewrite <host>` | none | unset | Tulis ulang URL sumber `https://<host>/...` ke `git@<host>:...` sebelum cloning, untuk git host SSH-only. Dapat diulang; flag saja. |40| `--git-ssh-rewrite <host>` | none | unset | Tulis ulang URL sumber `https://<host>/...` ke `git@<host>:...` sebelum cloning, untuk git host SSH-only. Dapat diulang; flag saja. |

40| `--health-port <port>` | `SELF_HOSTED_RUNNER_HEALTH_PORT` | `8080` | Port untuk listener `/healthz` dan `/metrics`. Atur `0` untuk menonaktifkan. |41| `--health-port <port>` | `SELF_HOSTED_RUNNER_HEALTH_PORT` | `8080` | Port untuk listener `/healthz` dan `/metrics`. Atur `0` untuk menonaktifkan. |

41| `--hooks-dir <path>` | `SELF_HOSTED_RUNNER_HOOKS_DIR` | unset | Direktori script hook lifecycle. Lihat [Lifecycle hooks](/docs/id/self-hosted-environments-configuration#lifecycle-hooks). |42| `--hooks-dir <path>` | `SELF_HOSTED_RUNNER_HOOKS_DIR` | unset | Direktori script hook lifecycle. Lihat [Lifecycle hooks](/docs/id/self-hosted-environments-configuration#lifecycle-hooks). |

43| `--host-config-snapshot <mode>` | `SELF_HOSTED_RUNNER_HOST_CONFIG_SNAPSHOT` | `disk` | Tempat runner menyimpan snapshot startup dari [direktori host config](#environment-variable-only-settings) yang diseednya dari setiap session. `disk` menyalin snapshot ke direktori yang dimiliki runner di bawah `--base-dir` dan, di setiap awal session, memverifikasi setiap file terhadap digest in-memory. Jika file dalam salinan telah dimodifikasi, session gagal dan runner menolak session sampai Anda memulainya ulang. `memory` menyimpan seluruh snapshot di heap, dibatasi pada 64 MiB; di atas batas, session dimulai tanpa host config dan menampilkan pemberitahuan yang mengatakan demikian. Ketika runner tidak dapat menulis snapshot disk, itu mencatat kegagalan dan menggunakan `memory` untuk run itu. Memerlukan Claude Code v2.1.271 atau lebih baru. |

42| `--kill-session-after-min <n>` | `SELF_HOSTED_RUNNER_MAX_LIFETIME_MS` | `0` | Batasi session ke N menit wall-clock, sebagai batas keselamatan untuk session yang macet. Pada v2.1.260 atau lebih baru, runner melepaskan session yang mencapai batas sehingga dapat dilanjutkan pada pesan berikutnya pengguna, dan menghentikannya hanya jika masih ada di runner ketika jendela grace [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) berakhir. Sebelum v2.1.260, runner menghentikan session pada batas. Lihat [Some sessions don't count as idle](/docs/id/self-hosted-environments-deploy#some-sessions-don%E2%80%99t-count-as-idle) untuk detail dan cara memilih nilai. `0` menonaktifkan. |44| `--kill-session-after-min <n>` | `SELF_HOSTED_RUNNER_MAX_LIFETIME_MS` | `0` | Batasi session ke N menit wall-clock, sebagai batas keselamatan untuk session yang macet. Pada v2.1.260 atau lebih baru, runner melepaskan session yang mencapai batas sehingga dapat dilanjutkan pada pesan berikutnya pengguna, dan menghentikannya hanya jika masih ada di runner ketika jendela grace [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) berakhir. Sebelum v2.1.260, runner menghentikan session pada batas. Lihat [Some sessions don't count as idle](/docs/id/self-hosted-environments-deploy#some-sessions-don%E2%80%99t-count-as-idle) untuk detail dan cara memilih nilai. `0` menonaktifkan. |

43| `--lock-to-account <id>` | `SELF_HOSTED_RUNNER_LOCK_TO_ACCOUNT` | unset | Pre-lock runner ke akun spesifik saat startup daripada mengunci pada session pertama. Menerima alamat email atau ID `user_...` dalam organisasi lingkungan. Runner yang pre-locked tidak pernah mengambil session Claude Tag channel, yang tidak memiliki akun. |45| `--lock-to-account <id>` | `SELF_HOSTED_RUNNER_LOCK_TO_ACCOUNT` | unset | Pre-lock runner ke akun spesifik saat startup daripada mengunci pada session pertama. Menerima alamat email atau ID `user_...` dalam organisasi lingkungan. Runner yang pre-locked tidak pernah mengambil session Claude Tag channel, yang tidak memiliki akun. |

44| `--log-file <path>` | `SELF_HOSTED_RUNNER_LOG_FILE` | unset | Mirror log runner ke file selain stdout dan stderr, dibuat dengan izin `0600`. Diperlukan untuk `self-hosted-runner doctor` untuk tail log secara lokal. |46| `--log-file <path>` | `SELF_HOSTED_RUNNER_LOG_FILE` | unset | Mirror log runner ke file selain stdout dan stderr, dibuat dengan izin `0600`. Diperlukan untuk `self-hosted-runner doctor` untuk tail log secara lokal. |


48| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | unset | File yang dibaca runner untuk setiap koneksi ke proxy egress Anda, menggunakan isinya yang dipangkas sebagai nilai header `Proxy-Authorization`. Gunakan flag ini untuk token yang proses lain rotasi di tempat. Membawa persyaratan yang sama dengan `--proxy-authorization-command`, dan tidak dapat digabungkan dengannya. Lihat [Authenticate to an egress proxy](/docs/id/self-hosted-environments-deploy#authenticate-to-an-egress-proxy). Memerlukan Claude Code v2.1.238 atau lebih baru. |50| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | unset | File yang dibaca runner untuk setiap koneksi ke proxy egress Anda, menggunakan isinya yang dipangkas sebagai nilai header `Proxy-Authorization`. Gunakan flag ini untuk token yang proses lain rotasi di tempat. Membawa persyaratan yang sama dengan `--proxy-authorization-command`, dan tidak dapat digabungkan dengannya. Lihat [Authenticate to an egress proxy](/docs/id/self-hosted-environments-deploy#authenticate-to-an-egress-proxy). Memerlukan Claude Code v2.1.238 atau lebih baru. |

49| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | off | Pada akhir session yang dimulai runner seperti drain atau idle release, push tracked outcome branch ke `origin` sebelum menghapus workspace, jadi commit in-flight bertahan restart. Best-effort; menambah 30 detik ke anggaran shutdown, dan memerlukan git 2.29 atau lebih baru untuk melanjutkan dari branch yang didorong. Batasi akses push ke ref `claude/*` sebelum mengaktifkan; lihat [Resumed sessions lose unpushed work](/docs/id/self-hosted-environments-deploy#additional-limitations). Repositori yang diperiksa melalui hook lifecycle `checkout` tidak didorong; snapshot itu dari hook [`post-session`](/docs/id/self-hosted-environments-configuration#post-session) sebagai gantinya. |51| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | off | Pada akhir session yang dimulai runner seperti drain atau idle release, push tracked outcome branch ke `origin` sebelum menghapus workspace, jadi commit in-flight bertahan restart. Best-effort; menambah 30 detik ke anggaran shutdown, dan memerlukan git 2.29 atau lebih baru untuk melanjutkan dari branch yang didorong. Batasi akses push ke ref `claude/*` sebelum mengaktifkan; lihat [Resumed sessions lose unpushed work](/docs/id/self-hosted-environments-deploy#additional-limitations). Repositori yang diperiksa melalui hook lifecycle `checkout` tidak didorong; snapshot itu dari hook [`post-session`](/docs/id/self-hosted-environments-configuration#post-session) sebagai gantinya. |

50| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | Lepaskan slot session setelah N menit inaktivitas setelah turn selesai atau session menunggu tindakan pengguna. Session yang masih mid-turn, termasuk yang menahan background task yang tidak pernah selesai atau persetujuan yang diminta dari dalam panggilan tool yang berjalan, tidak dihitung sebagai idle; pasangkan dengan `--kill-session-after-min` sebagai backstop keras. Setelah background task session selesai, runner menganggap session sibuk sampai turn follow-up yang membaca hasil dimulai, untuk paling banyak jendela [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). Sampai runner menerima sinyal shutdown atau mencapai waktu pensiun, release yang meninggalkan runner tanpa session aktif memulai jalur keluar yang sama seperti drain normal, diatur oleh `--drain-grace-sec`. Setelah sinyal pertama yang Anda tunda dengan [`--defer-shutdown-max-min`](/docs/id/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), runner keluar segera setelah release meninggalkannya tanpa session. `0` menonaktifkan. |52| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | Lepaskan slot session setelah N menit inaktivitas setelah turn selesai atau session menunggu tindakan pengguna. Session yang masih mid-turn, termasuk yang menahan background task yang tidak pernah selesai atau persetujuan yang diminta dari dalam panggilan tool yang berjalan, tidak dihitung sebagai idle; pasangkan dengan `--kill-session-after-min` sebagai backstop keras. Setelah background task session selesai, runner menganggap session sibuk sampai turn follow-up yang membaca hasil dimulai, untuk paling banyak jendela [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). Sampai runner menerima sinyal shutdown atau mencapai waktu pensiun, release yang meninggalkan runner tanpa session aktif memulai jalur keluar yang sama seperti drain normal, diatur oleh `--drain-grace-sec`. Setelah sinyal pertama yang Anda tunda dengan [`--defer-shutdown-max-min`](/docs/id/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), runner keluar segera setelah release meninggalkannya tanpa session. `0` menonaktifkan. |

53| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | off | Hapus direktori per-session session di bawah `<base-dir>/_sessions/` ketika session berakhir di runner ini, apa pun hasilnya. [Reuse a pre-warmed checkout](/docs/id/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout) menjelaskan apa yang mereka pegang dan siapa yang dapat membacanya ketika mereka tetap. Penghapusan adalah best-effort: direktori per-session tetap ada ketika runner dibunuh atau mencapai deadline drain sebelum cleanup berjalan. Dengan flag aktif, debug log session yang gagal atau terputus tidak disimpan di disk. Memerlukan Claude Code v2.1.268 atau lebih baru. |

51| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | unset | Pensiun runner pada timestamp Unix absolut dalam detik, untuk infrastruktur yang membunuh runner pada waktu yang diketahui; [Runner lifecycle](/docs/id/self-hosted-environments#runner-lifecycle) menjelaskan urutan release dan cara mengukur margin. Nilai sebelum 2001 atau setelah tahun 5138 ditolak oleh flag dan diabaikan oleh variabel lingkungan. |54| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | unset | Pensiun runner pada timestamp Unix absolut dalam detik, untuk infrastruktur yang membunuh runner pada waktu yang diketahui; [Runner lifecycle](/docs/id/self-hosted-environments#runner-lifecycle) menjelaskan urutan release dan cara mengukur margin. Nilai sebelum 2001 atau setelah tahun 5138 ditolak oleh flag dan diabaikan oleh variabel lingkungan. |

52| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Berapa lama menunggu proses Claude keluar dengan bersih setelah session berakhir, sebelum force-killing. Naikkan nilai jika hook `SessionEnd` child sendiri memerlukan lebih banyak waktu. |55| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Berapa lama menunggu proses Claude keluar dengan bersih setelah session berakhir, sebelum force-killing. Naikkan nilai jika hook `SessionEnd` child sendiri memerlukan lebih banyak waktu. |

53| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Lepaskan slot session jika child belum menandakan bahwa itu diinisialisasi dalam N menit spawn. Dihapus oleh sinyal init child di [activity channel](/docs/id/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached), bukan oleh output biasa, setelah itu `--release-idle-session-min` mengambil alih. `0` menonaktifkan. |56| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Lepaskan slot session jika child belum menandakan bahwa itu diinisialisasi dalam N menit spawn. Dihapus oleh sinyal init child di [activity channel](/docs/id/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached), bukan oleh output biasa, setelah itu `--release-idle-session-min` mengambil alih. `0` menonaktifkan. |

Details

73 Sebelum Anda memulai runner73 Sebelum Anda memulai runner

74</h3>74</h3>

75 75 

76Dua hal yang hook bergantung pada:76Hook memiliki persyaratan berikut:

77 77 

78* Instal sebelum Anda memulai runner. Runner mengambil snapshot `~/.claude/` sekali saat startup, jadi hook yang ditambahkan ke runner yang berjalan hanya berlaku setelah restart.78* Instal sebelum Anda memulai runner. Runner mengambil snapshot `~/.claude/` sekali saat startup, jadi hook yang ditambahkan ke runner yang berjalan hanya berlaku setelah restart.

79* Ekspor `E2E_REPLY_DIR` ke proses runner. Hook adalah no-op ketika variabel tidak diatur atau direktori tidak ada, jadi atur di mana pun Anda memulai runner, seperti unit systemd, pod spec, atau langkah CI. Skrip uji di bawah juga memerlukan itu.79* Ekspor `E2E_REPLY_DIR` ke proses runner. Hook adalah no-op ketika variabel tidak diatur atau direktori tidak ada, jadi atur di mana pun Anda memulai runner, seperti unit systemd, pod spec, atau langkah CI. Skrip uji di bawah juga memerlukan itu.

Details

165 165 

166Tiga jenis kunci adalah pengecualian terhadap aturan tanpa penggabungan:166Tiga jenis kunci adalah pengecualian terhadap aturan tanpa penggabungan:

167 167 

168* **Kunci kunci lintas sumber**: serangkaian kecil kunci, seperti kunci daftar pasir sandbox, [tercantum di halaman pengaturan terkelola](/docs/id/managed-settings#precedence-within-the-managed-tier). Claude Code menghormatinya ketika sumber terkelola yang dikendalikan admin apa pun menetapkannya; tingkat registri HKCU yang dapat ditulis pengguna dikecualikan. Ketika [`policyHelper`](/docs/id/settings-reference#policyhelper) menyediakan pengaturan terkelola, outputnya adalah satu-satunya sumber yang pemeriksaan ini baca, terlepas dari [`forceRemoteSettingsRefresh`](/docs/id/settings-reference#forceremotesettingsrefresh), yang Claude Code baca dari sumber admin secara langsung pada startup.168* **Kunci kunci lintas sumber**: serangkaian kecil kunci, seperti kunci daftar pasir sandbox, [tercantum di halaman pengaturan terkelola](/docs/id/managed-settings#precedence-within-the-managed-tier). Claude Code menghormatinya ketika sumber terkelola yang dikendalikan admin apa pun menetapkannya; tingkat registri HKCU yang dapat ditulis pengguna dikecualikan.

169 

170 Ketika [`policyHelper`](/docs/id/settings-reference#policyhelper) menyediakan pengaturan terkelola, outputnya adalah satu-satunya sumber yang pemeriksaan ini baca, terlepas dari [`forceRemoteSettingsRefresh`](/docs/id/settings-reference#forceremotesettingsrefresh), yang Claude Code baca dari sumber admin secara langsung pada startup.

169* **Blok `env`**: terlepas dari unit telemetri dan variabel routing yang dipasangkan dengan kunci kredensial, keduanya dibahas di bawah, blok ini menggabungkan per kunci di seluruh sumber yang dikendalikan admin. Untuk setiap variabel lingkungan, sumber dengan prioritas tertinggi yang mendefinisikannya menang, dan sumber admin yang lebih rendah mengisi variabel yang sumber yang lebih tinggi biarkan tidak diatur. Entri `env` yang dikelola endpoint oleh karena itu berlaku kapan pun konfigurasi yang dikelola server meninggalkan variabel tersebut tidak diatur, atau saat nilai server yang di-cache untuk itu [ditahan menunggu konfirmasi server](#fetch-and-caching-behavior). Memerlukan Claude Code v2.1.223 atau lebih baru. Sebelum v2.1.223, Claude Code menerapkan blok `env` sumber yang dipilih secara keseluruhan saja.171* **Blok `env`**: terlepas dari unit telemetri dan variabel routing yang dipasangkan dengan kunci kredensial, keduanya dibahas di bawah, blok ini menggabungkan per kunci di seluruh sumber yang dikendalikan admin. Untuk setiap variabel lingkungan, sumber dengan prioritas tertinggi yang mendefinisikannya menang, dan sumber admin yang lebih rendah mengisi variabel yang sumber yang lebih tinggi biarkan tidak diatur. Entri `env` yang dikelola endpoint oleh karena itu berlaku kapan pun konfigurasi yang dikelola server meninggalkan variabel tersebut tidak diatur, atau saat nilai server yang di-cache untuk itu [ditahan menunggu konfirmasi server](#fetch-and-caching-behavior). Memerlukan Claude Code v2.1.223 atau lebih baru. Sebelum v2.1.223, Claude Code menerapkan blok `env` sumber yang dipilih secara keseluruhan saja.

170 * **Unit telemetri**: kunci exporter `OTEL_EXPORTER_OTLP_*`, toggle penangkapan konten `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER`, dan variabel tracing beta `ENABLE_BETA_TRACING_DETAILED` dan `BETA_TRACING_ENDPOINT` mengikuti sumber tertinggi yang menetapkan salah satu dari mereka sebagai unit. Sumber yang mengirimkan kunci kredensial `otelHeadersHelper` juga mengklaim unit, tetapi mendarat variabel ini hanya ketika itu adalah sumber yang dipilih: sumber yang tidak dipilih tetapi mengirimkan kunci tidak berkontribusi pada salah satu dari mereka dan masih memblokir sumber yang lebih rendah dari mengisinya. Bagaimanapun, endpoint exporter dari satu sumber tidak pernah dapat dipasangkan dengan kredensial dari sumber lain.172 * **Unit telemetri**: kunci exporter `OTEL_EXPORTER_OTLP_*`, toggle penangkapan konten `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER`, dan variabel tracing beta `ENABLE_BETA_TRACING_DETAILED` dan `BETA_TRACING_ENDPOINT` mengikuti sumber tertinggi yang menetapkan salah satu dari mereka sebagai unit. Sumber yang mengirimkan kunci kredensial `otelHeadersHelper` juga mengklaim unit, tetapi mendarat variabel ini hanya ketika itu adalah sumber yang dipilih: sumber yang tidak dipilih tetapi mengirimkan kunci tidak berkontribusi pada salah satu dari mereka dan masih memblokir sumber yang lebih rendah dari mengisinya. Bagaimanapun, endpoint exporter dari satu sumber tidak pernah dapat dipasangkan dengan kredensial dari sumber lain.

171 * **Routing yang dipasangkan kredensial**: sumber yang memasangkan variabel routing dengan kunci kredensial yang hanya dipilih-sumber, seperti `apiKeyHelper` atau `otelHeadersHelper`, berkontribusi pada variabel routing tersebut hanya ketika itu memenangkan slot.173 * **Routing yang dipasangkan kredensial**: sumber yang memasangkan variabel routing dengan kunci kredensial yang hanya dipilih-sumber, seperti `apiKeyHelper` atau `otelHeadersHelper`, berkontribusi pada variabel routing tersebut hanya ketika itu memenangkan slot.

settings.md +7 −6

Details

470 470 

471Untuk mengubah pengaturan untuk diri sendiri di satu proyek tanpa mengubahnya untuk rekan kerja Anda, simpan di `.claude/settings.local.json` di dalam proyek. Claude Code menerapkan file itu di atas `.claude/settings.json` yang dikomit, jadi jika file tim Anda menetapkan `"model": "claude-sonnet-5"` dan Anda menginginkan Opus, masukkan `"model": "claude-opus-4-8"` di file lokal Anda dan hanya sesi Anda yang berubah.471Untuk mengubah pengaturan untuk diri sendiri di satu proyek tanpa mengubahnya untuk rekan kerja Anda, simpan di `.claude/settings.local.json` di dalam proyek. Claude Code menerapkan file itu di atas `.claude/settings.json` yang dikomit, jadi jika file tim Anda menetapkan `"model": "claude-sonnet-5"` dan Anda menginginkan Opus, masukkan `"model": "claude-opus-4-8"` di file lokal Anda dan hanya sesi Anda yang berubah.

472 472 

473Tiga hal yang perlu diketahui tentang file lokal:473Claude Code juga menulis ke file ini, menyimpannya keluar dari komit Anda, dan menerapkan aturan izinnya tanpa langkah kepercayaan:

474 474 

475* **Claude Code juga menulisnya.** Saat Claude meminta izin untuk menjalankan perintah Bash dan Anda memilih "Ya, dan jangan tanya lagi", Claude Code menyimpan [persetujuan izin](/docs/id/permissions#permission-system) itu di sini sebagai aturan `allow`.475* **Claude Code juga menulisnya.** Saat Claude meminta izin untuk menjalankan perintah Bash dan Anda memilih "Ya, dan jangan tanya lagi", Claude Code menyimpan [persetujuan izin](/docs/id/permissions#permission-system) itu di sini sebagai aturan `allow`.

476* **Anda tidak perlu gitignore sendiri, kecuali Anda membuatnya dengan tangan.** Saat pertama kali Claude Code menulis file di repositori git yang belum mengabaikannya, ia menambahkan `**/.claude/settings.local.json` ke file pengecualian git global Anda, sehingga file tetap keluar dari komit Anda di setiap repositori. File itu adalah `core.excludesFile` saat konfigurasi git global Anda menetapkannya ke jalur absolut atau jalur dengan awalan `~`; jika tidak, itu adalah `$XDG_CONFIG_HOME/git/ignore`, atau `~/.config/git/ignore` saat `XDG_CONFIG_HOME` tidak diatur. Jika Anda membuat file dengan tangan dan Claude Code belum menulisnya, tambahkan ke `.gitignore` sendiri.476* **Anda tidak perlu gitignore sendiri, kecuali Anda membuatnya dengan tangan.** Saat pertama kali Claude Code menulis file di repositori git yang belum mengabaikannya, ia menambahkan `**/.claude/settings.local.json` ke file pengecualian git global Anda, sehingga file tetap keluar dari komit Anda di setiap repositori. File itu adalah `core.excludesFile` saat konfigurasi git global Anda menetapkannya ke jalur absolut atau jalur dengan awalan `~`; jika tidak, itu adalah `$XDG_CONFIG_HOME/git/ignore`, atau `~/.config/git/ignore` saat `XDG_CONFIG_HOME` tidak diatur. Jika Anda membuat file dengan tangan dan Claude Code belum menulisnya, tambahkan ke `.gitignore` sendiri.


765 765 

766Dua hal menjaga kunci di `.claude/settings.json` dari penerapan untuk semua orang yang mengkloning:766Dua hal menjaga kunci di `.claude/settings.json` dari penerapan untuk semua orang yang mengkloning:

767 767 

768* **Claude Code mengabaikan kunci dalam file repositori.** Cari `User, local, or managed`, `User or managed`, `Managed`, atau `Global config` di kolom Scope dari [indeks pengaturan](/docs/id/settings-reference#settings-index); kunci-kunci itu tidak pernah berlaku dari file bersama, terlepas dari [`autoContinueAtUsageLimit`](/docs/id/settings-reference#autocontinueatusagelimit), yang file repositori masih dapat matikan: saat file menetapkan kunci dan tidak ada nilai pengguna, `--settings`, atau yang dikelola, Claude Code membaca pengaturan sebagai mati. Kunci `Global config` hanya berlaku dari `~/.claude.json`.768* **Claude Code mengabaikan kunci dalam file repositori.** Cari `User, local, or managed`, `User or managed`, `Managed`, atau `Global config` di kolom Scope dari [indeks pengaturan](/docs/id/settings-reference#settings-index). Kunci-kunci itu tidak pernah berlaku dari file bersama, terlepas dari beberapa yang file repositori masih dapat matikan. Setiap entri itu mengatakan demikian pada baris Scope-nya. Kunci `Global config` hanya berlaku dari `~/.claude.json`.

769* **Kunci menunggu kepercayaan.** Aturan `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces`, dan sebagian besar nilai [`env`](/docs/id/settings-reference#env) hanya berlaku setelah setiap rekan kerja [mempercayai folder](/docs/id/permissions#project-allow-rules-and-workspace-trust). Sampai saat itu mereka masih melihat prompt dan tidak mendapatkan plugins dari marketplace yang dideklarasikan file. Aturan `deny` dan `ask` berlaku segera.769* **Kunci menunggu kepercayaan.** Aturan `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces`, dan sebagian besar nilai [`env`](/docs/id/settings-reference#env) hanya berlaku setelah setiap rekan kerja [mempercayai folder](/docs/id/permissions#project-allow-rules-and-workspace-trust). Sampai saat itu mereka masih melihat prompt dan tidak mendapatkan plugins dari marketplace yang dideklarasikan file. Aturan `deny` dan `ask` berlaku segera.

770 770 

771<h4 id="permission-rules-combine-differently-than-you-expected">771<h4 id="permission-rules-combine-differently-than-you-expected">


781 Pengecualian untuk urutan prioritas pengaturan yang dikelola781 Pengecualian untuk urutan prioritas pengaturan yang dikelola

782</h3>782</h3>

783 783 

784Untuk beberapa kunci yang sensitif terhadap keamanan, Claude Code menghormati nilai yang membatasi dari cakupan yang sebaliknya tidak dapat menimpa pengaturan yang dikelola. Temukan kunci dalam tabel ini untuk melihat nilai mana yang dihormatinya dan dari mana.784Untuk beberapa kunci yang nilainya membatasi sesi, Claude Code menghormati nilai yang membatasi dari cakupan yang sebaliknya tidak dapat menimpa pengaturan yang dikelola. Temukan kunci dalam tabel ini untuk melihat nilai mana yang dihormatinya dan dari mana.

785 785 

786| Kunci | Nilai yang dihormati Claude Code | Catatan |786| Kunci | Nilai yang dihormati Claude Code | Catatan |

787| :------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |787| :------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


792| [`crossSessionInbound`](/docs/id/settings-reference#crosssessioninbound) | Nilai yang lebih ketat dari `.claude/settings.json` atau `.claude/settings.local.json`, pada tangga `accept` \< `hold` \< `refuse` | Dihormati di atas nilai yang dikelola, `--settings`, dan pengguna; nilai proyek atau lokal yang tidak lebih ketat diabaikan |792| [`crossSessionInbound`](/docs/id/settings-reference#crosssessioninbound) | Nilai yang lebih ketat dari `.claude/settings.json` atau `.claude/settings.local.json`, pada tangga `accept` \< `hold` \< `refuse` | Dihormati di atas nilai yang dikelola, `--settings`, dan pengguna; nilai proyek atau lokal yang tidak lebih ketat diabaikan |

793| [`useAutoModeDuringPlan`](/docs/id/settings-reference#useautomodeduringplan) | `false` dari sumber yang dikelola, `--settings`, `~/.claude/settings.json`, atau `.claude/settings.local.json` apa pun | Dihormati bahkan saat sumber yang dikelola pemenang menetapkan `true`; `false` di `.claude/settings.json` diabaikan |793| [`useAutoModeDuringPlan`](/docs/id/settings-reference#useautomodeduringplan) | `false` dari sumber yang dikelola, `--settings`, `~/.claude/settings.json`, atau `.claude/settings.local.json` apa pun | Dihormati bahkan saat sumber yang dikelola pemenang menetapkan `true`; `false` di `.claude/settings.json` diabaikan |

794| [`syncClaudeAiSkills`](/docs/id/settings-reference#syncclaudeaiskills) | `false` dari sumber yang dikelola, `--settings`, `~/.claude/settings.json`, atau `.claude/settings.local.json` apa pun | Dihormati bahkan saat sumber yang dikelola pemenang menetapkan `true`; `false` di `.claude/settings.json` diabaikan |794| [`syncClaudeAiSkills`](/docs/id/settings-reference#syncclaudeaiskills) | `false` dari sumber yang dikelola, `--settings`, `~/.claude/settings.json`, atau `.claude/settings.local.json` apa pun | Dihormati bahkan saat sumber yang dikelola pemenang menetapkan `true`; `false` di `.claude/settings.json` diabaikan |

795| [`syncClaudeAiPlugins`](/docs/id/settings-reference#syncclaudeaiplugins) | `false` dari sumber yang dikelola, `--settings`, `~/.claude/settings.json`, atau `.claude/settings.local.json` apa pun | Dihormati bahkan saat sumber yang dikelola pemenang menetapkan `true`; `false` di `.claude/settings.json` diabaikan |

795| [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel) | Batas yang lebih rendah dari cakupan apa pun, termasuk `--settings` | Dihormati bahkan saat pengaturan yang dikelola yang diterapkan Claude Code menetapkan batas yang lebih tinggi; batas terendah berlaku. Memerlukan Claude Code v2.1.267 atau lebih baru |796| [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel) | Batas yang lebih rendah dari cakupan apa pun, termasuk `--settings` | Dihormati bahkan saat pengaturan yang dikelola yang diterapkan Claude Code menetapkan batas yang lebih tinggi; batas terendah berlaku. Memerlukan Claude Code v2.1.267 atau lebih baru |

796 797 

797Aplikasi yang menjalankan Claude Code di dalamnya dan menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars) juga merupakan pengecualian. Claude Code mengambil konfigurasi model aplikasi itu di atas kunci `model`, `fallbackModel`, `modelPicker`, dan `modelOverrides` dari setiap sumber yang dikelola, dan di atas variabel pemilihan model dalam blok `env` yang dikelola, seperti `ANTHROPIC_MODEL` dan keluarga `ANTHROPIC_DEFAULT_*_MODEL`. Claude Code menjaga daftar putih [`availableModels`](/docs/id/settings-reference#availablemodels) yang dikelola berlaku kecuali aplikasi memasok miliknya sendiri.798Aplikasi yang menjalankan Claude Code di dalamnya dan menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars) juga merupakan pengecualian. Claude Code mengambil konfigurasi model aplikasi itu di atas kunci `model`, `fallbackModel`, `modelPicker`, dan `modelOverrides` dari setiap sumber yang dikelola, dan di atas variabel pemilihan model dalam blok `env` yang dikelola, seperti `ANTHROPIC_MODEL` dan keluarga `ANTHROPIC_DEFAULT_*_MODEL`. Claude Code menjaga daftar putih [`availableModels`](/docs/id/settings-reference#availablemodels) yang dikelola berlaku kecuali aplikasi memasok miliknya sendiri.


800 Pengaturan dalam sesi cloud801 Pengaturan dalam sesi cloud

801</h2>802</h2>

802 803 

803Sesi cloud, di [Claude Code di web](/docs/id/claude-code-on-the-web) atau dari [`claude --cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-web), berjalan di [lingkungan cloud](/docs/id/cloud-environments) pada klon segar repositori Anda, bukan di mesin Anda. Itu mengubah pengaturan mana yang mencapainya:804Sesi [cloud](/docs/id/claude-code-on-the-web) berjalan di [lingkungan cloud](/docs/id/cloud-environments) pada klon segar repositori Anda, bukan di mesin Anda. Itu mengubah pengaturan mana yang mencapainya:

804 805 

805* **Pengaturan proyek bersama** (`.claude/settings.json`): dibaca, karena file adalah bagian dari klon. Komit pengaturan di sana untuk menerapkannya dalam sesi cloud.806* **Pengaturan proyek bersama** (`.claude/settings.json`): dibaca dalam sesi dengan satu repositori, karena file adalah bagian dari klon dan sesi dimulai di dalamnya. Komit pengaturan di sana untuk menerapkannya dalam sesi tersebut. Sesi dengan beberapa repositori dimulai di atas klon, jadi dari `.claude/settings.json` setiap repositori hanya memuat plugin dan marketplace yang dideklarasikan file, bukan aturan izin, hooks, `env`, atau kunci lainnya; lihat [Apa yang dibawa dari pengaturan Anda](/docs/id/cloud-environments#what-carries-over-from-your-setup).

806* **Pengaturan pengguna dan proyek lokal** (`~/.claude/settings.json` dan `.claude/settings.local.json`): tidak dibaca. Keduanya tetap di mesin Anda, dan file lokal tidak ada dalam klon.807* **Pengaturan pengguna dan proyek lokal** (`~/.claude/settings.json` dan `.claude/settings.local.json`): tidak dibaca. Keduanya tetap di mesin Anda, dan file lokal tidak ada dalam klon.

807* **Pengaturan yang dikelola**: hanya [pengaturan yang dikelola server](/docs/id/server-managed-settings) yang mencapai sesi cloud; file `managed-settings.json` atau profil MDM di perangkat Anda tidak. [Lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) juga membaca file pengaturan yang dikelola dalam gambar runner-nya. [Bagaimana Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan kapan file itu berlaku.808* **Pengaturan yang dikelola**: hanya [pengaturan yang dikelola server](/docs/id/server-managed-settings) yang mencapai sesi cloud; file `managed-settings.json` atau profil MDM di perangkat Anda tidak. [Lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) juga membaca file pengaturan yang dikelola dalam gambar runner-nya. [Bagaimana Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan kapan file itu berlaku.

808* **`/config`**: di web, membuka bagian Claude Code dari pengaturan claude.ai Anda daripada mengubah nilai. Untuk mengubah pengaturan untuk sesi cloud, atur [variabel lingkungan](/docs/id/cloud-environments#set-environment-variables) di lingkungan atau komit kunci ke `.claude/settings.json` repositori.809* **`/config`**: di browser Anda di claude.ai/code, membuka bagian Claude Code dari pengaturan claude.ai Anda daripada mengubah nilai. Untuk mengubah pengaturan untuk sesi cloud, atur [variabel lingkungan](/docs/id/cloud-environments#set-environment-variables) di lingkungan, atau dalam sesi dengan satu repositori, komit kunci ke `.claude/settings.json` repositori tersebut.

809 810 

810[Apa yang dibawa dari pengaturan Anda](/docs/id/cloud-environments#what-carries-over-from-your-setup) mencantumkan sisanya: `CLAUDE.md`, skills, server MCP, plugins, dan kredensial.811[Apa yang dibawa dari pengaturan Anda](/docs/id/cloud-environments#what-carries-over-from-your-setup) mencantumkan sisanya: `CLAUDE.md`, skills, server MCP, plugins, dan kredensial.

811 812 

Details

96 96 

97Pengaturan bersama satu tim, dikomit ke repositori sehingga semua orang yang mengklonnya mendapatkan izin, hooks, telemetri, dan marketplace plugin yang sama. Simpan file seperti ini di `.claude/settings.json` di bagian atas repositori. Apa yang perlu diketahui sebelum Anda mengkomitnya:97Pengaturan bersama satu tim, dikomit ke repositori sehingga semua orang yang mengklonnya mendapatkan izin, hooks, telemetri, dan marketplace plugin yang sama. Simpan file seperti ini di `.claude/settings.json` di bagian atas repositori. Apa yang perlu diketahui sebelum Anda mengkomitnya:

98 98 

99* **Sesi cloud membacanya juga.** Sesi [cloud session](/docs/id/settings#settings-in-cloud-sessions) di Claude Code di web dimulai dari klon repositori, jadi file yang dikomit berlaku di sana juga.99* **Sesi cloud membacanya juga.** Sesi [cloud session](/docs/id/settings#settings-in-cloud-sessions) dimulai dari klon repositori, jadi file yang dikomit berlaku di sana juga.

100* **Aturan izin menunggu kepercayaan.** Aturan izin dan entri `extraKnownMarketplaces` berlaku setelah setiap orang [mempercayai folder ini sendiri](/docs/id/permissions#project-allow-rules-and-workspace-trust), bukan hanya folder induk; aturan deny dan ask berlaku di setiap sesi, terpercaya atau tidak.100* **Aturan izin menunggu kepercayaan.** Aturan izin dan entri `extraKnownMarketplaces` berlaku setelah setiap orang [mempercayai folder ini sendiri](/docs/id/permissions#project-allow-rules-and-workspace-trust), bukan hanya folder induk; aturan deny dan ask berlaku di setiap sesi, terpercaya atau tidak.

101* **Hook adalah skrip di repo.** Hook file ini menjalankan `.claude/hooks/block-rm.sh`; [How a hook resolves](/docs/id/hooks#how-a-hook-resolves) memandu penulisannya.101* **Hook adalah skrip di repo.** Hook file ini menjalankan `.claude/hooks/block-rm.sh`; [How a hook resolves](/docs/id/hooks#how-a-hook-resolves) memandu penulisannya.

102* **Aturan cocok dengan perintah dan jalur seperti yang ditulis.** `Bash(git push *)` tidak cocok dengan [`git -C . push`](/docs/id/permissions#bash-rule-limits). `Read(./.env)` sendiri menghentikan alat file dan perintah yang menyebutkan file, seperti `cat .env`, tetapi bukan [`grep -r` dijalankan di seluruh direktori](/docs/id/permissions#read-and-edit); blok `sandbox` dalam file ini menutup celah itu, karena sandbox [menambahkan jalur deny `Read` Anda](/docs/id/settings-reference#sandbox-filesystem-denyread) ke apa yang tidak dapat dibaca oleh setiap perintah yang di-sandbox.102* **Aturan cocok dengan perintah dan jalur seperti yang ditulis.** `Bash(git push *)` tidak cocok dengan [`git -C . push`](/docs/id/permissions#bash-rule-limits). `Read(./.env)` sendiri menghentikan alat file dan perintah yang menyebutkan file, seperti `cat .env`, tetapi bukan [`grep -r` dijalankan di seluruh direktori](/docs/id/permissions#read-and-edit); blok `sandbox` dalam file ini menutup celah itu, karena sandbox [menambahkan jalur deny `Read` Anda](/docs/id/settings-reference#sandbox-filesystem-denyread) ke apa yang tidak dapat dibaca oleh setiap perintah yang di-sandbox.

settings-reference.md +226 −150

Details

624| [`awsAuthRefresh`](#awsauthrefresh) | Segarkan [kredensial Bedrock](/docs/id/amazon-bedrock#advanced-credential-configuration) yang kedaluwarsa di `.aws` dengan perintah Anda sendiri | Authentication and providers | Any file |624| [`awsAuthRefresh`](#awsauthrefresh) | Segarkan [kredensial Bedrock](/docs/id/amazon-bedrock#advanced-credential-configuration) yang kedaluwarsa di `.aws` dengan perintah Anda sendiri | Authentication and providers | Any file |

625| [`awsCredentialExport`](#awscredentialexport) | Sediakan [kredensial Bedrock](/docs/id/amazon-bedrock#advanced-credential-configuration) sebagai JSON dari perintah Anda sendiri | Authentication and providers | Any file |625| [`awsCredentialExport`](#awscredentialexport) | Sediakan [kredensial Bedrock](/docs/id/amazon-bedrock#advanced-credential-configuration) sebagai JSON dari perintah Anda sendiri | Authentication and providers | Any file |

626| [`axScreenReader`](#axscreenreader) | Render [output yang ramah pembaca layar](/docs/id/accessibility) | Interface and terminal | Any file |626| [`axScreenReader`](#axscreenreader) | Render [output yang ramah pembaca layar](/docs/id/accessibility) | Interface and terminal | Any file |

627| [`bashEditDiffEnabled`](#basheditdiffenabled) | Catat [file yang diubah perintah Bash](/docs/id/hooks#bash) dalam setiap mode izin | Interface and terminal | User or managed |

627| [`bashOutputMaxChars`](#bashoutputmaxchars) | Atur berapa banyak [output](/docs/id/tools-reference#output-limits) perintah yang berhasil yang Claude terima secara inline | Memory and context | Any file |628| [`bashOutputMaxChars`](#bashoutputmaxchars) | Atur berapa banyak [output](/docs/id/tools-reference#output-limits) perintah yang berhasil yang Claude terima secara inline | Memory and context | Any file |

628| [`blockedMarketplaces`](#blockedmarketplaces) | Blokir sumber [marketplace plugin](/docs/id/plugin-marketplaces) untuk organisasi Anda | Plugins and skills | Managed |629| [`blockedMarketplaces`](#blockedmarketplaces) | Blokir sumber [marketplace plugin](/docs/id/plugin-marketplaces) untuk organisasi Anda | Plugins and skills | Managed |

629| [`browserExternalPageTools`](#browserexternalpagetools) | Tetap tidak aktifkan alat Claude di halaman eksternal dalam pane Browser [desktop](/docs/id/desktop) | Tools | Managed |630| [`browserExternalPageTools`](#browserexternalpagetools) | Tetap tidak aktifkan alat Claude di halaman eksternal dalam pane Browser [desktop](/docs/id/desktop) | Tools | Managed |


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

680| [`forceLoginOrgUUID`](#forceloginorguuid) | [Pin login claude.ai ke organisasi Anda](/docs/id/authentication#restrict-login-to-your-organization); hanya sumber yang dikelola yang memberlakukannya | Authentication and providers | Any file |681| [`forceLoginOrgUUID`](#forceloginorguuid) | [Pin login claude.ai ke organisasi Anda](/docs/id/authentication#restrict-login-to-your-organization); hanya sumber yang dikelola yang memberlakukannya | Authentication and providers | Any file |

681| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Blokir startup hingga [pengaturan yang dikelola server](/docs/id/server-managed-settings) segar diambil | Enterprise and managed settings | Managed |682| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Blokir startup hingga [pengaturan yang dikelola server](/docs/id/server-managed-settings) segar diambil | Enterprise and managed settings | Managed |

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

682| [`gcpAuthRefresh`](#gcpauthrefresh) | Segarkan [kredensial Google Cloud](/docs/id/google-vertex-ai#advanced-credential-configuration) dengan perintah Anda sendiri | Authentication and providers | Any file |684| [`gcpAuthRefresh`](#gcpauthrefresh) | Segarkan [kredensial Google Cloud](/docs/id/google-vertex-ai#advanced-credential-configuration) dengan perintah Anda sendiri | Authentication and providers | Any file |

683| [`hooks`](#hooks) | Jalankan perintah Anda sendiri sebagai [hooks](/docs/id/hooks) pada titik dalam siklus hidup Claude Code | Hooks and automation | Any file |685| [`hooks`](#hooks) | Jalankan perintah Anda sendiri sebagai [hooks](/docs/id/hooks) pada titik dalam siklus hidup Claude Code | Hooks and automation | Any file |

684| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Batasi variabel env mana yang dapat dimasukkan [HTTP hooks](/docs/id/hooks) ke header | Hooks and automation | Any file |686| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Batasi variabel env mana yang dapat dimasukkan [HTTP hooks](/docs/id/hooks) ke header | Hooks and automation | Any file |


792| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Pilih [masa pakai cache prompt](/docs/id/prompt-caching#cache-lifetime) untuk subagent dan permintaan lain di luar percakapan utama | Model dan respons | Any file |794| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Pilih [masa pakai cache prompt](/docs/id/prompt-caching#cache-lifetime) untuk subagent dan permintaan lain di luar percakapan utama | Model dan respons | Any file |

793| [`subagentStatusLine`](#subagentstatusline) | Tulis ulang baris dalam tampilan tugas [subagent](/docs/id/sub-agents) dengan perintah Anda sendiri | Interface and terminal | Any file |795| [`subagentStatusLine`](#subagentstatusline) | Tulis ulang baris dalam tampilan tugas [subagent](/docs/id/sub-agents) dengan perintah Anda sendiri | Interface and terminal | Any file |

794| [`switchModelsOnFlag`](#switchmodelsonflag) | Alihkan model secara otomatis atau jeda ketika [pengklasifikasi keamanan](/docs/id/model-config#ask-before-switching) menandai permintaan | Model dan respons | Any file |796| [`switchModelsOnFlag`](#switchmodelsonflag) | Alihkan model secara otomatis atau jeda ketika [pengklasifikasi keamanan](/docs/id/model-config#ask-before-switching) menandai permintaan | Model dan respons | Any file |

795| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Hentikan pengunduhan [skill yang diaktifkan di akun claude.ai Anda](/docs/id/skills#how-synced-skills-behave) dan sembunyikan yang sudah disinkronkan | Plugins and skills | User, local, or managed |797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Hentikan pemuatan [plugin yang diaktifkan di akun claude.ai Anda](/docs/id/plugins-reference#synced-plugins) dan hentikan pengunduhan yang baru | Plugins and skills | User, local, or managed |

798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Hentikan pemuatan [skill yang diaktifkan di akun claude.ai Anda](/docs/id/skills#how-synced-skills-behave) dan hentikan pengunduhan yang baru | Plugins and skills | User, local, or managed |

796| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Matikan penyorotan sintaks dalam diff dan blok kode | Interface and terminal | Any file |799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Matikan penyorotan sintaks dalam diff dan blok kode | Interface and terminal | Any file |

797| [`taskOutputMaxChars`](#taskoutputmaxchars) | Atur berapa banyak output [tugas latar belakang](/docs/id/tools-reference#background-commands) yang Claude terima secara inline | Memory and context | Any file |800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Atur berapa banyak output [tugas latar belakang](/docs/id/tools-reference#background-commands) yang Claude terima secara inline | Memory and context | Any file |

798| [`teammateDefaultModel`](#teammatedefaultmodel) | Dihapus di v2.1.234; lihat [Tentukan rekan tim dan model](/docs/id/agent-teams#specify-teammates-and-models) untuk cara Claude Code memilih model rekan tim | Global config settings | Global config |801| [`teammateDefaultModel`](#teammatedefaultmodel) | Dihapus di v2.1.234; lihat [Tentukan rekan tim dan model](/docs/id/agent-teams#specify-teammates-and-models) untuk cara Claude Code memilih model rekan tim | Global config settings | Global config |


1152* **Type**: object dengan `multiplier` opsional dan peta `overrides` opsional1155* **Type**: object dengan `multiplier` opsional dan peta `overrides` opsional

1153* **Default**: tidak diatur, jadi Claude Code melaporkan harga daftar kecuali aplikasi host memasok tabel1156* **Default**: tidak diatur, jadi Claude Code melaporkan harga daftar kecuali aplikasi host memasok tabel

1154 1157 

1155Contoh ini menetapkan tarif kontrak untuk Sonnet 4.6 dan kemudian mengurangi setiap angka, baris Sonnet disertakan, sebesar 15%. Atur `multiplier` saja untuk diskon datar, `overrides` saja untuk tarif per model, atau keduanya:1158Atur `multiplier` saja untuk diskon datar atau markup, `overrides` saja untuk tarif per model, atau keduanya.

1159 

1160Contoh ini menetapkan tarif kontrak untuk Sonnet 4.6 dan kemudian mengurangi setiap angka, baris Sonnet disertakan, sebesar 15%:

1156 1161 

1157```json managed-settings.json theme={null}1162```json managed-settings.json theme={null}

1158{1163{


1170}1175}

1171```1176```

1172 1177 

1178Atur `multiplier` di atas 1, hingga 10, untuk menandai setiap angka. Markup memerlukan Claude Code v2.1.271 atau lebih baru. Versi sebelumnya mengabaikan `multiplier` di atas 1 dengan peringatan dan menyimpan sisa pengaturan.

1179 

1173Untuk langkah-langkahnya, termasuk cara mengkonfirmasi tarif berlaku, lihat [Laporkan pengeluaran pada tarif kontrak Anda](/docs/id/costs#report-spend-at-your-contracted-rates).1180Untuk langkah-langkahnya, termasuk cara mengkonfirmasi tarif berlaku, lihat [Laporkan pengeluaran pada tarif kontrak Anda](/docs/id/costs#report-spend-at-your-contracted-rates).

1174 1181 

1175<span id="modelpricing-multiplier" />1182<span id="modelpricing-multiplier" />


1182 1189 

1183| Field | Type | Apa yang dilakukannya |1190| Field | Type | Apa yang dilakukannya |

1184| :----------- | :----------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1191| :----------- | :----------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1185| `multiplier` | angka lebih besar dari 0 dan paling banyak 1 | Menskalakan setiap biaya yang dihitung Claude Code, apakah baris `overrides` mencakupnya atau tidak |1192| `multiplier` | angka lebih besar dari 0 dan paling banyak 10 | Menskalakan setiap biaya yang dihitung Claude Code, apakah baris `overrides` mencakupnya atau tidak. Di bawah 1 adalah diskon, di atas 1 adalah markup |

1186| `overrides` | peta ID model ke objek tarif dengan `input`, `output`, `cacheRead`, dan `cacheWrite`, masing-masing 0 hingga 10000 | Tarif USD-per-juta-token untuk model itu, keempat diperlukan. `cacheWrite` mencakup penulisan cache lima menit dan satu jam. Lihat [Model mana yang berlaku baris modelPricing](#which-models-a-modelpricing-row-applies-to) |1193| `overrides` | peta ID model ke objek tarif dengan `input`, `output`, `cacheRead`, dan `cacheWrite`, masing-masing 0 hingga 10000 | Tarif USD-per-juta-token untuk model itu, keempat diperlukan. `cacheWrite` mencakup penulisan cache lima menit dan satu jam. Lihat [Model mana yang berlaku baris modelPricing](#which-models-a-modelpricing-row-applies-to) |

1187 1194 

1188Claude Code menggunakan tarif baris persis seperti yang Anda tulis, tanpa menambahkan surcharge fast-mode atau [tarif inferensi hanya-AS](https://platform.claude.com/docs/en/about-claude/pricing). Jika Anda juga menetapkan `multiplier`, Claude Code menerapkannya di atas tarif baris. Claude Code menjatuhkan baris dengan tarif yang tidak dapat diuraikan, atau `multiplier` yang tidak dapat diuraikan, dan menyimpan sisanya; lihat [Perbaiki file pengaturan yang rusak](/docs/id/settings#fix-a-broken-settings-file).1195Claude Code menggunakan tarif baris persis seperti yang Anda tulis, tanpa menambahkan surcharge fast-mode atau [tarif inferensi hanya-AS](https://platform.claude.com/docs/en/about-claude/pricing). Jika Anda juga menetapkan `multiplier`, Claude Code menerapkannya di atas tarif baris. Claude Code menjatuhkan baris dengan tarif yang tidak dapat diuraikan, atau `multiplier` yang tidak dapat diuraikan, dan menyimpan sisanya; lihat [Perbaiki file pengaturan yang rusak](/docs/id/settings#fix-a-broken-settings-file).


1369 1376 

1370Jadikan pengaturan terkelola satu-satunya sumber pengaturan aturan izin. Claude Code kemudian mengabaikan aturan `allow`, `ask`, dan `deny` dalam file pengguna, proyek, lokal, dan `--settings`, mengabaikan `--allowedTools`, menyembunyikan pilihan selalu-izinkan dalam prompt izin, dan berhenti menyimpan aturan baru.1377Jadikan pengaturan terkelola satu-satunya sumber pengaturan aturan izin. Claude Code kemudian mengabaikan aturan `allow`, `ask`, dan `deny` dalam file pengguna, proyek, lokal, dan `--settings`, mengabaikan `--allowedTools`, menyembunyikan pilihan selalu-izinkan dalam prompt izin, dan berhenti menyimpan aturan baru.

1371 1378 

1372Ketika [pengaturan induk dari host penyematan](/docs/id/managed-settings#let-an-embedding-host-add-policy) berlaku, Claude Code memperlakukan mereka sebagai bagian dari tingkat terkelola: mempertahankan aturan `deny` dan `ask` mereka dan menghapus aturan `allow` dan `additionalDirectories` mereka.1379Ketika [pengaturan induk dari host penyematan](/docs/id/managed-settings#let-an-embedding-host-add-policy) berlaku, Claude Code memperlakukan mereka sebagai bagian dari tingkat terkelola. Claude Code menghapus aturan `allow` dan `additionalDirectories` mereka, dan mempertahankan aturan `deny` dan `ask` mereka kecuali aturan `Read` dan `Edit` yang polanya dimulai dengan `!`. Host tidak dapat mengukir jalur dari aturan terkelola dengan aturan `!`, terlepas dari apakah Anda menetapkan kunci ini.

1373 1380 

1374Aturan `--disallowedTools` dan aturan `deny` dan `ask` sesi saat ini masih berlaku, termasuk setelah Claude Code memuat ulang pengaturan di tengah sesi. Mereka hanya membatasi, jadi mereka tidak dapat memperluas apa yang diberikan aturan terkelola. Sebelum v2.1.257, Claude Code menghapus aturan baris perintah dan sesi tersebut pada pemuatan ulang pengaturan pertama.1381Aturan `--disallowedTools` dan aturan `deny` dan `ask` sesi saat ini masih berlaku, termasuk setelah Claude Code memuat ulang pengaturan di tengah sesi. Mereka hanya membatasi, jadi mereka tidak dapat memperluas apa yang diberikan aturan terkelola. Sebelum v2.1.257, Claude Code menghapus aturan baris perintah dan sesi tersebut pada pemuatan ulang pengaturan pertama.

1375 1382 

1383Untuk apa yang dapat diukir pola `!` dalam aturan `--disallowedTools` atau sesi, lihat [aturan Read dan Edit](/docs/id/permissions#read-and-edit).

1384 

1376* **Scope**: [`Managed`](#scopes)1385* **Scope**: [`Managed`](#scopes)

1377* **Type**: Boolean1386* **Type**: Boolean

1378 * `true`: pengaturan terkelola menjadi satu-satunya sumber pengaturan aturan izin1387 * `true`: pengaturan terkelola menjadi satu-satunya sumber pengaturan aturan izin


1413 `autoMode.classifyAllShell`1422 `autoMode.classifyAllShell`

1414</h3>1423</h3>

1415 1424 

1416Kirim setiap perintah Bash dan PowerShell melalui pengklasifikasi mode otomatis saat mode otomatis aktif. Secara default, mode otomatis hanya menangguhkan aturan izin yang dapat menjalankan kode arbitrer: aturan lebar alat dan wildcard seperti `Bash(*)`, dan awalan interpreter atau shell-wrapper seperti `Bash(python *)`. Perintah yang cocok dengan aturan izin lain, seperti `Bash(npm test)`, melewati pengklasifikasi, dan argumen destruktif yang tidak diantisipasi awalan aturan dapat lolos tanpa terlihat. Menetapkan kunci ini menangguhkan setiap aturan izin shell untuk sesi sehingga pengklasifikasi melihat setiap perintah. Memerlukan Claude Code v2.1.193 atau lebih baru.1425Kirim setiap perintah Bash dan PowerShell melalui pengklasifikasi mode otomatis saat mode otomatis aktif. Secara default, mode otomatis hanya menangguhkan aturan izin yang dapat menjalankan kode arbitrer: aturan lebar alat dan wildcard seperti `Bash(*)`, dan awalan interpreter atau shell-wrapper seperti `Bash(python *)`. Perintah yang cocok dengan aturan izin lain, seperti `Bash(npm test)`, melewati pengklasifikasi kecuali membawa [domain yang diizinkan per-perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode). Ketika melewati, argumen destruktif yang tidak diantisipasi awalan aturan dapat lolos tanpa terlihat. Menetapkan kunci ini menangguhkan setiap aturan izin shell untuk sesi sehingga pengklasifikasi melihat setiap perintah. Memerlukan Claude Code v2.1.193 atau lebih baru.

1417 1426 

1418* **Scope**: [`User or managed`](#scopes). Baca di mana pun [`autoMode`](#automode) dibaca.1427* **Scope**: [`User or managed`](#scopes). Baca di mana pun [`autoMode`](#automode) dibaca.

1419* **Type**: Boolean1428* **Type**: Boolean

1420 * `true`: saat mode otomatis aktif, Claude Code mengirim setiap perintah Bash dan PowerShell melalui pengklasifikasi dan menangguhkan aturan izin shell Anda; di luar mode otomatis aturan masih berlaku1429 * `true`: saat mode otomatis aktif, Claude Code mengirim setiap perintah Bash dan PowerShell melalui pengklasifikasi dan menangguhkan aturan izin shell Anda; di luar mode otomatis aturan masih berlaku

1421 * `false`: mode otomatis hanya menangguhkan aturan izin yang dapat menjalankan kode arbitrer, seperti `Bash(*)` dan `Bash(python *)`; perintah yang cocok dengan aturan izin lain melewati pengklasifikasi, dan setiap perintah shell lainnya melaluinya1430 * `false`: mode otomatis hanya menangguhkan aturan izin yang dapat menjalankan kode arbitrer, seperti `Bash(*)` dan `Bash(python *)`; perintah yang cocok dengan aturan izin lain melewati pengklasifikasi kecuali membawa [domain yang diizinkan per-perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode), dan setiap perintah shell lainnya melaluinya

1422* **Default**: `false`1431* **Default**: `false`

1423 1432 

1424```json settings.json theme={null}1433```json settings.json theme={null}


1554 `permissions.deny`1563 `permissions.deny`

1555</h3>1564</h3>

1556 1565 

1557Daftar penggunaan alat yang diblokir Claude Code. Gunakan untuk file yang menyimpan kunci API, rahasia, atau nilai lingkungan: Claude Code mengecualikan file yang cocok dari penemuan file dan hasil pencarian, menolak pembacaan mereka, dan memblokir [alat Edit dan Write](/docs/id/permissions#read-and-edit) pada jalur yang cocok. Aturan blokir Read dan Edit berlaku untuk alat file bawaan Claude, untuk perintah file yang dikenali Claude Code dalam Bash, seperti `cat`, `head`, `tail`, dan `sed`, dan untuk target Bash [pengalihan](/docs/id/permissions#redirections) seperti `> file` dan `< file`; mereka tidak berlaku untuk perintah yang membaca file tanpa menamakannya, seperti `grep -r pattern .`, atau untuk subprocess arbitrer, jadi untuk penegakan tingkat OS [aktifkan sandbox](/docs/id/sandboxing).1566Daftar penggunaan alat yang diblokir Claude Code. Gunakan untuk file yang menyimpan kunci API, rahasia, atau nilai lingkungan: Claude Code mengecualikan file yang cocok dari penemuan file dan hasil pencarian, menolak pembacaan mereka, dan memblokir [alat Edit dan Write](/docs/id/permissions#read-and-edit) pada jalur yang cocok.

1567 

1568Aturan blokir Read dan Edit berlaku untuk alat file bawaan Claude, untuk perintah file yang dikenali Claude Code dalam Bash, seperti `cat`, `head`, `tail`, `sed`, dan `tee`, dan untuk target Bash [pengalihan](/docs/id/permissions#redirections) seperti `> file` dan `< file`; mereka tidak berlaku untuk perintah yang membaca file tanpa menamakannya, seperti `grep -r pattern .`, atau untuk subprocess arbitrer, jadi untuk penegakan tingkat OS [aktifkan sandbox](/docs/id/sandboxing).

1558 1569 

1559* **Scope**: [`Any file`](#scopes)1570* **Scope**: [`Any file`](#scopes)

1560* **Type**: array string aturan izin1571* **Type**: array string aturan izin


1606 1617 

1607Hentikan Claude dari membaca jalur di luar [direktori kerja](/docs/id/permissions#working-directories) sesi dengan alat Read, Grep, Glob, dan LSP, dalam setiap mode izin termasuk `bypassPermissions`. Perintah Bash yang membaca jalur yang cocok melalui perintah file yang dikenali Claude Code, seperti `cat`, meminta Anda bahkan dalam mode otomatis dan mode `bypassPermissions`. Memerlukan Claude Code v2.1.257 atau lebih baru.1618Hentikan Claude dari membaca jalur di luar [direktori kerja](/docs/id/permissions#working-directories) sesi dengan alat Read, Grep, Glob, dan LSP, dalam setiap mode izin termasuk `bypassPermissions`. Perintah Bash yang membaca jalur yang cocok melalui perintah file yang dikenali Claude Code, seperti `cat`, meminta Anda bahkan dalam mode otomatis dan mode `bypassPermissions`. Memerlukan Claude Code v2.1.257 atau lebih baru.

1608 1619 

1620Perintah Bash yang tidak dapat dilacak oleh parser shell, seperti yang mengubah direktori lebih dari sekali atau menjalankan subshell, meminta Anda bahkan dalam mode otomatis dan mode `bypassPermissions`. Prompt muncul bahkan ketika perintah tidak menamai jalur apa pun di luar direktori kerja. Prompt ini tidak berlaku ketika perintah berjalan dalam [sandbox](/docs/id/sandboxing) dan sandbox memberlakukan blokir.

1621 

1609Claude Code juga menulis `true` di sini ketika Anda memilih untuk memblokir pembacaan tersebut pada [prompt mode otomatis sebelum pembacaan pertama di luar direktori kerja](/docs/id/permission-modes#first-read-outside-the-working-directories).1622Claude Code juga menulis `true` di sini ketika Anda memilih untuk memblokir pembacaan tersebut pada [prompt mode otomatis sebelum pembacaan pertama di luar direktori kerja](/docs/id/permission-modes#first-read-outside-the-working-directories).

1610 1623 

1611* **Scope**: [`Any file`](#scopes). Jika sumber pengaturan apa pun menetapkan `true`, blokir berlaku, jadi file yang diperiksa repositori dapat mengaktifkan blokir untuk proyek tetapi tidak dapat mengangkat blokir yang Anda atur.1624* **Scope**: [`Any file`](#scopes). Jika sumber pengaturan apa pun menetapkan `true`, blokir berlaku, jadi file yang diperiksa repositori dapat mengaktifkan blokir untuk proyek tetapi tidak dapat mengangkat blokir yang Anda atur.


1622}1635}

1623```1636```

1624 1637 

1625Jika hanya file pengaturan yang diperiksa repositori yang menambahkan direktori, blokir masih berlaku untuk pembacaan di sana. File yang dibutuhkan Claude Code sendiri tetap dapat dibaca, seperti keterampilan, plugin, aturan, agen, perintah Anda, dan file memori `CLAUDE.md` di bawah `~/.claude/`.1638Jika hanya file pengaturan yang diperiksa repositori yang menambahkan direktori, blokir masih berlaku untuk pembacaan di sana. Ketika [`autoMemoryDirectory`](#automemorydirectory) berasal dari `.claude/settings.json` proyek, atau dari `.claude/settings.local.json` [diperlakukan sebagai disediakan repositori](/docs/id/permissions#when-your-local-settings-file-needs-trust), Claude Code tidak memuat [memori otomatis](/docs/id/memory#storage-location) apa pun dari direktori itu dan tidak menyimpan apa pun ke dalamnya. File yang dibutuhkan Claude Code sendiri tetap dapat dibaca, seperti keterampilan, plugin, aturan, agen, perintah Anda, dan file memori `CLAUDE.md` di bawah `~/.claude/`.

1626 1639 

1627Ketika [sandbox](/docs/id/sandboxing) aktif, blokir juga menolak perintah sandboxed akses baca ke direktori home dan akar volume yang dipasang di luar direktori kerja. Percobaan ulang yang memerlukan persetujuan untuk [berjalan di luar sandbox](/docs/id/sandboxing#the-unsandboxed-retry-escape-hatch) meminta Anda bahkan dalam mode `bypassPermissions`. File yang dibaca alat dari direktori home Anda, seperti `~/.gitconfig`, ditolak dengan sisanya; buka kembali jalur spesifik dengan [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) ketika alat membutuhkannya.1640Ketika [sandbox](/docs/id/sandboxing) aktif, blokir juga menolak perintah sandboxed akses baca ke direktori home dan akar volume yang dipasang di luar direktori kerja. Percobaan ulang yang memerlukan persetujuan untuk [berjalan di luar sandbox](/docs/id/sandboxing#the-unsandboxed-retry-escape-hatch) meminta Anda bahkan dalam mode `bypassPermissions`. File yang dibaca alat dari direktori home Anda, seperti `~/.gitconfig`, ditolak dengan sisanya; buka kembali jalur spesifik dengan [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) ketika alat membutuhkannya.

1628 1641 


2670* **Scope**: [`User or managed`](#scopes). Repositori tidak dapat mengaktifkan atau menonaktifkannya.2683* **Scope**: [`User or managed`](#scopes). Repositori tidak dapat mengaktifkan atau menonaktifkannya.

2671* **Type**: Boolean2684* **Type**: Boolean

2672 * `true`: Claude Code menolak akses perintah bersandbox ke host di luar daftar izin2685 * `true`: Claude Code menolak akses perintah bersandbox ke host di luar daftar izin

2673 * `false`: kecuali file pengaturan terpercaya lain menetapkan `true`, Claude Code memutuskan host di luar daftar izin dengan mode izin daripada menolaknya langsung: menjalankan pengklasifikasi dalam mode otomatis, menolak dalam mode `dontAsk`, memungkinkan dalam mode `bypassPermissions` dan dalam plan mode ketika bypass tersedia, dan sebaliknya meminta Anda2686 * `false`: kecuali file pengaturan terpercaya lain menetapkan `true`, Claude Code memutuskan host di luar daftar izin dengan mode izin daripada menolaknya langsung: dalam mode otomatis memeriksa host terhadap [per-command allowed domains](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode), dalam mode `dontAsk` menolak, dalam mode `bypassPermissions` dan dalam sesi plan mode interaktif terminal di mana bypass tersedia memungkinkan, dan sebaliknya meminta Anda

2674* **Default**: `false`2687* **Default**: `false`

2675 2688 

2676```json settings.json theme={null}2689```json settings.json theme={null}


3136 `axScreenReader`3149 `axScreenReader`

3137</h3>3150</h3>

3138 3151 

3139Render output yang ramah pembaca layar: teks datar tanpa batas dekoratif atau animasi. Mode pembaca layar menggunakan renderer klasik, jadi pengaturan `tui` tidak berpengaruh saat aktif; [sesi latar belakang](/docs/id/agent-view) yang terlampir masih merender fullscreen. Memerlukan Claude Code v2.1.181 atau lebih baru.3152Render output yang ramah pembaca layar: teks datar tanpa batas dekoratif atau animasi. Mode pembaca layar menggunakan renderer klasik, jadi pengaturan `tui` tidak berpengaruh saat aktif; [sesi latar belakang](/docs/id/agent-view) yang terlampir masih merender fullscreen.

3140 3153 

3141* **Scope**: [`Any file`](#scopes)3154* **Scope**: [`Any file`](#scopes)

3142* **Type**: Boolean3155* **Type**: Boolean


3151}3164}

3152```3165```

3153 3166 

3154Memerlukan Claude Code v2.1.181 atau lebih baru.3167<h3 id="basheditdiffenabled">

3168 `bashEditDiffEnabled`

3169</h3>

3170 

3171Pilih apakah Claude Code mencatat file yang diubah perintah Bash dalam repositori Git. Ketika mencatatnya, Anda melihat diff mereka di terminal setelah perintah, dan [PostToolUse Bash hooks](/docs/id/hooks#bash) Anda menerima daftar file yang diubah.

3172 

3173Atur kunci ke `true` untuk mencatatnya dalam setiap mode izin. Memerlukan Claude Code v2.1.269 atau lebih baru.

3174 

3175* **Scope**: [`User or managed`](#scopes). `true` hanya dihitung dari pengaturan pengguna Anda, JSON yang dilewatkan dengan `--settings`, atau [pengaturan terkelola](/docs/id/managed-settings), jadi `true` dalam `.claude/settings.json` atau `.claude/settings.local.json` repositori tidak dapat mengaktifkan pencatatan. `false` dalam file repositori apa pun masih mematikannya kecuali file [preseden lebih tinggi](/docs/id/settings#settings-precedence) mengatur `true`.

3176* **Type**: Boolean

3177* **Default**: unset, jadi Claude Code mencatat perubahan dalam mode auto dan mode `bypassPermissions` ketika mengarahkan Claude untuk mengedit file melalui Bash

3178* **Per-session overrides**: [`CLAUDE_CODE_BASH_EDIT_DIFF`](/docs/id/env-vars) mengambil alih kunci ini untuk satu sesi

3179 

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

3181{

3182 "bashEditDiffEnabled": true

3183}

3184```

3155 3185 

3156<h3 id="companyannouncements">3186<h3 id="companyannouncements">

3157 `companyAnnouncements`3187 `companyAnnouncements`


3308 `footerLinksRegexes`3338 `footerLinksRegexes`

3309</h3>3339</h3>

3310 3340 

3311Render lencana yang dapat diklik tambahan di footer di bawah kotak input ketika regex cocok dengan output giliran: hasil tool, termasuk konten file dan halaman yang diambil, dan respons Claude sendiri. Gunakan untuk mengubah ID yang dicetak oleh CLI proyek, seperti alat review dan pelacak masalah, menjadi tautan sesi. Memerlukan Claude Code v2.1.176 atau lebih baru.3341Render lencana yang dapat diklik tambahan di footer di bawah kotak input ketika regex cocok dengan output giliran: hasil tool, termasuk konten file dan halaman yang diambil, dan respons Claude sendiri. Gunakan untuk mengubah ID yang dicetak oleh CLI proyek, seperti alat review dan pelacak masalah, menjadi tautan sesi.

3312 3342 

3313* **Scope**: [`User or managed`](#scopes)3343* **Scope**: [`User or managed`](#scopes)

3314* **Type**: array of objects, masing-masing dengan `type` diatur ke `"regex"`, regex `pattern`, template `url`, dan `label` opsional; placeholder `{name}` dalam `url` dan `label` diisi dari grup penangkapan bernama dalam `pattern`3344* **Type**: array of objects, masing-masing dengan `type` diatur ke `"regex"`, regex `pattern`, template `url`, dan `label` opsional; placeholder `{name}` dalam `url` dan `label` diisi dari grup penangkapan bernama dalam `pattern`


3329}3359}

3330```3360```

3331 3361 

3332Dengan ini dikonfigurasi, ketika `PROJ-1234` muncul dalam hasil tool atau dalam balasan Claude, lencana `PROJ-1234` muncul di footer menautkan ke `https://issues.example.com/browse/PROJ-1234`. Memerlukan Claude Code v2.1.176 atau lebih baru.3362Dengan ini dikonfigurasi, ketika `PROJ-1234` muncul dalam hasil tool atau dalam balasan Claude, lencana `PROJ-1234` muncul di footer menautkan ke `https://issues.example.com/browse/PROJ-1234`.

3333 3363 

3334<h4 id="badge-constraints">3364<h4 id="badge-constraints">

3335 Batasan lencana3365 Batasan lencana


3916 `wheelScrollAccelerationEnabled`3946 `wheelScrollAccelerationEnabled`

3917</h3>3947</h3>

3918 3948 

3919Percepat kecepatan scroll roda mouse selama scroll cepat dalam [fullscreen rendering](/docs/id/fullscreen#mouse-wheel-scrolling). Atur ke `false` untuk laju scroll konstan per takik roda. Memerlukan Claude Code v2.1.174 atau lebih baru.3949Percepat kecepatan scroll roda mouse selama scroll cepat dalam [fullscreen rendering](/docs/id/fullscreen#mouse-wheel-scrolling). Atur ke `false` untuk laju scroll konstan per takik roda.

3920 3950 

3921* **Scope**: [`Any file`](#scopes)3951* **Scope**: [`Any file`](#scopes)

3922* **Type**: Boolean3952* **Type**: Boolean


3930}3960}

3931```3961```

3932 3962 

3933Memerlukan Claude Code v2.1.174 atau lebih baru.

3934 

3935<h2 id="git-and-attribution">3963<h2 id="git-and-attribution">

3936 Git dan atribusi3964 Git dan atribusi

3937</h2>3965</h2>


4299 `workflowSizeGuideline`4327 `workflowSizeGuideline`

4300</h3>4328</h3>

4301 4329 

4302Atur [jumlah agent yang Claude targetkan](/docs/id/workflows#set-a-size-guideline) dalam dynamic workflows yang ditulisnya. Claude Code mengirimkan nilai ke Claude sebagai saran, bukan batas yang diberlakukan: `"small"` meminta lebih sedikit dari 5 agent, `"medium"` lebih sedikit dari 15, dan `"large"` lebih sedikit dari 50. Pilih `"small"` ketika Anda ingin membatasi apa yang dihabiskan alur kerja. Memerlukan Claude Code v2.1.219 atau lebih baru.4330Atur [jumlah agent yang Claude targetkan](/docs/id/workflows#set-a-size-guideline) dalam dynamic workflows yang ditulisnya. Claude Code mengirimkan nilai ke Claude sebagai saran, bukan batas yang diberlakukan: `"small"` meminta lebih sedikit dari 5 agent, `"medium"` lebih sedikit dari 10, dan `"large"` lebih sedikit dari 50. Pilih `"small"` ketika Anda ingin membatasi apa yang dihabiskan alur kerja. Memerlukan Claude Code v2.1.219 atau lebih baru.

4303 4331 

4304* **Scope**: [`Any file`](#scopes). Nilai di sana mengambil alih pilihan **Dynamic workflow size** di `/config`, yang disimpan Claude Code di `~/.claude.json`, dan Claude Code menyembunyikan baris itu saat file pengaturan menyetel kunci.4332* **Scope**: [`Any file`](#scopes). Nilai di sana mengambil alih pilihan **Dynamic workflow size** di `/config`, yang disimpan Claude Code di `~/.claude.json`, dan Claude Code menyembunyikan baris itu saat file pengaturan menyetel kunci.

4305* **Type**: string, salah satu dari:4333* **Type**: string, salah satu dari:

4306 * `"unrestricted"`: tidak ada panduan, jadi Claude mengukur alur kerja ke tugas4334 * `"unrestricted"`: tidak ada panduan, jadi Claude mengukur alur kerja ke tugas

4307 * `"small"`: Claude menargetkan lebih sedikit dari 5 agent4335 * `"small"`: Claude menargetkan lebih sedikit dari 5 agent

4308 * `"medium"`: Claude menargetkan lebih sedikit dari 15 agent4336 * `"medium"`: Claude menargetkan lebih sedikit dari 10 agent

4309 * `"large"`: Claude menargetkan lebih sedikit dari 50 agent4337 * `"large"`: Claude menargetkan lebih sedikit dari 50 agent

4310* **Default**: `"medium"`4338* **Default**: `"medium"`, atau `"small"` ketika Anda masuk di rencana Pro dengan Claude Code v2.1.271 atau lebih baru

4311 4339 

4312```json settings.json theme={null}4340```json settings.json theme={null}

4313{4341{


4327 Plugins dan skills4355 Plugins dan skills

4328</h2>4356</h2>

4329 4357 

4330Aktifkan plugins, daftarkan marketplaces, batasi sumber plugin mana yang diizinkan organisasi, dan kontrol skill mana yang dimuat. Untuk menginstal dan membangun plugins, lihat [Plugins](/docs/id/plugins).4358Aktifkan plugins, daftarkan marketplaces, batasi sumber plugin mana yang diizinkan organisasi, dan kontrol skills mana yang dimuat. Untuk menginstal dan membangun plugins, lihat [Plugins](/docs/id/plugins).

4331 4359 

4332<h3 id="disablebundledskills">4360<h3 id="disablebundledskills">

4333 `disableBundledSkills`4361 `disableBundledSkills`


4354 `disableSkillShellExecution`4382 `disableSkillShellExecution`

4355</h3>4383</h3>

4356 4384 

4357Matikan eksekusi shell inline untuk `` !`...` `` dan ` ```! ` blocks dalam [skills](/id/skills) dan perintah kustom dari user, project, plugin, atau sumber direktori tambahan. Claude Code mengganti setiap perintah dengan `[shell command execution disabled by policy]` alih-alih menjalankannya.4385Matikan eksekusi shell inline untuk `` !`...` `` dan ` ```! ` blocks dalam [skills](/id/skills) dan perintah kustom dari sumber pengguna, proyek, plugin, atau direktori tambahan. Claude Code mengganti setiap perintah dengan `[shell command execution disabled by policy]` alih-alih menjalankannya.

4358 4386 

4359* **Scope**: [`Any file`](#scopes). Sebuah `true` dalam managed settings tidak dapat ditimpa oleh `false` di tempat lain.4387* **Scope**: [`Any file`](#scopes). Sebuah `true` dalam managed settings tidak dapat ditimpa oleh `false` di tempat lain.

4360* **Type**: Boolean4388* **Type**: Boolean


4374 `skillOverrides`4402 `skillOverrides`

4375</h3>4403</h3>

4376 4404 

4377Sembunyikan atau lipat [skill](/docs/id/skills#override-skill-visibility-from-settings) tanpa mengedit `SKILL.md`-nya. Claude Code menerapkan nilai di bawah nama setiap skill ke daftar skill yang Claude lihat dan ke `/` autocomplete Anda.4405Sembunyikan atau lipat [skill](/docs/id/skills#override-skill-visibility-from-settings) tanpa mengedit `SKILL.md`-nya. Claude Code menerapkan nilai di bawah nama setiap skill ke daftar skill yang Claude lihat dan ke autocomplete `/` Anda.

4378 4406 

4379* **Scope**: [`Any file`](#scopes). Menu `/skills` menulis ke `.claude/settings.local.json`.4407* **Scope**: [`Any file`](#scopes). Menu `/skills` menulis ke `.claude/settings.local.json`.

4380* **Type**: object mapping skill name ke salah satu dari:4408* **Type**: object mapping nama skill ke salah satu dari:

4381 * `"on"`: Claude melihat skill dan Anda dapat mengetik `/name`4409 * `"on"`: Claude melihat skill dan Anda dapat mengetik `/name`

4382 * `"name-only"`: Claude melihat skill berdasarkan nama tanpa deskripsinya4410 * `"name-only"`: Claude melihat skill berdasarkan nama tanpa deskripsinya

4383 * `"user-invocable-only"`: Claude tidak melihat skill, tetapi Anda masih dapat mengetik `/name`4411 * `"user-invocable-only"`: Claude tidak melihat skill, tetapi Anda masih dapat mengetik `/name`

4384 * `"off"`: Claude tidak melihat skill dan `/name` disembunyikan dari autocomplete4412 * `"off"`: Claude tidak melihat skill dan `/name` disembunyikan dari autocomplete

4385* **Default**: unset, jadi setiap skill adalah `"on"`4413* **Default**: unset, jadi setiap skill adalah `"on"`

4386 4414 

4387Contoh ini mencantumkan `legacy-context` ke Claude hanya berdasarkan nama dan menyembunyikan `deploy` dari Claude dan dari `/` autocomplete:4415Contoh ini mencantumkan `legacy-context` ke Claude hanya berdasarkan nama dan menyembunyikan `deploy` dari Claude dan dari autocomplete `/`:

4388 4416 

4389```json settings.json theme={null}4417```json settings.json theme={null}

4390{4418{


4403 `syncClaudeAiSkills`4431 `syncClaudeAiSkills`

4404</h3>4432</h3>

4405 4433 

4406Matikan unduhan [skills yang Anda aktifkan di claude.ai](/docs/id/skills#how-synced-skills-behave). Claude Code mengunduhnya ke `~/.claude/skills/synced/` ketika Anda menjalankannya dalam [non-interactive mode](/docs/id/headless) dengan flag `-p` dan [`CLAUDE_CODE_SYNC_SKILLS`](/docs/id/env-vars#variables) diatur. Atur `false` untuk menghentikan unduhan itu dan menyembunyikan skills yang sudah disinkronkan. Claude Code hanya menghormati `false`: `true` sama dengan unset dan tidak menghidupkan sinkronisasi.4434Matikan unduhan [skills yang diaktifkan untuk akun claude.ai Anda](/docs/id/skills#how-synced-skills-behave). Claude Code mengunduhnya ke `~/.claude/skills/synced/` dalam [sesi terminal di mana Anda masuk dengan akun claude.ai Anda](/docs/id/skills#where-synced-skills-load), interaktif atau non-interaktif, dan dalam sesi Cowork dan cloud. Atur `false` untuk menghentikan unduhan itu dan berhenti memuat skills yang sudah disinkronkan. Claude Code hanya menghormati `false`: `true` sama dengan unset dan tidak menghidupkan sinkronisasi di mana sebaliknya mati.

4407 4435 

4408* **Scope**: [`User, local, or managed`](#scopes). Repository tidak dapat mematikannya untuk Anda.4436* **Scope**: [`User, local, or managed`](#scopes), dan file yang dilewatkan dengan `--settings`. Repositori tidak dapat mematikannya untuk Anda.

4409* **Type**: Boolean4437* **Type**: Boolean

4410 * `false`: Claude Code berhenti mengunduh skills yang disinkronkan dan menyembunyikan yang sudah ada di `~/.claude/skills/synced/`. Dalam user atau managed settings, itu juga memindahkannya ke `~/.claude/skills/.trash/`4438 * `false`: Claude Code berhenti mengunduh skills yang disinkronkan dan berhenti memuat yang sudah ada di `~/.claude/skills/synced/`. Dalam user atau managed settings, itu juga memindahkannya ke `~/.claude/skills/.trash/`

4411 * `true`: sama dengan unset4439 * `true`: sama dengan unset

4412* **Default**: unset, jadi run non-interactive dengan `CLAUDE_CODE_SYNC_SKILLS` diatur mengunduh skills4440* **Default**: unset, jadi sesi yang masuk dengan akun claude.ai Anda menyinkronkan skills Anda

4413 4441 

4414Contoh ini mencegah mesin mengunduh skills akun, apa pun yang ditetapkan sesi dalam lingkungannya:4442Contoh ini mencegah mesin mengunduh skills akun dalam sesi apa pun:

4415 4443 

4416```json settings.json theme={null}4444```json settings.json theme={null}

4417{4445{


4419}4447}

4420```4448```

4421 4449 

4450<h3 id="syncclaudeaiplugins">

4451 `syncClaudeAiPlugins`

4452</h3>

4453 

4454Matikan unduhan [plugins yang diaktifkan untuk akun claude.ai Anda](/docs/id/plugins-reference#synced-plugins). Claude Code mengunduhnya ke `~/.claude/plugins/synced/` pada awal sesi terminal di mana Anda masuk dengan akun claude.ai Anda, dan dalam sesi Cowork dan cloud, dan memuat masing-masing sebagai `<name>@synced`. Atur `false` untuk menghentikan unduhan itu dan berhenti memuat plugins yang sudah disinkronkan. Claude Code hanya menghormati `false`: `true` sama dengan unset dan tidak menghidupkan sinkronisasi di mana sebaliknya mati. Memerlukan Claude Code v2.1.273 atau lebih baru.

4455 

4456* **Scope**: [`User, local, or managed`](#scopes), dan file yang dilewatkan dengan `--settings`. Repositori tidak dapat mematikannya untuk Anda.

4457* **Type**: Boolean

4458 * `false`: Claude Code berhenti mengunduh plugins yang disinkronkan dan berhenti memuat yang sudah ada di `~/.claude/plugins/synced/`. Dalam user atau managed settings, itu juga memindahkannya ke `~/.claude/plugins/.trash/`

4459 * `true`: sama dengan unset

4460* **Default**: unset, jadi sesi yang masuk dengan akun claude.ai Anda menyinkronkan plugins Anda

4461 

4462Untuk mematikan satu plugin yang disinkronkan daripada semuanya, atur `"<name>@synced": false` dalam [`enabledPlugins`](#enabledplugins).

4463 

4464Contoh ini mencegah mesin mengunduh plugins akun dalam sesi apa pun:

4465 

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

4467{

4468 "syncClaudeAiPlugins": false

4469}

4470```

4471 

4422<h3 id="allowedchannelplugins">4472<h3 id="allowedchannelplugins">

4423 `allowedChannelPlugins`4473 `allowedChannelPlugins`

4424</h3>4474</h3>

4425 4475 

4426Pilih plugin [channel](/docs/id/channels) mana yang dapat mendorong pesan ke dalam sesi di organisasi Anda. Ketika Anda menetapkannya, Claude Code menggunakan daftar Anda sebagai pengganti daftar allowlist Anthropic default; setiap entri menamai plugin dan marketplace tempat asalnya.4476Pilih [channel](/docs/id/channels) plugins mana yang dapat mendorong pesan ke dalam sesi di organisasi Anda. Ketika Anda mengaturnya, Claude Code menggunakan daftar Anda sebagai pengganti daftar allowlist default Anthropic; setiap entri menamai plugin dan marketplace tempat asalnya.

4427 4477 

4428* **Scope**: [`Managed`](#scopes)4478* **Scope**: [`Managed`](#scopes)

4429* **Type**: array of objects, masing-masing dengan string `marketplace` dan `plugin`. Sebuah entri dapat sebagai gantinya menjadi string `"plugin@marketplace"` seperti `"telegram@claude-plugins-official"`, yang Claude Code perlakukan sebagai object yang setara. Bentuk string memerlukan Claude Code v2.1.267 atau lebih baru; versi sebelumnya menolak seluruh nilai `allowedChannelPlugins` ketika berisi satu4479* **Type**: array objek, masing-masing dengan string `marketplace` dan `plugin`. Sebuah entri dapat sebagai gantinya menjadi string `"plugin@marketplace"` seperti `"telegram@claude-plugins-official"`, yang Claude Code perlakukan sebagai objek yang setara. Bentuk string memerlukan Claude Code v2.1.267 atau lebih baru; versi sebelumnya menolak seluruh nilai `allowedChannelPlugins` ketika berisi satu

4430* **Default**: unset, jadi Claude Code menggunakan daftar allowlist Anthropic default4480* **Default**: unset, jadi Claude Code menggunakan daftar allowlist default Anthropic

4431 4481 

4432Contoh ini menghidupkan channels dan hanya mengizinkan plugin Telegram dari marketplace resmi Anthropic:4482Contoh ini menghidupkan channels dan hanya mengizinkan plugin Telegram dari marketplace resmi Anthropic:

4433 4483 


4442 4492 

4443Array kosong memblokir setiap channel plugin.4493Array kosong memblokir setiap channel plugin.

4444 4494 

4445Kunci ini berlaku setelah channels melewati gerbang [`channelsEnabled`](#channelsenabled) untuk akun: pada rencana Team dan Enterprise, dan pada akun Console dengan managed settings, itu berarti `channelsEnabled: true`. Lihat [Batasi plugin channel mana yang dapat berjalan](/docs/id/channels#restrict-which-channel-plugins-can-run).4495Kunci ini berlaku setelah channels melewati gerbang [`channelsEnabled`](#channelsenabled) untuk akun: pada paket Team dan Enterprise, dan pada akun Console dengan managed settings, itu berarti `channelsEnabled: true`. Lihat [Batasi plugins channel mana yang dapat berjalan](/docs/id/channels#restrict-which-channel-plugins-can-run).

4446 4496 

4447<h3 id="blockedmarketplaces">4497<h3 id="blockedmarketplaces">

4448 `blockedMarketplaces`4498 `blockedMarketplaces`

4449</h3>4499</h3>

4450 4500 

4451Blokir sumber marketplace plugin untuk organisasi Anda. Claude Code memeriksa daftar blokir pada penambahan marketplace dan pada install, update, refresh, dan auto-update plugin, jadi marketplace yang ditambahkan seseorang sebelum Anda menetapkan kebijakan tidak dapat digunakan untuk mengambil plugins. Sumber yang diblokir diperiksa sebelum unduhan, jadi mereka tidak pernah menyentuh filesystem.4501Blokir sumber marketplace plugin untuk organisasi Anda. Claude Code memeriksa daftar blokir pada penambahan marketplace dan pada instalasi, pembaruan, penyegaran, dan auto-update plugin, jadi marketplace yang ditambahkan seseorang sebelum Anda menetapkan kebijakan tidak dapat digunakan untuk mengambil plugins. Sumber yang diblokir diperiksa sebelum unduhan, jadi mereka tidak pernah menyentuh filesystem.

4452 4502 

4453* **Scope**: [`Managed`](#scopes)4503* **Scope**: [`Managed`](#scopes)

4454* **Type**: array of marketplace source objects, dalam bentuk yang sama seperti [`strictKnownMarketplaces`](#allowed-source-types)4504* **Type**: array objek sumber marketplace, dalam bentuk yang sama seperti [`strictKnownMarketplaces`](#allowed-source-types)

4455* **Default**: unset, jadi tidak ada marketplace yang diblokir4505* **Default**: unset, jadi tidak ada marketplace yang diblokir

4456 4506 

4457Contoh ini memblokir satu repository GitHub sebagai sumber marketplace:4507Contoh ini memblokir satu repositori GitHub sebagai sumber marketplace:

4458 4508 

4459```json managed-settings.json theme={null}4509```json managed-settings.json theme={null}

4460{4510{


4464}4514}

4465```4515```

4466 4516 

4467Entri `github` dapat menggunakan [owner-wildcard form](#owner-wildcards) `"owner/*"` untuk memblokir setiap repository di bawah pemilik GitHub itu, yang memerlukan Claude Code v2.1.223 atau lebih baru. Tambahkan `{ "source": "skills-dir" }` untuk menghentikan Claude Code memuat [`@skills-dir` plugins](/docs/id/plugins-reference#skills-directory-plugins) dari `~/.claude/skills/` tanpa membatasi marketplace apa pun. Lihat [Managed marketplace restrictions](/docs/id/plugin-marketplaces#managed-marketplace-restrictions).4517Entri `github` dapat menggunakan [bentuk owner-wildcard](#owner-wildcards) `"owner/*"` untuk memblokir setiap repositori di bawah pemilik GitHub itu, yang memerlukan Claude Code v2.1.223 atau lebih baru. Tambahkan `{ "source": "skills-dir" }` untuk menghentikan Claude Code memuat [`@skills-dir` plugins](/docs/id/plugins-reference#skills-directory-plugins) dari `~/.claude/skills/` tanpa membatasi marketplace apa pun. Lihat [Pembatasan marketplace yang dikelola](/docs/id/plugin-marketplaces#managed-marketplace-restrictions).

4468 4518 

4469<h3 id="channelsenabled">4519<h3 id="channelsenabled">

4470 `channelsEnabled`4520 `channelsEnabled`

4471</h3>4521</h3>

4472 4522 

4473Izinkan [channels](/docs/id/channels) untuk organisasi Anda. Pada rencana claude.ai Team dan Enterprise, Claude Code memblokir channels sampai Anda menetapkan ini ke `true`. Untuk akun [Anthropic Console](/docs/id/authentication#claude-console-authentication) yang mengautentikasi dengan API key, channels diizinkan secara default. Jika organisasi Anda menerapkan managed settings, Claude Code memblokir channels pada akun tersebut juga sampai Anda menetapkan kunci ini ke `true`.4523Izinkan [channels](/docs/id/channels) untuk organisasi Anda. Pada paket Team dan Enterprise claude.ai, Claude Code memblokir channels sampai Anda mengaturnya ke `true`. Untuk akun [Anthropic Console](/docs/id/authentication#claude-console-authentication) yang mengautentikasi dengan kunci API, channels diizinkan secara default. Jika organisasi Anda menerapkan managed settings, Claude Code juga memblokir channels pada akun tersebut sampai Anda mengatur kunci ini ke `true`.

4474 4524 

4475* **Scope**: [`Managed`](#scopes)4525* **Scope**: [`Managed`](#scopes)

4476* **Type**: Boolean4526* **Type**: Boolean

4477 * `true`: Claude Code mengizinkan channels untuk organisasi Anda4527 * `true`: Claude Code mengizinkan channels untuk organisasi Anda

4478 * `false`: sama dengan unset; apakah channels diblokir tergantung pada rencana Anda, seperti yang dikatakan Default4528 * `false`: sama dengan unset; apakah channels diblokir tergantung pada paket Anda, seperti yang dikatakan Default

4479* **Default**: unset; channels diblokir pada rencana Team dan Enterprise dan pada akun Console dengan managed settings, dan diizinkan pada rencana Pro dan Max dan pada akun Console tanpa managed settings4529* **Default**: unset; channels diblokir pada paket Team dan Enterprise dan pada akun Console dengan managed settings, dan diizinkan pada paket Pro dan Max dan pada akun Console tanpa managed settings

4480 4530 

4481```json managed-settings.json theme={null}4531```json managed-settings.json theme={null}

4482{4532{


4484}4534}

4485```4535```

4486 4536 

4487Untuk membatasi plugin mana yang dapat mendaftar sebagai channels setelah diaktifkan, atur [`allowedChannelPlugins`](#allowedchannelplugins). Lihat [Enterprise controls](/docs/id/channels#enterprise-controls).4537Untuk membatasi plugins mana yang dapat mendaftar sebagai channels setelah diaktifkan, atur [`allowedChannelPlugins`](#allowedchannelplugins). Lihat [Kontrol enterprise](/docs/id/channels#enterprise-controls).

4488 4538 

4489<h3 id="disablecommandpluginsources">4539<h3 id="disablecommandpluginsources">

4490 `disableCommandPluginSources`4540 `disableCommandPluginSources`

4491</h3>4541</h3>

4492 4542 

4493Blokir [sumber `command` plugin](/docs/id/plugin-marketplaces#command-sources), yang menginstal plugin dengan menjalankan perintah yang dideklarasikan marketplace pada mesin pengguna. Ketika Anda menetapkannya ke `true`, Claude Code tidak pernah menjalankan perintah, tidak menginstal atau memperbarui plugins yang bersumber perintah, dan berhenti memuat yang sudah diinstal. Atur ke `false` untuk mengizinkannya secara eksplisit. Kapan pun itu memblokir sumber perintah, apakah Anda menetapkannya ke `true` atau membiarkannya unset di bawah [`allowManagedHooksOnly`](#allowmanagedhooksonly), itu juga memblokir perintah marketplace [`headersHelper`](/docs/id/plugin-marketplaces#authenticate-archive-downloads), kecuali untuk marketplace yang managed settings sendiri deklarasikan. Memerlukan Claude Code v2.1.229 atau lebih baru, dan blokir `headersHelper` memerlukan v2.1.238 atau lebih baru.4543Blokir [sumber plugin `command`](/docs/id/plugin-marketplaces#command-sources), yang menginstal plugin dengan menjalankan perintah yang dideklarasikan marketplace pada mesin pengguna. Ketika Anda mengaturnya ke `true`, Claude Code tidak pernah menjalankan perintah, tidak menginstal atau memperbarui plugins yang bersumber perintah, dan berhenti memuat yang sudah diinstal. Atur ke `false` untuk mengizinkannya secara eksplisit. Kapan pun itu memblokir sumber perintah, apakah Anda mengaturnya ke `true` atau membiarkannya unset di bawah [`allowManagedHooksOnly`](#allowmanagedhooksonly), itu juga memblokir perintah marketplace [`headersHelper`](/docs/id/plugin-marketplaces#authenticate-archive-downloads), kecuali untuk marketplace yang managed settings sendiri deklarasikan. Memerlukan Claude Code v2.1.229 atau lebih baru, dan blokir `headersHelper` memerlukan v2.1.238 atau lebih baru.

4494 4544 

4495* **Scope**: [`Managed`](#scopes)4545* **Scope**: [`Managed`](#scopes)

4496* **Type**: Boolean4546* **Type**: Boolean


4510 `pluginSuggestionMarketplaces`4560 `pluginSuggestionMarketplaces`

4511</h3>4561</h3>

4512 4562 

4513Namai marketplaces yang plugins-nya dapat muncul sebagai saran install kontekstual, dalam spinner tips dan disematkan di bagian atas tab `/plugin` **Discover**. Tip frontend-design pihak pertama bawaan tidak terpengaruh. Saran berasal dari deklarasi `relevance` setiap plugin dalam entri marketplace-nya.4563Namai marketplaces yang plugins-nya dapat muncul sebagai saran instalasi kontekstual, dalam tips spinner dan disematkan di bagian atas tab **Discover** `/plugin`. Tip frontend-design pihak pertama bawaan tidak terpengaruh. Saran berasal dari deklarasi `relevance` setiap plugin dalam entri marketplace-nya.

4514 4564 

4515* **Scope**: [`Managed`](#scopes)4565* **Scope**: [`Managed`](#scopes)

4516* **Type**: array of marketplace names4566* **Type**: array nama marketplace

4517* **Default**: unset, jadi tidak ada saran yang dideklarasikan marketplace yang muncul4567* **Default**: unset, jadi tidak ada saran yang dideklarasikan marketplace yang muncul

4518 4568 

4519```json managed-settings.json theme={null}4569```json managed-settings.json theme={null}


4522}4572}

4523```4573```

4524 4574 

4525Nama hanya berlaku ketika marketplace terdaftar di mesin dan sumber terdaftarnya juga dideklarasikan dalam managed settings yang sama, baik sebagai entri [`extraKnownMarketplaces`](#extraknownmarketplaces) untuk nama itu atau sebagai entri [`strictKnownMarketplaces`](#strictknownmarketplaces). Claude Code mengabaikan marketplace yang terdaftar dari sumber berbeda di bawah nama yang diizinkan. Marketplace resmi dikecualikan dari persyaratan sumber: mengizinkan nama saja sudah cukup, karena nama itu hanya dapat mendaftar dari sumber Anthropic resmi. Lihat [Suggest plugins by context](/docs/id/plugin-relevance).4575Nama berlaku hanya ketika marketplace terdaftar di mesin dan sumber terdaftarnya juga dideklarasikan dalam managed settings yang sama, baik sebagai entri [`extraKnownMarketplaces`](#extraknownmarketplaces) untuk nama itu atau sebagai entri [`strictKnownMarketplaces`](#strictknownmarketplaces). Claude Code mengabaikan marketplace yang terdaftar dari sumber berbeda di bawah nama yang diizinkan. Marketplace resmi dikecualikan dari persyaratan sumber: mengizinkan nama saja sudah cukup, karena nama itu hanya dapat terdaftar dari sumber Anthropic resmi. Lihat [Sarankan plugins berdasarkan konteks](/docs/id/plugin-relevance).

4526 4576 

4527<h3 id="plugintrustmessage">4577<h3 id="plugintrustmessage">

4528 `pluginTrustMessage`4578 `pluginTrustMessage`


4544 `strictKnownMarketplaces`4594 `strictKnownMarketplaces`

4545</h3>4595</h3>

4546 4596 

4547Batasi sumber marketplace plugin mana yang dapat ditambahkan dan diinstal oleh orang-orang di organisasi Anda. Claude Code memberlakukan daftar allowlist pada penambahan marketplace dan pada install, update, refresh, dan auto-update plugin, sebelum operasi jaringan atau filesystem apa pun, jadi marketplace yang ditambahkan seseorang sebelum Anda menetapkan kebijakan tidak dapat digunakan untuk mengambil plugins setelah sumbernya tidak lagi cocok. Pengguna yang diblokir melihat kesalahan yang menamai kebijakan terkelola.4597Batasi sumber marketplace plugin mana yang dapat ditambahkan dan diinstal oleh orang-orang di organisasi Anda. Claude Code memberlakukan daftar allowlist pada penambahan marketplace dan pada instalasi, pembaruan, penyegaran, dan auto-update plugin, sebelum operasi jaringan atau filesystem apa pun, jadi marketplace yang ditambahkan seseorang sebelum Anda menetapkan kebijakan tidak dapat digunakan untuk mengambil plugins setelah sumbernya tidak lagi cocok. Pengguna yang diblokir melihat kesalahan yang menamai kebijakan yang dikelola.

4548 4598 

4549* **Scope**: [`Managed`](#scopes)4599* **Scope**: [`Managed`](#scopes)

4550* **Type**: array of marketplace source objects; lihat [Allowed source types](#allowed-source-types)4600* **Type**: array objek sumber marketplace; lihat [Tipe sumber yang diizinkan](#allowed-source-types)

4551* **Default**: unset, jadi pengguna dapat menambahkan marketplace apa pun. Array kosong adalah lockdown lengkap yang memblokir setiap sumber marketplace, termasuk marketplace Anthropic resmi4601* **Default**: unset, jadi pengguna dapat menambahkan marketplace apa pun. Array kosong adalah lockdown lengkap yang memblokir setiap sumber marketplace, termasuk marketplace resmi Anthropic

4552 4602 

4553Contoh ini mengizinkan dua repository GitHub, satu disematkan ke ref `v2.0`, dan satu URL `marketplace.json` yang dihosting:4603Contoh ini mengizinkan dua repositori GitHub, satu disematkan ke ref `v2.0`, dan satu URL `marketplace.json` yang dihosting:

4554 4604 

4555```json managed-settings.json theme={null}4605```json managed-settings.json theme={null}

4556{4606{


4562}4612}

4563```4613```

4564 4614 

4565Anda juga dapat menulis kunci ini sebagai `allowedMarketplaces`; [Marketplace key aliases](#marketplace-key-aliases) menjelaskan bagaimana Claude Code memperlakukan alias dan versi mana yang menerimanya. Kunci ini adalah gerbang kebijakan: itu mengontrol apa yang dapat ditambahkan pengguna tetapi tidak mendaftarkan apa pun. Untuk membatasi dan pra-daftar dalam satu file, lihat [Combine with `extraKnownMarketplaces`](#combine-with-extraknownmarketplaces). Untuk tampilan yang menghadap pengguna, lihat [Managed marketplace restrictions](/docs/id/plugin-marketplaces#managed-marketplace-restrictions).4615Anda juga dapat menulis kunci ini sebagai `allowedMarketplaces`; [Alias kunci Marketplace](#marketplace-key-aliases) menjelaskan bagaimana Claude Code memperlakukan alias dan versi mana yang menerimanya. Kunci ini adalah gerbang kebijakan: itu mengontrol apa yang dapat ditambahkan pengguna tetapi tidak mendaftarkan apa pun. Untuk membatasi dan pra-daftar dalam satu file, lihat [Gabungkan dengan `extraKnownMarketplaces`](#combine-with-extraknownmarketplaces). Untuk tampilan yang menghadap pengguna, lihat [Pembatasan marketplace yang dikelola](/docs/id/plugin-marketplaces#managed-marketplace-restrictions).

4566 4616 

4567<h4 id="allowed-source-types">4617<h4 id="allowed-source-types">

4568 Allowed source types4618 Tipe sumber yang diizinkan

4569</h4>4619</h4>

4570 4620 

4571Setiap entri di bawah menunjukkan satu entri daftar allowlist per tipe sumber dan bidang yang diterimanya. Sebagian besar tipe cocok persis; `hostPattern` dan `pathPattern` cocok dengan regex, dan entri `github` dapat menggunakan [owner wildcard](#owner-wildcards).4621Setiap entri di bawah menunjukkan satu entri daftar allowlist per tipe sumber dan bidang yang diterimanya. Sebagian besar tipe cocok persis; `hostPattern` dan `pathPattern` cocok dengan regex, dan entri `github` dapat menggunakan [wildcard pemilik](#owner-wildcards).

4572 4622 

4573| Source | Example entry | Fields |4623| Source | Contoh entri | Bidang |

4574| :------------ | :------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------- |4624| :------------ | :------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------ |

4575| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` required; `ref` adalah branch atau tag; `path` adalah subdirectory |4625| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` diperlukan; `ref` adalah cabang atau tag; `path` adalah subdirektori |

4576| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` required; `ref` dan `path` seperti untuk `github` |4626| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` diperlukan; `ref` dan `path` seperti untuk `github` |

4577| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` required; `headers` menambahkan HTTP headers untuk akses terautentikasi |4627| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` diperlukan; `headers` menambahkan header HTTP untuk akses yang diautentikasi |

4578| `npm` | `{ "source": "npm", "package": "@acme-corp/claude-plugins" }` | `package` required, paket npm yang berisi `marketplace.json` |4628| `npm` | `{ "source": "npm", "package": "@acme-corp/claude-plugins" }` | `package` diperlukan, paket npm yang berisi `marketplace.json` |

4579| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` required, path absolut ke file `marketplace.json` |4629| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` diperlukan, jalur absolut ke file `marketplace.json` |

4580| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` required, path absolut ke direktori yang berisi `.claude-plugin/marketplace.json` |4630| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` diperlukan, jalur absolut ke direktori yang berisi `.claude-plugin/marketplace.json` |

4581| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` required, regex yang cocok dengan host marketplace |4631| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` diperlukan, regex yang cocok dengan host marketplace |

4582| `pathPattern` | `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }` | `pathPattern` required, regex yang cocok dengan `path` dari sumber `file` dan `directory` |4632| `pathPattern` | `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }` | `pathPattern` diperlukan, regex yang cocok dengan `path` dari sumber `file` dan `directory` |

4583| `skills-dir` | `{ "source": "skills-dir" }` | No fields. Opts the `~/.claude/skills/` plugin scan back in |4633| `skills-dir` | `{ "source": "skills-dir" }` | Tidak ada bidang. Memilih kembali pemindaian plugin `~/.claude/skills/` |

4584 4634 

4585Tiga tipe sumber membawa aturan di luar tabel:4635Tiga tipe sumber membawa aturan di luar tabel:

4586 4636 

4587* **`url`**: marketplace URL hanya mengunduh file `marketplace.json`, dan Claude Code tidak mengambil file plugin dengan path relatif dari server itu, jadi plugins-nya harus menggunakan [plugin source](/docs/id/plugin-marketplaces#plugin-sources) selain path relatif, seperti URL archive, yang dapat berada di host yang sama. Untuk plugins dengan path relatif, gunakan marketplace berbasis Git sebagai gantinya. Lihat [Plugins with relative paths fail in URL-based marketplaces](/docs/id/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).4637* **`url`**: marketplace URL hanya mengunduh file `marketplace.json`, dan Claude Code tidak mengambil file plugin dengan jalur relatif dari server itu, jadi plugins-nya harus menggunakan [sumber plugin](/docs/id/plugin-marketplaces#plugin-sources) selain jalur relatif, seperti URL arsip, yang dapat berada di host yang sama. Untuk plugins dengan jalur relatif, gunakan marketplace berbasis Git sebagai gantinya. Lihat [Plugins dengan jalur relatif gagal dalam marketplaces berbasis URL](/docs/id/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).

4588* **`hostPattern`**: gunakan untuk mengizinkan setiap marketplace di server GitHub Enterprise atau GitLab internal tanpa mencantumkan setiap repository. Claude Code mencocokkan sumber `github` terhadap `github.com`, mengambil hostname dari sumber `url`, dan mengambilnya dari sumber `git` tergantung pada [git URL](https://git-scm.com/docs/git-clone#_git_urls) form:4638* **`hostPattern`**: gunakan untuk mengizinkan setiap marketplace di server GitHub Enterprise atau GitLab internal tanpa mencantumkan setiap repositori. Claude Code mencocokkan sumber `github` terhadap `github.com`, mengambil hostname dari sumber `url`, dan mengambilnya dari sumber `git` tergantung pada bentuk [git URL](https://git-scm.com/docs/git-clone#_git_urls):

4589 4639 

4590 * URL dengan scheme, seperti `https://` atau `ssh://`: hostname dalam URL.4640 * URL dengan skema, seperti `https://` atau `ssh://`: hostname dalam URL.

4591 * Alamat SSH tanpa scheme, dalam bentuk `user@host:path` git, seperti `git@git.example.com:tools/plugins.git`: host antara `@` dan `:`, yang merupakan host yang terhubung git.4641 * Alamat SSH tanpa skema, dalam bentuk `user@host:path` git, seperti `git@git.example.com:tools/plugins.git`: host antara `@` dan `:`, yang merupakan host yang terhubung git.

4592 * Bentuk lain apa pun tanpa scheme: tidak ada host, jadi tidak ada entri `strictKnownMarketplaces` `hostPattern` yang cocok. Untuk `blockedMarketplaces` `hostPattern`, Claude Code mengambil host dari set bentuk yang lebih luas, jadi entri daftar blokir masih dapat cocok dengan bentuk seperti itu. Sebelum v2.1.234, `strictKnownMarketplaces` `hostPattern` juga cocok dengan beberapa bentuk yang git tidak perlakukan sebagai alamat SSH.4642 * Bentuk lain apa pun tanpa skema: tidak ada host, jadi tidak ada entri `hostPattern` `strictKnownMarketplaces` yang cocok dengannya. Untuk `hostPattern` `blockedMarketplaces`, Claude Code mengambil host dari set bentuk yang lebih luas, jadi entri daftar blokir masih dapat cocok dengan bentuk seperti itu. Sebelum v2.1.234, `hostPattern` `strictKnownMarketplaces` juga cocok dengan beberapa bentuk yang git tidak perlakukan sebagai alamat SSH.

4593 4643 

4594 Sumber `file` dan `directory` tidak memiliki host dan tidak pernah cocok dengan entri `hostPattern`.4644 Sumber `file` dan `directory` tidak memiliki host dan tidak pernah cocok dengan entri `hostPattern`.

4595* **`pathPattern`**: gunakan untuk mengizinkan marketplaces filesystem bersama entri `hostPattern` untuk sumber jaringan. `".*"` mengizinkan setiap path lokal; pola yang lebih sempit seperti `"^/opt/approved/"` membatasi ke direktori.4645* **`pathPattern`**: gunakan untuk mengizinkan marketplaces filesystem bersama entri `hostPattern` untuk sumber jaringan. `".*"` mengizinkan setiap jalur lokal; pola yang lebih sempit seperti `"^/opt/approved/"` membatasi ke direktori.

4596 4646 

4597Daftar allowlist apa pun, bahkan yang kosong, juga menghentikan Claude Code memuat [`@skills-dir` plugins](/docs/id/plugins-reference#skills-directory-plugins) dari `~/.claude/skills/`. Tambahkan entri `{ "source": "skills-dir" }` untuk terus memuatnya; entri tidak memiliki arti di luar kunci ini dan `blockedMarketplaces`.4647Daftar allowlist apa pun, bahkan yang kosong, juga menghentikan Claude Code memuat [`@skills-dir` plugins](/docs/id/plugins-reference#skills-directory-plugins) dari `~/.claude/skills/`. Tambahkan entri `{ "source": "skills-dir" }` untuk terus memuat mereka; entri tidak memiliki arti di luar kunci ini dan `blockedMarketplaces`.

4598 4648 

4599<h4 id="owner-wildcards">4649<h4 id="owner-wildcards">

4600 Owner wildcards4650 Wildcard pemilik

4601</h4>4651</h4>

4602 4652 

4603Entri `github` yang nilai `repo`-nya adalah `"<owner>/*"` cocok dengan setiap repository di bawah pemilik GitHub itu. Owner wildcards memerlukan Claude Code v2.1.223 atau lebih baru dan hanya bekerja di `strictKnownMarketplaces` dan `blockedMarketplaces`. Di tempat lain sumber `github` muncul, seperti `extraKnownMarketplaces` atau `/plugin marketplace add`, nilai `repo` harus menamai satu repository. Sebelum v2.1.223, Claude Code membandingkan entri secara literal, jadi entri daftar allowlist tidak cocok dengan repository apa pun dan entri daftar blokir tidak memblokir apa pun; entri repository tunggal diberlakukan pada setiap versi.4653Entri `github` yang nilai `repo`-nya adalah `"<owner>/*"` cocok dengan setiap repositori di bawah pemilik GitHub itu. Wildcard pemilik memerlukan Claude Code v2.1.223 atau lebih baru dan hanya bekerja dalam `strictKnownMarketplaces` dan `blockedMarketplaces`. Di tempat lain sumber `github` muncul, seperti `extraKnownMarketplaces` atau `/plugin marketplace add`, nilai `repo` harus menamai satu repositori. Sebelum v2.1.223, Claude Code membandingkan entri secara harfiah, jadi entri daftar allowlist tidak cocok dengan repositori apa pun dan entri daftar blokir tidak memblokir apa pun; entri repositori tunggal diberlakukan pada setiap versi.

4604 4654 

4605Entri ini mengizinkan repository marketplace apa pun dalam organisasi `acme-corp`:4655Entri ini mengizinkan repositori marketplace apa pun dalam organisasi `acme-corp`:

4606 4656 

4607```json managed-settings.json theme={null}4657```json managed-settings.json theme={null}

4608{4658{


4612}4662}

4613```4663```

4614 4664 

4615Hanya seluruh posisi nama-repository yang dapat menjadi wildcard. Claude Code membandingkan entri seperti `*`, `*/plugins`, atau `acme-corp/tools-*` secara literal, jadi mereka tidak cocok dengan repository apa pun.4665Hanya seluruh posisi nama-repositori yang dapat menjadi wildcard. Claude Code membandingkan entri seperti `*`, `*/plugins`, atau `acme-corp/tools-*` secara harfiah, jadi mereka tidak cocok dengan repositori apa pun.

4616 4666 

4617Aturan pencocokan berbeda antara dua pengaturan:4667Aturan pencocokan berbeda antara dua pengaturan:

4618 4668 

4619| Rule | `strictKnownMarketplaces` | `blockedMarketplaces` |4669| Aturan | `strictKnownMarketplaces` | `blockedMarketplaces` |

4620| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |4670| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |

4621| Matching source spellings | Bentuk `owner/repo` saja. Git URL yang mengkloning repository yang sama tidak cocok | Setiap ejaan, termasuk Git URLs yang menyelesaikan ke repository github.com yang sama |4671| Pencocokan ejaan sumber | Bentuk `owner/repo` saja. URL git yang mengkloning repositori yang sama tidak cocok | Ejaan apa pun, termasuk URL git yang diselesaikan ke repositori github.com yang sama |

4622| Owner case | Case-sensitive, seperti pencocokan entri persis | Case-insensitive |4672| Kasus pemilik | Peka huruf besar-kecil, seperti pencocokan entri yang tepat | Tidak peka huruf besar-kecil |

4623| `ref` | Mengikuti aturan entri persis: entri dengan `ref` hanya cocok dengan sumber dengan ref persis itu, dan entri tanpa satu cocok hanya dengan sumber yang tidak menentukan ref | Entri tanpa `ref` memblokir semua refs dari repositories yang cocok |4673| `ref` | Mengikuti aturan entri yang tepat: entri dengan `ref` hanya cocok dengan sumber dengan ref yang tepat itu, dan entri tanpa satu cocok hanya dengan sumber yang tidak menentukan ref | Entri tanpa `ref` memblokir semua ref dari repositori yang cocok dengannya |

4624| `path` | Lebih longgar daripada aturan entri persis: entri dengan `path` memerlukan nilai persis itu, sementara entri tanpa satu cocok dengan path apa pun di dalam repository | Entri tanpa `path` memblokir semua paths dari repositories yang cocok |4674| `path` | Lebih longgar daripada aturan entri yang tepat: entri dengan `path` memerlukan nilai yang tepat itu, sementara entri tanpa satu cocok dengan jalur apa pun di dalam repositori | Entri tanpa `path` memblokir semua jalur dari repositori yang cocok dengannya |

4625 4675 

4626<h4 id="exact-matching">4676<h4 id="exact-matching">

4627 Exact matching4677 Pencocokan yang tepat

4628</h4>4678</h4>

4629 4679 

4630Untuk setiap tipe sumber kecuali entri `github` owner-wildcard dan entri `hostPattern` dan `pathPattern` yang cocok regex, Claude Code mengizinkan penambahan pengguna hanya ketika sumber marketplace cocok dengan entri persis. Untuk sumber berbasis git `github` dan `git`, pencocokan persis mencakup bidang opsional:4680Untuk setiap tipe sumber kecuali entri `github` wildcard pemilik dan entri `hostPattern` dan `pathPattern` yang cocok dengan regex, Claude Code hanya mengizinkan penambahan pengguna ketika sumber marketplace cocok dengan entri secara tepat. Untuk sumber berbasis git `github` dan `git`, pencocokan yang tepat mencakup bidang opsional:

4631 4681 

4632* `repo` atau `url` harus cocok persis4682* `repo` atau `url` harus cocok persis

4633* Bidang `ref` harus cocok persis, atau keduanya harus undefined4683* Bidang `ref` harus cocok persis, atau keduanya harus tidak terdefinisi

4634* Bidang `path` harus cocok persis, atau keduanya harus undefined4684* Bidang `path` harus cocok persis, atau keduanya harus tidak terdefinisi

4635 4685 

4636Misalnya, Claude Code memperlakukan setiap pasangan di bawah sebagai dua sumber berbeda:4686Misalnya, Claude Code memperlakukan setiap pasangan di bawah sebagai dua sumber berbeda:

4637 4687 


4639* `{ "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" }` dan `{ "source": "github", "repo": "acme-corp/plugins" }`4689* `{ "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" }` dan `{ "source": "github", "repo": "acme-corp/plugins" }`

4640 4690 

4641<h4 id="allow-only-the-official-marketplace">4691<h4 id="allow-only-the-official-marketplace">

4642 Allow only the official marketplace4692 Izinkan hanya marketplace resmi

4643</h4>4693</h4>

4644 4694 

4645Untuk mengizinkan marketplace Anthropic resmi dan tidak ada yang lain, cantumkan repositorinya:4695Untuk mengizinkan marketplace resmi Anthropic dan tidak ada yang lain, cantumkan repositorinya:

4646 4696 

4647```json managed-settings.json theme={null}4697```json managed-settings.json theme={null}

4648{4698{


4652}4702}

4653```4703```

4654 4704 

4655Dengan entri ini, Claude Code menjaga marketplace resmi yang sudah terdaftar tersedia dan, di mesin baru, mendaftarkan marketplace secara otomatis pertama kali Anda memulai Claude Code secara interaktif. Pendaftaran otomatis paling sering melewatkan:4705Dengan entri ini, Claude Code menjaga marketplace resmi yang sudah terdaftar tetap tersedia dan, di mesin baru, mendaftarkan marketplace secara otomatis pertama kali Anda memulai Claude Code secara interaktif. Pendaftaran otomatis paling sering melewatkan:

4656 4706 

4657* Lingkungan non-interaktif yang berjalan sebelum peluncuran interaktif pertama mesin.4707* Lingkungan non-interaktif yang berjalan sebelum peluncuran interaktif pertama mesin.

4658* Mesin di mana Claude Code sudah berjalan secara interaktif di bawah kebijakan yang memblokir marketplace, seperti lockdown array kosong. Claude Code mencatat upaya yang diblokir dan tidak mencoba lagi setelah kebijakan berubah.4708* Mesin di mana Claude Code sudah berjalan secara interaktif di bawah kebijakan yang memblokir marketplace, seperti lockdown array kosong. Claude Code mencatat upaya yang diblokir dan tidak mencoba lagi setelah kebijakan berubah.

4659 4709 

4660Di mesin ini, tambahkan marketplace ke [`extraKnownMarketplaces`](#extraknownmarketplaces) dalam `managed-settings.json` yang sama sehingga Claude Code mendaftarkannya secara otomatis, atau jalankan `claude plugin marketplace add anthropics/claude-plugins-official`.4710Pada mesin ini, tambahkan marketplace ke [`extraKnownMarketplaces`](#extraknownmarketplaces) dalam `managed-settings.json` yang sama sehingga Claude Code mendaftarkannya secara otomatis, atau jalankan `claude plugin marketplace add anthropics/claude-plugins-official`.

4661 4711 

4662<h4 id="combine-with-extraknownmarketplaces">4712<h4 id="combine-with-extraknownmarketplaces">

4663 Combine with `extraKnownMarketplaces`4713 Gabungkan dengan `extraKnownMarketplaces`

4664</h4>4714</h4>

4665 4715 

4666Dua kunci melakukan pekerjaan berbeda. Tabel ini membandingkannya:4716Dua kunci melakukan pekerjaan berbeda. Tabel ini membandingkannya:

4667 4717 

4668| Aspect | `strictKnownMarketplaces` | `extraKnownMarketplaces` |4718| Aspek | `strictKnownMarketplaces` | `extraKnownMarketplaces` |

4669| ----------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------------- |4719| ------------------ | ----------------------------------------- | -------------------------------------------------------------------------------------------------- |

4670| Purpose | Penegakan kebijakan organisasi | Kenyamanan tim |4720| Tujuan | Penegakan kebijakan organisasi | Kenyamanan tim |

4671| Settings file | Managed settings only | Any settings file |4721| File pengaturan | Hanya managed settings | File pengaturan apa pun |

4672| Behavior | Memblokir penambahan yang tidak diizinkan | Mendaftarkan marketplaces yang hilang |4722| Perilaku | Memblokir penambahan yang tidak diizinkan | Mendaftarkan marketplace yang hilang |

4673| When enforced | Sebelum operasi jaringan dan filesystem | Segera dari user atau managed settings; setelah dialog kepercayaan workspace untuk file repository |4723| Kapan diberlakukan | Sebelum operasi jaringan dan filesystem | Segera dari user atau managed settings; setelah dialog kepercayaan workspace untuk file repositori |

4674| Can be overridden | No, highest precedence | Yes, by higher-precedence settings |4724| Dapat ditimpa | Tidak, prioritas tertinggi | Ya, oleh pengaturan prioritas lebih tinggi |

4675| Source format | Direct source object | Named marketplace dengan nested `source` object |4725| Format sumber | Objek sumber langsung | Marketplace bernama dengan objek `source` bersarang |

4676 4726 

4677Untuk membatasi dan pra-daftar marketplace untuk semua pengguna, atur keduanya dalam `managed-settings.json`:4727Untuk membatasi dan pra-daftar marketplace untuk semua pengguna, atur keduanya dalam `managed-settings.json`:

4678 4728 


4689}4739}

4690```4740```

4691 4741 

4692Dengan hanya `strictKnownMarketplaces` yang diatur, pengguna masih dapat menambahkan marketplace yang diizinkan sendiri dengan `/plugin marketplace add`. Marketplace Anthropic resmi adalah satu-satunya yang Claude Code daftarkan secara otomatis, dan hanya ketika daftar allowlist mengizinkannya. [Allow only the official marketplace](#allow-only-the-official-marketplace) mencantumkan mesin yang dilewatkan.4742Dengan hanya `strictKnownMarketplaces` yang diatur, pengguna masih dapat menambahkan marketplace yang diizinkan sendiri dengan `/plugin marketplace add`. Marketplace resmi Anthropic adalah satu-satunya yang Claude Code daftarkan secara otomatis, dan hanya ketika daftar allowlist mengizinkannya. [Izinkan hanya marketplace resmi](#allow-only-the-official-marketplace) mencantumkan mesin yang dilewatkan.

4693 4743 

4694<h3 id="strictpluginonlycustomization">4744<h3 id="strictpluginonlycustomization">

4695 `strictPluginOnlyCustomization`4745 `strictPluginOnlyCustomization`

4696</h3>4746</h3>

4697 4747 

4698Blokir skills, agents, hooks, dan MCP servers dari sumber user dan project, jadi mereka hanya dapat berasal dari plugins atau managed settings. Gabungkan dengan [`strictKnownMarketplaces`](#strictknownmarketplaces) untuk mengontrol rantai pasokan kustomisasi penuh: daftar allowlist marketplace mengontrol plugin mana yang dapat diinstal pengguna.4748Blokir skills, agents, hooks, dan MCP servers dari sumber pengguna dan proyek, jadi mereka hanya dapat berasal dari plugins atau managed settings. Gabungkan dengan [`strictKnownMarketplaces`](#strictknownmarketplaces) untuk mengontrol rantai pasokan kustomisasi penuh: daftar allowlist marketplace mengontrol plugins mana yang dapat diinstal pengguna.

4699 4749 

4700* **Scope**: [`Managed`](#scopes)4750* **Scope**: [`Managed`](#scopes)

4701* **Type**: `true` untuk mengunci keempat jenis kustomisasi, atau array yang menamai jenis untuk dikunci, dari `"skills"`, `"agents"`, `"hooks"`, dan `"mcp"`4751* **Type**: `true` untuk mengunci semua empat jenis kustomisasi, atau array yang menamai jenis untuk dikunci, dari `"skills"`, `"agents"`, `"hooks"`, dan `"mcp"`

4702* **Default**: unset, jadi tidak ada yang dikunci4752* **Default**: unset, jadi tidak ada yang dikunci

4703 4753 

4704Contoh ini mengunci skills dan hooks dan membiarkan agents dan MCP servers tidak terkunci:4754Contoh ini mengunci skills dan hooks dan membiarkan agents dan MCP servers tidak terkunci:


4709}4759}

4710```4760```

4711 4761 

4712Empat entri sub-kunci di bawah mencantumkan apa yang setiap surface blokir dan apa yang masih dimuat. Claude Code mengabaikan nama surface yang tidak dikenali daripada gagal file settings, jadi Anda dapat menambahkan nama surface baru sebelum setiap klien telah diperbarui.4762Empat entri sub-kunci di bawah mencantumkan apa yang setiap permukaan blokir dan apa yang masih dimuat. Claude Code mengabaikan nama permukaan yang tidak dikenalinya daripada gagal file pengaturan, jadi Anda dapat menambahkan nama permukaan baru sebelum setiap klien diperbarui.

4713 4763 

4714<h3 id="strictpluginonlycustomization-skills">4764<h3 id="strictpluginonlycustomization-skills">

4715 `strictPluginOnlyCustomization.skills`4765 `strictPluginOnlyCustomization.skills`

4716</h3>4766</h3>

4717 4767 

4718Kunci surface `skills`. Claude Code berhenti memuat skills dari `~/.claude/skills/` dan `.claude/skills/`, perintah kustom dari `~/.claude/commands/` dan `.claude/commands/`, skills di bawah direktori `--add-dir`, dan skills yang disinkronkan dari akun claude.ai Anda, dan terus memuat plugin skills, bundled skills, dan skills dalam direktori kebijakan terkelola.4768Kunci permukaan `skills`. Claude Code berhenti memuat skills dari `~/.claude/skills/` dan `.claude/skills/`, perintah kustom dari `~/.claude/commands/` dan `.claude/commands/`, skills di bawah direktori `--add-dir`, dan skills yang disinkronkan dari akun claude.ai Anda, dan terus memuat plugin skills, bundled skills, dan skills dalam direktori kebijakan yang dikelola.

4719 4769 

4720* **Scope**: [`Managed`](#scopes)4770* **Scope**: [`Managed`](#scopes)

4721* **Type**: string `"skills"` dalam array [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)4771* **Type**: string `"skills"` dalam array [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)

4722* **Default**: not locked4772* **Default**: tidak dikunci

4723 4773 

4724```json managed-settings.json theme={null}4774```json managed-settings.json theme={null}

4725{4775{


4731 `strictPluginOnlyCustomization.agents`4781 `strictPluginOnlyCustomization.agents`

4732</h3>4782</h3>

4733 4783 

4734Kunci surface `agents`. Claude Code berhenti memuat agents dari `~/.claude/agents/` dan `.claude/agents/`, dan terus memuat plugin agents, built-in agents, dan agents dalam direktori kebijakan terkelola.4784Kunci permukaan `agents`. Claude Code berhenti memuat agents dari `~/.claude/agents/` dan `.claude/agents/`, dan terus memuat plugin agents, agents bawaan, dan agents dalam direktori kebijakan yang dikelola.

4735 4785 

4736* **Scope**: [`Managed`](#scopes)4786* **Scope**: [`Managed`](#scopes)

4737* **Type**: string `"agents"` dalam array [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)4787* **Type**: string `"agents"` dalam array [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)

4738* **Default**: not locked4788* **Default**: tidak dikunci

4739 4789 

4740```json managed-settings.json theme={null}4790```json managed-settings.json theme={null}

4741{4791{


4747 `strictPluginOnlyCustomization.hooks`4797 `strictPluginOnlyCustomization.hooks`

4748</h3>4798</h3>

4749 4799 

4750Kunci surface `hooks`. Claude Code berhenti menjalankan hooks dari user, project, dan local `settings.json`, dan terus menjalankan plugin hooks dan hooks dalam managed settings.4800Kunci permukaan `hooks`. Claude Code berhenti menjalankan hooks dari user, project, dan local `settings.json`, dan terus menjalankan plugin hooks dan hooks dalam managed settings.

4751 4801 

4752* **Scope**: [`Managed`](#scopes)4802* **Scope**: [`Managed`](#scopes)

4753* **Type**: string `"hooks"` dalam array [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)4803* **Type**: string `"hooks"` dalam array [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)

4754* **Default**: not locked4804* **Default**: tidak dikunci

4755 4805 

4756```json managed-settings.json theme={null}4806```json managed-settings.json theme={null}

4757{4807{


4763 `strictPluginOnlyCustomization.mcp`4813 `strictPluginOnlyCustomization.mcp`

4764</h3>4814</h3>

4765 4815 

4766Kunci surface `mcp`. Claude Code berhenti memuat MCP servers dari `~/.claude.json` dan `.mcp.json`, dan terus memuat plugin MCP servers, server [`managed-mcp.json`](/docs/id/managed-mcp), dan servers dari [`managedMcpServers`](#managedmcpservers).4816Kunci permukaan `mcp`. Claude Code berhenti memuat MCP servers dari `~/.claude.json` dan `.mcp.json`, dan terus memuat plugin MCP servers, server [`managed-mcp.json`](/docs/id/managed-mcp), dan servers dari [`managedMcpServers`](#managedmcpservers).

4767 4817 

4768* **Scope**: [`Managed`](#scopes)4818* **Scope**: [`Managed`](#scopes)

4769* **Type**: string `"mcp"` dalam array [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)4819* **Type**: string `"mcp"` dalam array [`strictPluginOnlyCustomization`](#strictpluginonlycustomization)

4770* **Default**: not locked4820* **Default**: tidak dikunci

4771 4821 

4772```json managed-settings.json theme={null}4822```json managed-settings.json theme={null}

4773{4823{


4800Setiap scope melayani tujuan berbeda:4850Setiap scope melayani tujuan berbeda:

4801 4851 

4802* **User settings**: preferensi plugin pribadi Anda4852* **User settings**: preferensi plugin pribadi Anda

4803* **Project settings**: plugins yang dibagikan dengan semua orang di repository4853* **Project settings**: plugins yang dibagikan dengan semua orang di repositori

4804* **Local settings**: per-machine overrides, gitignored ketika Claude Code menyimpan setting di sana4854* **Local settings**: overrides per-mesin, gitignored ketika Claude Code menyimpan pengaturan di sana

4805* **Managed settings**: kebijakan organisasi. Plugin yang diatur ke `false` di sini diblokir dari instalasi di setiap scope dan disembunyikan dari marketplace4855* **Managed settings**: kebijakan organisasi-lebar. Plugin yang diatur ke `false` di sini diblokir dari instalasi di setiap scope dan disembunyikan dari marketplace

4806 4856 

4807Project settings mengambil alih user settings, jadi mengatur plugin ke `false` dalam `~/.claude/settings.json` tidak menonaktifkan plugin yang diaktifkan `.claude/settings.json` project. Untuk opt out dari plugin yang diaktifkan project di mesin Anda, atur ke `false` dalam `.claude/settings.local.json` sebagai gantinya. Plugins yang dipaksa diaktifkan oleh managed settings tidak dapat dinonaktifkan dengan cara ini, karena managed settings menimpa local settings.4857Pengaturan proyek mengambil prioritas atas pengaturan pengguna, jadi mengatur plugin ke `false` dalam `~/.claude/settings.json` tidak menonaktifkan plugin yang `.claude/settings.json` proyek aktifkan. Untuk memilih keluar dari plugin yang diaktifkan proyek di mesin Anda, atur ke `false` dalam `.claude/settings.local.json` sebagai gantinya. Plugins yang dipaksa diaktifkan oleh managed settings tidak dapat dinonaktifkan dengan cara ini, karena managed settings menimpa pengaturan lokal.

4808 4858 

4809Mengaktifkan plugin dari sumber eksternal seperti repository GitHub atau paket npm dalam `.claude/settings.json` project tidak menginstalnya untuk orang lain. Di setiap path yang memuat plugins, Claude Code melaporkan plugin sebagai tidak diinstal sampai setiap pengguna [menginstalnya sendiri](/docs/id/discover-plugins#configure-team-marketplaces).4859Mengaktifkan plugin dari sumber eksternal seperti repositori GitHub atau paket npm dalam `.claude/settings.json` proyek tidak menginstalnya untuk orang lain. Di setiap jalur yang memuat plugins, Claude Code melaporkan plugin sebagai tidak diinstal sampai setiap pengguna [menginstalnya sendiri](/docs/id/discover-plugins#configure-team-marketplaces).

4810 4860 

4811<h3 id="extraknownmarketplaces">4861<h3 id="extraknownmarketplaces">

4812 `extraKnownMarketplaces`4862 `extraKnownMarketplaces`

4813</h3>4863</h3>

4814 4864 

4815Daftarkan marketplaces plugin tambahan berdasarkan nama, sehingga orang yang membuka repository, atau semua orang yang dijangkau managed settings Anda, mendapatkan marketplace tanpa menambahkannya sendiri. Claude Code mendaftarkan setiap marketplace yang belum diketahuinya. Apakah plugin yang [`enabledPlugins`](#enabledplugins) namai darinya diinstal tergantung pada sumber plugin dan file mana yang mengaktifkannya; entri itu memiliki aturannya.4865Daftarkan marketplaces plugin tambahan berdasarkan nama, sehingga orang yang membuka repositori, atau semua orang yang managed settings jangkau, mendapatkan marketplace tanpa menambahkannya sendiri. Claude Code mendaftarkan setiap marketplace yang belum diketahuinya. Apakah plugin yang [`enabledPlugins`](#enabledplugins) namai darinya menginstal tergantung pada sumber plugin dan file mana yang mengaktifkannya; entri itu memiliki aturannya.

4816 4866 

4817* **Scope**: [`Any file`](#scopes). Claude Code menghormati entri dalam `.claude/settings.json` atau `.claude/settings.local.json` repository hanya setelah Anda menerima dialog kepercayaan workspace untuk folder itu; dalam folder yang belum Anda percayai, termasuk run `-p` di sana, itu mengabaikannya tanpa pesan.4867* **Scope**: [`Any file`](#scopes). Claude Code menghormati entri dalam `.claude/settings.json` atau `.claude/settings.local.json` repositori hanya setelah Anda menerima dialog kepercayaan workspace untuk folder itu; dalam folder yang belum Anda percayai, termasuk run `-p` di sana, itu mengabaikannya tanpa pesan.

4818* **Type**: object mapping nama marketplace ke object dengan object `source` dan Boolean `autoUpdate` opsional4868* **Type**: object mapping nama marketplace ke objek dengan objek `source` dan Boolean `autoUpdate` opsional

4819* **Default**: unset4869* **Default**: unset

4820 4870 

4821Contoh ini mendaftarkan marketplace GitHub dan marketplace dari URL git yang dihosting sendiri:4871Contoh ini mendaftarkan marketplace GitHub dan marketplace dari URL git yang dihosting sendiri:


4839}4889}

4840```4890```

4841 4891 

4842[What runs before you trust a folder](/docs/id/permissions#what-runs-before-you-trust-a-folder) membandingkan gerbang kepercayaan dengan konten lain yang dapat disediakan repository. Anda juga dapat menulis kunci ini sebagai `additionalMarketplaces`; lihat [Marketplace key aliases](#marketplace-key-aliases).4892[Apa yang berjalan sebelum Anda mempercayai folder](/docs/id/permissions#what-runs-before-you-trust-a-folder) membandingkan gerbang kepercayaan dengan konten lain yang dapat disediakan repositori. Anda juga dapat menulis kunci ini sebagai `additionalMarketplaces`; lihat [Alias kunci Marketplace](#marketplace-key-aliases).

4843 4893 

4844Atur `"autoUpdate": true` bersama `source` untuk membuat Claude Code menyegarkan marketplace itu dan memperbarui plugins yang diinstal dalam latar belakang setelah startup. Ketika dihilangkan, `claude-plugins-official` dan sebagian besar marketplace Anthropic resmi lainnya default ke `true`, dan marketplace pihak ketiga default ke `false`. Lihat [Configure auto-updates](/docs/id/discover-plugins#configure-auto-updates).4894Atur `"autoUpdate": true` bersama `source` untuk membuat Claude Code menyegarkan marketplace itu dan memperbarui plugins yang diinstal dalam latar belakang setelah startup. Ketika dihilangkan, `claude-plugins-official` dan sebagian besar marketplace resmi Anthropic lainnya default ke `true`, dan marketplace pihak ketiga default ke `false`. Lihat [Konfigurasi auto-updates](/docs/id/discover-plugins#configure-auto-updates).

4845 4895 

4846Ketika lebih dari satu file settings mendefinisikan entri marketplace di bawah nama yang sama, Claude Code menggunakan entri dari [file dengan precedence tertinggi](/docs/id/settings#settings-precedence) secara keseluruhan. Entri itu menggantikan entri dengan precedence lebih rendah dan tidak mewarisi bidang apa pun, jadi redefinisi tidak dapat menggabungkan `source.headers` credential satu file dengan URL yang dikontrol file lain. Sebelum v2.1.228, Claude Code menggabungkan entri dengan nama yang sama field by field, jadi entri dalam file dengan precedence lebih tinggi dapat mewarisi bidang yang tidak diaturnya, termasuk `headers` file lain.4896Ketika lebih dari satu file pengaturan mendefinisikan entri marketplace di bawah nama yang sama, Claude Code menggunakan entri dari file [prioritas tertinggi](/docs/id/settings#settings-precedence) secara keseluruhan. Entri itu menggantikan entri prioritas lebih rendah dan tidak mewarisi bidang apa pun, jadi redefinisi tidak dapat menggabungkan `source.headers` kredensial satu file dengan URL yang dikontrol file lain. Sebelum v2.1.228, Claude Code menggabungkan entri nama-sama bidang demi bidang, jadi entri dalam file prioritas lebih tinggi dapat mewarisi bidang yang tidak diaturnya, termasuk `headers` file lain.

4847 4897 

4848<h4 id="marketplace-source-types">4898<h4 id="marketplace-source-types">

4849 Marketplace source types4899 Tipe sumber marketplace

4850</h4>4900</h4>

4851 4901 

4852Object `source` mengambil salah satu bentuk ini:4902Objek `source` mengambil salah satu bentuk ini:

4853 4903 

4854* **`github`**: repository GitHub, dengan `repo`4904* **`github`**: repositori GitHub, dengan `repo`

4855* **`git`**: URL git apa pun, dengan `url`4905* **`git`**: URL git apa pun, dengan `url`

4856* **`url`**: URL langsung ke file `marketplace.json`, dengan `url` dan `headers` opsional dan `headersHelper` untuk akses terautentikasi. `headersHelper` menamai perintah yang mencetak headers yang nilainya terlalu short-lived untuk dicantumkan dalam `headers`, dan memerlukan Claude Code v2.1.238 atau lebih baru4906* **`url`**: URL langsung ke file `marketplace.json`, dengan `url` dan `headers` opsional dan `headersHelper` untuk akses yang diautentikasi. `headersHelper` menamai perintah yang mencetak header yang nilainya terlalu berumur pendek untuk dicantumkan dalam `headers`, dan memerlukan Claude Code v2.1.238 atau lebih baru

4857* **`file`**: path lokal ke file `marketplace.json`, dengan `path`4907* **`file`**: jalur lokal ke file `marketplace.json`, dengan `path`

4858* **`directory`**: path filesystem lokal, dengan `path`, untuk pengembangan saja4908* **`directory`**: jalur filesystem lokal, dengan `path`, hanya untuk pengembangan

4859* **`settings`**: marketplace inline yang dideklarasikan langsung dalam file settings tanpa repository yang dihosting, dengan `name` dan `plugins`4909* **`settings`**: marketplace inline yang dideklarasikan langsung dalam file pengaturan tanpa repositori yang dihosting, dengan `name` dan `plugins`

4910 

4911Tipe sumber `git` bekerja dengan layanan hosting git apa pun, termasuk GitLab dan Bitbucket yang dihosting sendiri. Claude Code mengkloning repositori dengan autentikasi yang sama yang `git clone` gunakan di mesin itu: pembantu kredensial yang dikonfigurasi atau kunci SSH. Token penyedia seperti `GITHUB_TOKEN` hanya berlaku melalui pembantu kredensial yang membacanya. Lihat [Repositori pribadi](/docs/id/plugin-marketplaces#private-repositories) untuk detail setup.

4860 4912 

4861Tipe sumber `git` bekerja dengan layanan hosting git apa pun, termasuk GitLab dan Bitbucket yang dihosting sendiri. Claude Code mengkloning repository dengan autentikasi yang sama yang akan digunakan `git clone` di mesin itu: credential helpers yang dikonfigurasi atau SSH keys. Token penyedia seperti `GITHUB_TOKEN` hanya berlaku melalui credential helper yang membacanya. Lihat [Private repositories](/docs/id/plugin-marketplaces#private-repositories) untuk detail setup.4913Untuk sumber `github` dan `git`, Claude Code tidak pernah mengunduh konten [Git LFS](https://git-lfs.com) ketika mengkloning repositori marketplace untuk menambahkan atau memperbaruinya. File yang dilacak LFS diperiksa sebagai file pointer, dan output penambahan atau pembaruan melaporkan berapa banyak.

4862 4914 

4863Untuk sumber `github` dan `git`, atur `"skipLfs": true` di dalam object `source`, bersama `repo` atau `url`, untuk melewati unduhan Git LFS ketika Claude Code mengkloning atau memperbarui repository marketplace. File pointer LFS tetap sebagai pointer alih-alih mengunduh kontennya. Gunakan ini ketika repository berisi objek LFS besar yang tidak terkait dengan konten plugin.4915Bidang `skipLfs` di dalam objek `source` diterima dan tidak memiliki efek. Sebelum v2.1.274, Claude Code mengunduh konten LFS kecuali Anda mengatur `"skipLfs": true`.

4864 4916 

4865Untuk sumber `url`, atur `headersHelper` di dalam object `source` ketika credential dalam `headers` kedaluwarsa dan perintah harus menghasilkan yang baru. Memerlukan Claude Code v2.1.238 atau lebih baru. Untuk apa yang harus dicetak perintah dan di mana Claude Code menjalankannya, lihat [Write the headersHelper command](/docs/id/plugin-marketplaces#write-the-headershelper-command), dan untuk kasus di mana Claude Code tidak menjalankannya, lihat [When Claude Code skips a headersHelper command](/docs/id/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Setelah Anda menetapkan `headersHelper` pada URL marketplace `https://`, Claude Code menjalankan perintah di dua titik, menggunakan kembali output satu run selama hingga 60 detik:4917Untuk sumber `url`, atur `headersHelper` di dalam objek `source` ketika kredensial dalam `headers` kedaluwarsa dan perintah harus menghasilkan yang baru. Memerlukan Claude Code v2.1.238 atau lebih baru. Untuk apa yang harus dicetak perintah dan di mana Claude Code menjalankannya, lihat [Tulis perintah headersHelper](/docs/id/plugin-marketplaces#write-the-headershelper-command), dan untuk kasus di mana Claude Code tidak menjalankannya, lihat [Kapan Claude Code melewati perintah headersHelper](/docs/id/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Setelah Anda mengatur `headersHelper` pada URL marketplace `https://`, Claude Code menjalankan perintah di dua titik, menggunakan kembali output satu run selama hingga 60 detik:

4866 4918 

4867* Sebelum setiap pengambilan `marketplace.json` marketplace itu, termasuk refresh yang lebih baru. Claude Code mengirim headers yang dicetak dengan pengambilan itu.4919* Sebelum setiap pengambilan `marketplace.json` marketplace itu, termasuk penyegaran nanti. Claude Code mengirim header yang dicetak dengan pengambilan itu.

4868* Sebelum setiap unduhan archive plugin pada origin URL marketplace, berarti scheme, host, dan port yang sama. Claude Code mengirim output dengan unduhan itu, dan tidak ada unduhan lain yang mendapat headers.4920* Sebelum setiap unduhan arsip plugin pada asal URL marketplace, berarti skema, host, dan port yang sama. Claude Code mengirim output dengan unduhan itu, dan tidak ada unduhan lain yang mendapat header.

4869 4921 

4870Claude Code mengabaikan `headersHelper` apa pun yang diatur dalam `.claude/settings.json` atau `.claude/settings.local.json` dari direktori yang Anda tambahkan dengan [`--add-dir`](/docs/id/permissions#what-runs-before-you-trust-a-folder), pada sumber `url` dan pada entri plugin inline sama-sama, dan hanya mengirim `headers` tetap yang diatur dalam file itu. [How users accept a headersHelper command](/docs/id/plugin-marketplaces#how-users-accept-a-headershelper-command) mencakup file settings lainnya.4922Claude Code mengabaikan `headersHelper` apa pun yang diatur dalam `.claude/settings.json` atau `.claude/settings.local.json` direktori yang Anda tambahkan dengan [`--add-dir`](/docs/id/permissions#what-runs-before-you-trust-a-folder), pada sumber `url` dan pada entri plugin inline sama-sama, dan hanya mengirim `headers` tetap yang diatur dalam file itu. [Bagaimana pengguna menerima perintah headersHelper](/docs/id/plugin-marketplaces#how-users-accept-a-headershelper-command) mencakup file pengaturan lainnya.

4871 4923 

4872Plugins yang tercantum dalam sumber `settings` harus mereferensikan sumber eksternal seperti GitHub atau npm, dan `name` harus cocok dengan kunci marketplace. Anda masih mengaktifkan setiap plugin secara terpisah dalam `enabledPlugins`. Contoh ini mendeklarasikan satu plugin inline:4924Plugins yang tercantum dalam sumber `settings` harus mereferensikan sumber eksternal seperti GitHub atau npm, dan `name` harus cocok dengan kunci marketplace. Anda masih mengaktifkan setiap plugin secara terpisah dalam `enabledPlugins`. Contoh ini mendeklarasikan satu plugin inline:

4873 4925 


4893}4945}

4894```4946```

4895 4947 

4896Entri plugin di bawah `source: 'settings'` yang `source`-nya sendiri adalah [`archive`](/docs/id/plugin-marketplaces#zip-archives) dapat menetapkan `headers` untuk unduhan archive. Jika nilai yang akan Anda masukkan dalam `headers` adalah short-lived, seperti token yang registry Anda cetak atas permintaan, atur perintah `headersHelper` sebagai gantinya. Entri dapat menetapkan keduanya. Kedua bidang memerlukan Claude Code v2.1.238 atau lebih baru.4948Entri plugin di bawah `source: 'settings'` yang `source`-nya sendiri adalah [`archive`](/docs/id/plugin-marketplaces#zip-archives) dapat mengatur `headers` untuk unduhan arsip. Jika nilai yang akan Anda masukkan dalam `headers` berumur pendek, seperti token yang registry Anda cetak atas permintaan, atur perintah `headersHelper` sebagai gantinya. Entri dapat mengatur keduanya. Kedua bidang memerlukan Claude Code v2.1.238 atau lebih baru.

4897 4949 

4898Claude Code mengirim `headers` entri, dan apa pun yang dicetak perintah, dengan unduhan archive plugin itu dan dengan tidak ada unduhan lain. Claude Code menjalankan perintah hanya ketika pengguna [menginstal atau memperbarui plugin itu saja](/docs/id/plugin-marketplaces#how-users-accept-a-headershelper-command). Tiga aturan lebih lanjut tergantung pada file mana yang memegang entri:4950Claude Code mengirim `headers` entri, dan apa pun yang dicetak perintah, dengan unduhan arsip plugin itu dan dengan tidak ada unduhan lain. Claude Code menjalankan perintah hanya ketika pengguna [menginstal atau memperbarui plugin itu saja](/docs/id/plugin-marketplaces#how-users-accept-a-headershelper-command). Tiga aturan lebih lanjut tergantung pada file mana yang memegang entri:

4899 4951 

4900* **`strict`**: tidak seperti entri dalam `marketplace.json` marketplace, entri dalam settings tidak memerlukan `"strict": false`, karena file settings tidak membawa bidang manifest untuk inline. Lihat [Strict mode](/docs/id/plugin-marketplaces#strict-mode).4952* **`strict`**: tidak seperti entri dalam `marketplace.json` marketplace, entri dalam pengaturan tidak memerlukan `"strict": false`, karena file pengaturan tidak membawa bidang manifest untuk inline. Lihat [Mode ketat](/docs/id/plugin-marketplaces#strict-mode).

4901* **Folder trust**: untuk entri dalam `.claude/settings.json` atau `.claude/settings.local.json` project, Claude Code menjalankan perintah hanya setelah pengguna juga [mempercayai folder itu](/docs/id/permissions#what-runs-before-you-trust-a-folder).4953* **Kepercayaan folder**: untuk entri dalam `.claude/settings.json` atau `.claude/settings.local.json` proyek, Claude Code menjalankan perintah hanya setelah pengguna juga [mempercayai folder itu](/docs/id/permissions#what-runs-before-you-trust-a-folder).

4902* **Header filter**: Claude Code menjatuhkan [nama header request-routing dan client-identity](/docs/id/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output) dari entri dalam `.claude/settings.json` atau `.claude/settings.local.json` project, karena repository dapat menyediakan file itu. Claude Code menerapkan filter yang sama ke entri katalog dan ke entri dalam settings direktori `--add-dir`, dan tidak ada filter ke entri dalam user settings Anda, file `--settings`, atau managed settings.4954* **Filter header**: Claude Code menjatuhkan [nama header perutean permintaan dan identitas klien](/docs/id/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output) dari entri dalam `.claude/settings.json` atau `.claude/settings.local.json` proyek, karena repositori dapat menyediakan file itu. Claude Code menerapkan filter yang sama ke entri katalog dan ke entri dalam pengaturan direktori `--add-dir`, dan tidak ada filter ke entri dalam pengaturan pengguna Anda, file `--settings`, atau managed settings.

4903 4955 

4904<h4 id="marketplace-key-aliases">4956<h4 id="marketplace-key-aliases">

4905 Marketplace key aliases4957 Alias kunci Marketplace

4906</h4>4958</h4>

4907 4959 

4908Pada Claude Code v2.1.232 atau lebih baru, Anda dapat menulis `extraKnownMarketplaces` sebagai `additionalMarketplaces` dan `strictKnownMarketplaces` sebagai `allowedMarketplaces`. Claude Code memperlakukan setiap alias sebagai berikut:4960Pada Claude Code v2.1.232 atau lebih baru, Anda dapat menulis `extraKnownMarketplaces` sebagai `additionalMarketplaces` dan `strictKnownMarketplaces` sebagai `allowedMarketplaces`. Claude Code memperlakukan setiap alias sebagai berikut:

4909 4961 

4910* Versi sebelumnya mengabaikan alias, jadi pertahankan ejaan kanonik dalam file yang juga dibaca versi lebih lama, seperti file managed settings untuk fleet dengan versi Claude Code campuran.4962* Versi sebelumnya mengabaikan alias, jadi pertahankan ejaan kanonik dalam file yang juga dibaca versi lebih lama, seperti file managed settings untuk armada dengan versi Claude Code campuran.

4911* Dalam file settings apa pun yang menerima kunci kanonik, Claude Code membaca alias persis seperti membaca kunci kanonik.4963* Dalam file pengaturan apa pun yang menerima kunci kanonik, Claude Code membaca alias persis seperti membaca kunci kanonik.

4912* Claude Code dapat menulis ulang `additionalMarketplaces` ke `extraKnownMarketplaces` ketika memperbarui file.4964* Claude Code dapat menulis ulang `additionalMarketplaces` ke `extraKnownMarketplaces` ketika memperbarui file.

4913* Jika Anda menetapkan kedua ejaan dalam satu file, Claude Code menggunakan nilai kanonik dan mengabaikan alias.4965* Jika Anda mengatur kedua ejaan dalam satu file, Claude Code menggunakan nilai kanonik dan mengabaikan alias.

4914 4966 

4915<h3 id="pluginconfigs">4967<h3 id="pluginconfigs">

4916 `pluginConfigs`4968 `pluginConfigs`

4917</h3>4969</h3>

4918 4970 

4919Simpan jawaban non-sensitif yang Anda berikan dialog konfigurasi [`userConfig`](/docs/id/plugins-reference#user-configuration) plugin, dikunci dengan ID plugin. Claude Code menulis kunci ini ke user settings Anda ketika Anda mengisi dialog, jadi Anda tidak perlu mengeditnya dengan tangan. Claude Code menyimpan opsi sensitif dalam macOS Keychain sebagai gantinya, kembali ke `~/.claude/.credentials.json` ketika Keychain menolak penulisan; pada platform tanpa keychain yang didukung, itu menyimpannya dalam `~/.claude/.credentials.json`.4971Simpan jawaban non-sensitif yang Anda berikan dialog konfigurasi [`userConfig`](/docs/id/plugins-reference#user-configuration) plugin, dikunci dengan ID plugin. Claude Code menulis kunci ini ke pengaturan pengguna Anda ketika Anda mengisi dialog, jadi Anda tidak perlu mengeditnya dengan tangan. Claude Code menyimpan opsi sensitif dalam Keychain macOS sebagai gantinya, kembali ke `~/.claude/.credentials.json` ketika Keychain menolak penulisan; pada platform tanpa keychain yang didukung, itu menyimpannya dalam `~/.claude/.credentials.json`.

4920 4972 

4921* **Scope**: [`User or managed`](#scopes)4973* **Scope**: [`User or managed`](#scopes)

4922* **Type**: object mapping ID plugin ke object dengan bidang `options`, mapping setiap nama opsi ke string, number, Boolean, atau array of strings, dan bidang `mcpServers` opsional yang memegang nilai konfigurasi pengguna per-server dalam bentuk yang sama4974* **Type**: object mapping ID plugin ke objek dengan bidang `options`, mapping setiap nama opsi ke string, angka, Boolean, atau array string, dan bidang `mcpServers` opsional yang memegang nilai konfigurasi pengguna per-server dalam bentuk yang sama

4923* **Default**: unset4975* **Default**: unset

4924 4976 

4925Contoh ini menyimpan opsi `api_endpoint` untuk plugin `deployer` dari `acme-tools`:4977Contoh ini menyimpan opsi `api_endpoint` untuk plugin `deployer` dari `acme-tools`:


4936}4988}

4937```4989```

4938 4990 

4939Claude Code mengabaikan entri project dan local karena itu menggantikan nilai ini ke dalam plugin hook, MCP, dan konfigurasi LSP, dan repository yang dikloning tidak boleh dapat menyediakannya. Sebelum v2.1.207, settings project dan local juga dibaca.4991Built-in plugins menyimpan opsi mereka di bawah kunci yang sama dengan sufiks `@builtin`. Misalnya, pengaturan [**Project instructions**](/docs/id/memory#choose-which-instruction-files-load) yang mengontrol apakah Claude Code membaca file `AGENTS.md` adalah `pluginConfigs["agents-md@builtin"].options.instructionFiles`.

4992 

4993Claude Code mengabaikan entri proyek dan lokal karena menggantikan nilai ini ke dalam konfigurasi hook plugin, MCP, dan LSP, dan repositori yang dikloning tidak boleh dapat menyediakannya. Sebelum v2.1.207, pengaturan proyek dan lokal juga dibaca.

4940 4994 

4941<h2 id="mcp">4995<h2 id="mcp">

4942 MCP4996 MCP


5022Blokir server MCP tertentu. Claude Code menolak untuk memuat server yang cocok di mana pun didefinisikan, termasuk server plugin, server yang dilewatkan dengan `--mcp-config`, server dari `managed-mcp.json`, server dari [`managedMcpServers`](#managedmcpservers), dan konektor claude.ai [yang diambilnya sendiri](/docs/id/mcp#how-connectors-reach-claude-code). Server `type: "sdk"` dalam proses dikecualikan; aplikasi yang memulai sesi mendaftarkan mereka.5076Blokir server MCP tertentu. Claude Code menolak untuk memuat server yang cocok di mana pun didefinisikan, termasuk server plugin, server yang dilewatkan dengan `--mcp-config`, server dari `managed-mcp.json`, server dari [`managedMcpServers`](#managedmcpservers), dan konektor claude.ai [yang diambilnya sendiri](/docs/id/mcp#how-connectors-reach-claude-code). Server `type: "sdk"` dalam proses dikecualikan; aplikasi yang memulai sesi mendaftarkan mereka.

5023 5077 

5024* **Scope**: [`Any file`](#scopes). Entri dari setiap file bergabung menjadi satu daftar hitam, dan [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) tidak mengubah itu. Terapkan di pengaturan yang dikelola untuk memberlakukannya.5078* **Scope**: [`Any file`](#scopes). Entri dari setiap file bergabung menjadi satu daftar hitam, dan [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) tidak mengubah itu. Terapkan di pengaturan yang dikelola untuk memberlakukannya.

5025* **Type**: array objek, masing-masing dengan tepat satu kunci: `serverName`, string non-kosong apa pun, jadi nama tampilan konektor claude.ai seperti `"claude.ai Slack"` berfungsi; `serverCommand`, array perintah dan argumennya yang cocok persis; atau `serverUrl`, pola URL dengan wildcard `*`5079* **Type**: array objek, masing-masing dengan tepat satu kunci: `serverName`, string, jadi nama tampilan konektor claude.ai seperti `"claude.ai Slack"` berfungsi; `serverCommand`, array perintah dan argumennya yang cocok persis; atau `serverUrl`, pola URL dengan wildcard `*`

5026* **Default**: tidak diatur, jadi tidak ada server yang diblokir; array kosong juga tidak memblokir apa pun5080* **Default**: tidak diatur, jadi tidak ada server yang diblokir; array kosong juga tidak memblokir apa pun

5027 5081 

5028```json settings.json theme={null}5082```json settings.json theme={null}


5039 `disableClaudeAiConnectors`5093 `disableClaudeAiConnectors`

5040</h3>5094</h3>

5041 5095 

5042Matikan [konektor MCP claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) [yang Claude Code ambil sendiri](/docs/id/mcp#how-connectors-reach-claude-code), sehingga tidak mengambil atau menghubungkan mereka. `true` di file pengaturan apa pun berlaku: file `.claude/settings.json` proyek yang diperiksa dapat menolak repositori dari konektor tersebut, tetapi `false` tingkat proyek tidak dapat mengganti `true` tingkat pengguna atau yang dikelola. Memerlukan Claude Code v2.1.182 atau lebih baru.5096Matikan [konektor MCP claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) [yang Claude Code ambil sendiri](/docs/id/mcp#how-connectors-reach-claude-code), sehingga tidak mengambil atau menghubungkan mereka. `true` di file pengaturan apa pun berlaku: file `.claude/settings.json` proyek yang diperiksa dapat menolak repositori dari konektor tersebut, tetapi `false` tingkat proyek tidak dapat mengganti `true` tingkat pengguna atau yang dikelola.

5043 5097 

5044* **Scope**: [`Any file`](#scopes)5098* **Scope**: [`Any file`](#scopes)

5045* **Type**: Boolean5099* **Type**: Boolean


5054}5108}

5055```5109```

5056 5110 

5057Server yang Anda lewatkan secara eksplisit dengan `--mcp-config` tidak terpengaruh. Untuk memblokir konektor individual alih-alih semuanya, gunakan [`deniedMcpServers`](#deniedmcpservers). Lihat [Nonaktifkan konektor claude.ai](/docs/id/mcp#disable-claude-ai-connectors). Memerlukan Claude Code v2.1.182 atau lebih baru.5111Server yang Anda lewatkan secara eksplisit dengan `--mcp-config` tidak terpengaruh. Untuk memblokir konektor individual alih-alih semuanya, gunakan [`deniedMcpServers`](#deniedmcpservers). Lihat [Nonaktifkan konektor claude.ai](/docs/id/mcp#disable-claude-ai-connectors).

5058 5112 

5059<h3 id="disabledmcpjsonservers">5113<h3 id="disabledmcpjsonservers">

5060 `disabledMcpjsonServers`5114 `disabledMcpjsonServers`


5268}5322}

5269```5323```

5270 5324 

5271Sebelum v2.1.179, default adalah `auto`. Nilai `iterm2` memerlukan Claude Code v2.1.186 atau lebih baru.5325Nilai `iterm2` memerlukan Claude Code v2.1.186 atau lebih baru.

5272 5326 

5273<span id="worktree-settings" />5327<span id="worktree-settings" />

5274 5328 


5793 5847 

5794Lihat [Batasi login ke organisasi Anda](/docs/id/authentication#restrict-login-to-your-organization) untuk cara Claude Code memperlakukan login Claude Console, jalur login lainnya, dan kredensial lingkungan.5848Lihat [Batasi login ke organisasi Anda](/docs/id/authentication#restrict-login-to-your-organization) untuk cara Claude Code memperlakukan login Claude Console, jalur login lainnya, dan kredensial lingkungan.

5795 5849 

5850<h3 id="gatewayinternalnetworks">

5851 `gatewayInternalNetworks`

5852</h3>

5853 

5854Deklarasikan blok IPv4 publik yang organisasi Anda gunakan untuk menomori jaringan internalnya, sehingga `/login` menerima [cloud gateway](/docs/id/claude-apps-gateway) di sana. Memerlukan Claude Code v2.1.268 atau lebih baru.

5855 

5856Tanpa kunci ini, `/login` terhubung ke gateway apa pun pada alamat pribadi dan tidak ada yang lain. Dengan kunci ini, `/login` juga menerima gateway di dalam blok yang terdaftar, hanya melalui koneksi langsung. Alamat mesin itu sendiri pada koneksi itu juga harus berada di dalam blok yang sama.

5857 

5858* **Scope**: [`Managed`](#scopes). Baca hanya dari sumber di mesin: `managed-settings.json`, plist macOS atau registri Windows HKLM, atau pembantu kebijakan. Claude Code mengabaikannya dalam pengaturan HKCU dan server-terkelola.

5859* **Type**: array string, paling banyak empat blok CIDR IPv4, masing-masing `/8` hingga `/32`, tidak tumpang tindih satu sama lain, dan tidak ada yang tumpang tindih dengan ruang pribadi.

5860* **Default**: tidak diatur, jadi `/login` hanya menerima gateway pada alamat pribadi

5861 

5862```json managed-settings.json theme={null}

5863{

5864 "gatewayInternalNetworks": ["203.0.113.0/24"]

5865}

5866```

5867 

5868Ganti rentang dokumentasi dalam contoh dengan blok Anda sendiri. Claude Code menolak rentang dokumentasi, rentang yang digunakan klien VPN dan NAT64 secara lokal, dan ruang yang dicadangkan yang tidak ada jaringan yang dinomori darinya, seperti multicast.

5869 

5870Jika entri tidak valid, atau nilainya bukan daftar string, `/login` menyebutkan masalahnya dan menolak setiap sign-in gateway baru di mesin sampai Anda memperbaiki nilainya. Sign-in yang ada terus bekerja. Lihat [Izinkan gateway pada ruang alamat publik yang Anda miliki](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) untuk aturan lengkap dan apa yang dilihat pengembang.

5871 

5796<h3 id="gcpauthrefresh">5872<h3 id="gcpauthrefresh">

5797 `gcpAuthRefresh`5873 `gcpAuthRefresh`

5798</h3>5874</h3>


6172 6248 

6173* **[`policyHelper`](#policyhelper)**: Claude Code menghormatinya hanya ketika sumber tertinggi yang membawa kunci kebijakan adalah kebijakan MDM atau file pengaturan terkelola, jadi di bawah pengaturan yang dikelola server tidak berlaku.6249* **[`policyHelper`](#policyhelper)**: Claude Code menghormatinya hanya ketika sumber tertinggi yang membawa kunci kebijakan adalah kebijakan MDM atau file pengaturan terkelola, jadi di bawah pengaturan yang dikelola server tidak berlaku.

6174* **[`modelOverrides`](#modeloverrides)**: berpasangan dengan `availableModels`. Claude Code mengambil `modelOverrides` dari sumber tertinggi yang menetapkannya, kecuali sumber yang lebih tinggi menetapkan `availableModels` tanpa `modelOverrides`. Dalam hal itu, ia mengabaikan `modelOverrides` dari setiap sumber.6250* **[`modelOverrides`](#modeloverrides)**: berpasangan dengan `availableModels`. Claude Code mengambil `modelOverrides` dari sumber tertinggi yang menetapkannya, kecuali sumber yang lebih tinggi menetapkan `availableModels` tanpa `modelOverrides`. Dalam hal itu, ia mengabaikan `modelOverrides` dari setiap sumber.

6175* **[`forceLoginGatewayUrl`](#forcelogingatewayurl) dan nilai `"gateway"` dari [`forceLoginMethod`](#forceloginmethod)**: Claude Code tidak pernah membaca keduanya dari pengaturan yang dikelola server, jadi nilai di sana tidak berlaku atau menyembunyikan yang ditetapkan dalam kebijakan MDM atau file pengaturan terkelola. Di antara sumber admin di mesin, hanya yang tertinggi-peringkat yang membawa kunci kebijakan yang menyediakannya, terlepas dari apakah pengaturan yang dikelola server juga ada.6251* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks), dan nilai `"gateway"` dari [`forceLoginMethod`](#forceloginmethod)**: Claude Code tidak pernah membaca salah satu dari mereka dari pengaturan yang dikelola server, jadi nilai di sana tidak berlaku atau menyembunyikan yang ditetapkan dalam kebijakan MDM atau file pengaturan terkelola. Di antara sumber admin di mesin, hanya yang tertinggi-peringkat yang membawa kunci kebijakan yang menyediakannya, terlepas dari apakah pengaturan yang dikelola server juga ada.

6176 6252 

6177Untuk mengonfirmasi sumber mana yang digabungkan di mesin, jalankan `/status` dan [baca baris `Setting sources`](/docs/id/managed-settings#read-the-source-in-/status).6253Untuk mengonfirmasi sumber mana yang digabungkan di mesin, jalankan `/status` dan [baca baris `Setting sources`](/docs/id/managed-settings#read-the-source-in-/status).

6178 6254 

skills.md +64 −47

Details

130| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sesi dimulai di atau di bawah `<subdir>`. Sesi yang dimulai di atasnya memuat skill sekali Claude bekerja pada file di sana. Lihat [monorepos dan subdirektori](#discovery-from-parent-and-nested-directories) |130| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sesi dimulai di atau di bawah `<subdir>`. Sesi yang dimulai di atasnya memuat skill sekali Claude bekerja pada file di sana. Lihat [monorepos dan subdirektori](#discovery-from-parent-and-nested-directories) |

131| Additional directory | `.claude/skills/<skill-name>/SKILL.md` di direktori yang Anda lewatkan dengan `--add-dir` | Sesi itu. Lihat [direktori di luar proyek](#skills-from-additional-directories) |131| Additional directory | `.claude/skills/<skill-name>/SKILL.md` di direktori yang Anda lewatkan dengan `--add-dir` | Sesi itu. Lihat [direktori di luar proyek](#skills-from-additional-directories) |

132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Di mana pun [plugin](/docs/id/plugins) diaktifkan, sebagai `/plugin-name:skill-name` |132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Di mana pun [plugin](/docs/id/plugins) diaktifkan, sebagai `/plugin-name:skill-name` |

133| claude.ai account | Skills yang Anda aktifkan di pengaturan claude.ai Anda | Sesi Cowork dan cloud. Lihat [Skills yang disinkronkan dari claude.ai](#how-synced-skills-behave) untuk sesi lokal |133| claude.ai account | Skills yang diaktifkan untuk akun claude.ai Anda | Sesi Cowork, sesi cloud, dan sesi terminal tempat Anda masuk dengan akun itu. Lihat [Skills yang disinkronkan dari claude.ai](#how-synced-skills-behave) |

134 134 

135Folder skill juga mengikuti aturan ini:135Folder skill juga mengikuti aturan ini:

136 136 

137* **Folder yang di-symlink**: entri `<skill-name>` di lokasi enterprise, personal, atau project dapat berupa symlink ke direktori lain di disk. Claude Code membaca `SKILL.md` dari target dan memuat skill sekali bahkan jika beberapa lokasi menunjuk ke target yang sama. Plugin skills [menangani symlinks secara berbeda](/docs/id/plugins-reference#share-files-within-a-marketplace-with-symlinks).137* **Folder yang disimlink**: entri `<skill-name>` di lokasi enterprise, personal, atau project dapat berupa symlink ke direktori lain di disk. Claude Code membaca `SKILL.md` dari target dan memuat skill sekali bahkan jika beberapa lokasi menunjuk ke target yang sama. Plugin skills [menangani symlinks secara berbeda](/docs/id/plugins-reference#share-files-within-a-marketplace-with-symlinks).

138* **Nama yang dicadangkan**: jangan beri nama folder skill `synced`, dalam kapitalisasi apa pun. Claude Code menggunakan `~/.claude/skills/synced/` untuk [skills yang diunduh dari claude.ai](#where-synced-skills-load) dan melewati skill yang Anda buat dengan nama itu di lokasi enterprise, personal, dan project.138* **Nama yang dicadangkan**: jangan beri nama folder skill `synced`, dalam kapitalisasi apa pun. Claude Code menggunakan `~/.claude/skills/synced/` untuk [skills yang diunduh dari claude.ai](#where-synced-skills-load) dan melewati skill yang Anda buat dengan nama itu di lokasi enterprise, personal, dan project.

139* **File perintah**: file Markdown di `.claude/commands/` adalah format yang lebih lama dan masih berfungsi. Ini mendukung [frontmatter](#frontmatter-reference) yang sama kecuali `name` dan `paths`. Untuk menemukan nama yang Anda ketik untuk memanggilnya, lihat [How a skill gets its command name](#how-a-skill-gets-its-command-name). Lebih suka skill untuk pekerjaan baru, karena skills juga mendukung [file pendukung](#add-supporting-files).139* **File perintah**: file Markdown di `.claude/commands/` adalah format yang lebih lama dan masih berfungsi. Ini mendukung [frontmatter](#frontmatter-reference) yang sama kecuali `name` dan `paths`. Untuk menemukan nama yang Anda ketik untuk memanggilnya, lihat [Bagaimana skill mendapatkan nama perintahnya](#how-a-skill-gets-its-command-name). Lebih suka skill untuk pekerjaan baru, karena skills juga mendukung [file pendukung](#add-supporting-files).

140* **Folder skill sebagai plugin**: tambahkan `.claude-plugin/plugin.json` ke folder skill dan itu dimuat sebagai [plugin](/docs/id/plugins-reference#skills-directory-plugins) bernama `<name>@skills-dir`, sehingga dapat menggabungkan agents, hooks, dan MCP servers. Di `.claude/skills/` proyek, ini memerlukan penerimaan dialog kepercayaan workspace terlebih dahulu.140* **Folder skill sebagai plugin**: tambahkan `.claude-plugin/plugin.json` ke folder skill dan itu dimuat sebagai [plugin](/docs/id/plugins-reference#skills-directory-plugins) bernama `<name>@skills-dir`, sehingga dapat menggabungkan agents, hooks, dan MCP servers. Di `.claude/skills/` proyek, ini memerlukan penerimaan dialog kepercayaan workspace terlebih dahulu.

141 141 

142<h3 id="discovery-from-parent-and-nested-directories">142<h3 id="discovery-from-parent-and-nested-directories">


145 145 

146Claude Code memuat project skills dari `.claude/skills/` di direktori tempat Anda memulainya dan di setiap direktori induk hingga akar repositori, jadi memulai di `packages/frontend/` masih mengambil skills yang ditentukan di root. Ketika Anda [memindahkan sesi dengan `/cd`](/docs/id/permissions#move-the-session-to-another-directory) di v2.1.246 atau lebih baru, Claude Code menambahkan project skills direktori baru.146Claude Code memuat project skills dari `.claude/skills/` di direktori tempat Anda memulainya dan di setiap direktori induk hingga akar repositori, jadi memulai di `packages/frontend/` masih mengambil skills yang ditentukan di root. Ketika Anda [memindahkan sesi dengan `/cd`](/docs/id/permissions#move-the-session-to-another-directory) di v2.1.246 atau lebih baru, Claude Code menambahkan project skills direktori baru.

147 147 

148Skills di direktori `.claude/skills/` di bawah tempat Anda memulai tidak dimuat saat startup. Mereka dimuat pertama kali Claude membaca atau mengedit file di subdirektori itu dan tetap tersedia untuk sisa sesi. Sampai saat itu mereka tidak muncul di menu `/` dan Anda tidak dapat memanggilnya dengan nama. Untuk memuatnya lebih cepat, jalankan `/add-dir` dengan path subdirektori, yang memerlukan Claude Code v2.1.257 atau lebih baru.148Skills di direktori `.claude/skills/` di bawah tempat Anda memulai tidak dimuat saat startup. Mereka dimuat pertama kali Claude membaca atau mengedit file di subdirektori itu dan tetap tersedia untuk sisa sesi. Sampai saat itu mereka tidak muncul di menu `/` dan Anda tidak dapat memanggilnya berdasarkan nama. Untuk memuatnya lebih cepat, jalankan `/add-dir` dengan path subdirektori, yang memerlukan Claude Code v2.1.257 atau lebih baru.

149 149 

150Ketika nested skill berbagi nama dengan skill lain, keduanya tetap tersedia. Dengan skill `deploy` di root repositori dan skill lain di `apps/web/.claude/skills/`:150Ketika nested skill berbagi nama dengan skill lain, keduanya tetap tersedia. Dengan skill `deploy` di akar repositori dan yang lain di `apps/web/.claude/skills/`:

151 151 

152* `/deploy` menjalankan skill root. Claude Code juga mencantumkan varian yang memenuhi direktori untuk Claude, dengan instruksi untuk memanggil yang direktorinya menyimpan file yang sedang dikerjakan, sehingga nested skill masih berlaku untuk pekerjaan di `apps/web/`.152* `/deploy` menjalankan skill root. Claude Code juga mencantumkan varian yang memenuhi syarat direktori untuk Claude, dengan instruksi untuk memanggil yang direktorinya menyimpan file yang sedang dikerjakan, sehingga nested skill masih berlaku untuk pekerjaan di `apps/web/`.

153* `/apps/web:deploy` menjalankan nested skill sendiri. Deskripsinya menamai direktori yang berlaku.153* `/apps/web:deploy` menjalankan nested skill sendiri. Deskripsinya menamai direktori yang berlaku.

154 154 

155<h3 id="skills-from-additional-directories">155<h3 id="skills-from-additional-directories">


160 160 

161Claude Code mengawasi `.claude/skills/` di direktori yang Anda lewatkan dengan `--add-dir` saat peluncuran, seperti yang dijelaskan [Edit a skill during a session](#live-change-detection). Itu tidak mengawasi `.claude/commands/` atau `.claude/agents/` direktori yang ditambahkan, jadi restart sesi setelah mengubah file di sana.161Claude Code mengawasi `.claude/skills/` di direktori yang Anda lewatkan dengan `--add-dir` saat peluncuran, seperti yang dijelaskan [Edit a skill during a session](#live-change-detection). Itu tidak mengawasi `.claude/commands/` atau `.claude/agents/` direktori yang ditambahkan, jadi restart sesi setelah mengubah file di sana.

162 162 

163Beban ini bergantung pada sumber pengaturan `project` [setting source](/docs/id/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources), yang aktif secara default. Kebijakan [`strictPluginOnlyCustomization`](/docs/id/settings-reference#strictpluginonlycustomization), [bare mode](/docs/id/headless#start-faster-with-bare-mode), dan [`--safe-mode`](/docs/id/cli-reference#cli-flags) masing-masing membatasinya lebih lanjut, seperti yang dijelaskan halaman-halaman itu. Lihat [Additional directories grant file access, not configuration](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) untuk tabel lengkap apa yang dimuat direktori yang ditambahkan, termasuk `CLAUDE.md` dan pengaturan plugin.163Beban ini bergantung pada [setting source](/docs/id/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) `project`, yang aktif secara default. Kebijakan [`strictPluginOnlyCustomization`](/docs/id/settings-reference#strictpluginonlycustomization), [bare mode](/docs/id/headless#start-faster-with-bare-mode), dan [`--safe-mode`](/docs/id/cli-reference#cli-flags) masing-masing membatasinya lebih lanjut, seperti yang dijelaskan halaman-halaman itu. Lihat [Additional directories grant file access, not configuration](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) untuk tabel lengkap apa yang dimuat direktori yang ditambahkan, termasuk `CLAUDE.md` dan pengaturan plugin.

164 164 

165<h3 id="resolve-skills-that-share-a-name">165<h3 id="resolve-skills-that-share-a-name">

166 Selesaikan skills yang berbagi nama166 Selesaikan skills yang berbagi nama


169Ketika dua skills berbagi nama, tempat asal masing-masing menentukan yang mana `/name` jalankan. Tabel mencakup lokasi enterprise, personal, project, nested, plugin, dan claude.ai, skills bundel, dan file perintah:169Ketika dua skills berbagi nama, tempat asal masing-masing menentukan yang mana `/name` jalankan. Tabel mencakup lokasi enterprise, personal, project, nested, plugin, dan claude.ai, skills bundel, dan file perintah:

170 170 

171| Nama yang sama di | Yang mana yang berjalan |171| Nama yang sama di | Yang mana yang berjalan |

172| :----------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |172| :--------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

173| Dua dari enterprise, personal, dan project | Enterprise di atas personal, dan personal di atas project. Dengan `deploy` di `~/.claude/skills/` dan `.claude/skills/` proyek, `/deploy` menjalankan yang personal |173| Dua dari enterprise, personal, dan project | Enterprise di atas personal, dan personal di atas project. Dengan `deploy` di `~/.claude/skills/` dan `.claude/skills/` proyek, `/deploy` menjalankan yang personal |

174| Salah satu dari lokasi itu dan [bundled skill](#bundled-skills) | Skill Anda menggantikan perintah bundel, tetapi bukan aliasnya. Skill `code-review` proyek menggantikan `/code-review`, dan alias bundel `/review` tidak pernah menjalankan skill Anda |174| Salah satu dari lokasi itu dan [bundled skill](#bundled-skills) | Skill Anda menggantikan perintah bundel, tetapi bukan aliasnya. Skill `code-review` proyek menggantikan `/code-review`, dan alias bundel `/review` tidak pernah menjalankan skill Anda |

175| Skill dan file di `.claude/commands/` | Skill itu |175| Skill dan file di `.claude/commands/` | Skill itu |

176| Skill root-proyek dan nested skill | Keduanya dimuat. Lihat [monorepos dan subdirektori](#discovery-from-parent-and-nested-directories) |176| Skill root proyek dan nested skill | Keduanya dimuat. Lihat [monorepos dan subdirektori](#discovery-from-parent-and-nested-directories) |

177| Plugin skill dan skill di salah satu lokasi di atas | Keduanya dimuat, karena plugin skills diberi namespace sebagai `/plugin-name:skill-name` |177| Plugin skill dan skill di salah satu lokasi di atas | Keduanya dimuat, karena plugin skills diberi namespace sebagai `/plugin-name:skill-name` |

178| Salah satu dari di atas dan skill yang disinkronkan dari claude.ai | Skill atau perintah lain. Lihat [When a synced skill name matches another command](#when-a-synced-skill-name-matches-another-command) |178| Salah satu dari di atas dan skill [disinkronkan dari akun claude.ai Anda](#how-synced-skills-behave) | Skill atau perintah lainnya. Skill yang disinkronkan masih berjalan sebagai `/anthropic-skills:<name>`. Lihat [When a synced skill name matches another command](#when-a-synced-skill-name-matches-another-command) |

179 179 

180<h3 id="skills-in-cowork-and-cloud-sessions">180<h3 id="skills-in-cowork-and-cloud-sessions">

181 Gunakan skills di sesi Cowork dan cloud181 Gunakan skills di sesi Cowork dan cloud

182</h3>182</h3>

183 183 

184Sesi [Cowork](https://claude.com/product/cowork) dan [sesi cloud](/docs/id/cloud-environments#what-carries-over-from-your-setup), termasuk [routines](/docs/id/routines), tidak membaca `~/.claude/skills/` di mesin Anda. Sesi Cowork interaktif dan terjadwal memuat skills yang diaktifkan untuk akun claude.ai Anda, disinkronkan saat startup sesi; kelola dari **Customize** di sidebar Desktop app atau dari pengaturan skills di claude.ai. Sesi cloud juga memuat project skills yang dikomitkan ke `.claude/skills/` repositori yang dikloning.184Sesi [Cowork](https://claude.com/product/cowork) dan [cloud sessions](/docs/id/cloud-environments#what-carries-over-from-your-setup), termasuk [routines](/docs/id/routines), tidak membaca `~/.claude/skills/` di mesin Anda. Sesi Cowork interaktif dan terjadwal memuat skills yang diaktifkan untuk akun claude.ai Anda, disinkronkan saat startup sesi; kelola dari **Customize** di sidebar Desktop app atau dari pengaturan skills di claude.ai. Cloud sessions juga memuat project skills yang dikomitkan ke `.claude/skills/` repositori yang dikloning.

185 185 

186Jika skill hanya ada di `~/.claude/skills/` di mesin Anda, Claude Code melaporkan bahwa skill tidak ditemukan ketika [routine](/docs/id/routines) memanggilnya, karena setiap routine run dimulai sebagai sesi remote yang segar. Untuk membuat skill personal tersedia di sesi ini:186Jika skill hanya ada di `~/.claude/skills/` di mesin Anda, Claude Code melaporkan bahwa skill tidak ditemukan ketika [routine](/docs/id/routines) memanggilnya, karena setiap routine run dimulai sebagai sesi cloud yang segar. Untuk membuat personal skill tersedia di sesi ini:

187 187 

188* Untuk sesi Cowork dan cloud, aktifkan skill untuk akun claude.ai Anda.188* Untuk sesi Cowork dan cloud, aktifkan skill untuk akun claude.ai Anda.

189* Untuk sesi cloud, Anda dapat sebagai gantinya mengkomitkan skill ke `.claude/skills/` repositori, atau mengirimnya dalam plugin yang dideklarasikan di `.claude/settings.json` repositori. Plugin yang dideklarasikan Repo [install saat startup sesi](/docs/id/cloud-environments#what-carries-over-from-your-setup); plugin yang hanya diaktifkan di pengaturan pengguna Anda tidak ditransfer.189* Untuk cloud sessions, Anda dapat sebagai gantinya mengkomitkan skill ke `.claude/skills/` repositori, atau mengirimkannya di plugin yang dideklarasikan di `.claude/settings.json` repositori. Repo-declared plugins [install at session start](/docs/id/cloud-environments#what-carries-over-from-your-setup); plugins yang hanya diaktifkan di pengaturan pengguna Anda tidak ditransfer.

190 190 

191[Desktop scheduled tasks](/docs/id/desktop-scheduled-tasks) berjalan secara lokal di mesin Anda, jadi mereka memuat `~/.claude/skills/`.191[Desktop scheduled tasks](/docs/id/desktop-scheduled-tasks) berjalan secara lokal di mesin Anda, jadi mereka memuat `~/.claude/skills/`.

192 192 


194 Skills yang disinkronkan dari claude.ai194 Skills yang disinkronkan dari claude.ai

195</h3>195</h3>

196 196 

197Bagian ini berlaku untuk Anda jika Anda mengaktifkan skills untuk akun claude.ai Anda. Di sesi Cowork dan cloud, Claude Code memuat skills itu tanpa setup apa pun di mesin Anda. Di sesi lain apa pun di mesin Anda, Claude Code memuat mereka hanya setelah Anda menyalakan sinkronisasi dengan [`CLAUDE_CODE_SYNC_SKILLS`](/docs/id/env-vars#variables) dalam run non-interaktif, seperti yang dijelaskan [Where synced skills load](#where-synced-skills-load).197Bagian ini berlaku untuk Anda jika Anda menggunakan sesi Cowork atau cloud, atau masuk ke Claude Code di terminal Anda dengan akun claude.ai. Di sesi itu, Claude Code memuat skills yang diaktifkan untuk akun claude.ai Anda, tanpa setup apa pun di pihak Anda, seperti yang dijelaskan [Where synced skills load](#where-synced-skills-load). Skills itu mencakup yang Anda buat atau aktifkan di pengaturan claude.ai Anda, skills yang disediakan organisasi Anda di sana, dan skills built-in Anthropic seperti `pdf` dan `xlsx`.

198 198 

199Claude Code mengunduh synced skill dari akun Anda daripada membaca file yang Anda tulis di mesin tempat sesi berjalan, jadi itu menerapkan aturan ke synced skills yang tidak berlaku untuk skills yang Anda simpan di [lokasi skills](#where-skills-live).199Claude Code mengunduh synced skill dari akun Anda daripada membaca file yang Anda tulis di mesin tempat sesi berjalan, jadi itu menerapkan aturan ke synced skills yang tidak berlaku untuk skills yang Anda simpan di [skills locations](#where-skills-live).

200 200 

201<h4 id="where-synced-skills-load">201<h4 id="where-synced-skills-load">

202 Tempat synced skills dimuat202 Tempat synced skills dimuat


204 204 

205Di sesi Cowork atau cloud, Claude Code memuat skills yang diaktifkan untuk akun claude.ai Anda, dan [Skills in Cowork and cloud sessions](#skills-in-cowork-and-cloud-sessions) mengatakan bagaimana memilih skills mana yang sesi itu dapatkan.205Di sesi Cowork atau cloud, Claude Code memuat skills yang diaktifkan untuk akun claude.ai Anda, dan [Skills in Cowork and cloud sessions](#skills-in-cowork-and-cloud-sessions) mengatakan bagaimana memilih skills mana yang sesi itu dapatkan.

206 206 

207Di sesi lain apa pun di mesin Anda, Claude Code memuat mereka hanya setelah Anda mengunduhnya sekali dalam run non-interaktif:207Di terminal Anda, Claude Code menyinkronkan skills itu di sesi tempat Anda masuk dengan akun claude.ai Anda. Ketika sesi dimulai, Claude Code mengunduh skills akun Anda ke `~/.claude/skills/synced/` di latar belakang, kemudian memeriksa claude.ai untuk perubahan sekitar setiap 10 menit saat sesi berjalan. Ketika pemeriksaan menemukan bahwa skill ditambahkan, diedit, atau dimatikan di claude.ai, Claude Code menambah, memperbarui, atau menghapusnya di sesi yang berjalan tanpa restart. Sinkronisasi di sesi terminal memerlukan Claude Code v2.1.273 atau lebih baru.

208 208 

209<Steps>209Sinkronisasi tidak pernah menunda startup, karena Claude menunggu unduhan skill hanya ketika itu memanggil skill itu. Run [non-interactive](/docs/id/headless) yang singkat dapat selesai sebelum skill yang baru ditambahkan diunduh, dalam hal ini sesi yang lebih baru mengunduhnya. Untuk membuat run non-interactive mengunduh skills Anda dan menunggu daftar sebelum menjawab prompt, atur [`CLAUDE_CODE_SYNC_SKILLS`](/docs/id/env-vars#variables) ke `1`.

210 <Step title="Aktifkan skills untuk akun claude.ai Anda">

211 Aktifkan setiap skill yang Anda inginkan untuk akun claude.ai Anda, seperti yang dijelaskan [Skills in Cowork and cloud sessions](#skills-in-cowork-and-cloud-sessions). Claude Code mengunduh hanya skills yang Anda aktifkan, dan itu memerlukan sign-in claude.ai Anda untuk mengunduhnya.

212 </Step>

213 210 

214 <Step title="Jalankan Claude Code dalam mode non-interaktif dengan sinkronisasi dihidupkan">211Claude Code menyinkronkan hanya di sesi yang masuk dengan akun claude.ai Anda dan [mengambil feature flags dari Anthropic](/docs/id/env-vars#features-that-need-feature-flag-fetching). Itu tidak menyinkronkan di sesi ini:

215 Claude Code mengunduh synced skills hanya ketika Anda menjalankannya dalam [mode non-interaktif](/docs/id/headless) dengan flag `-p` dan atur [`CLAUDE_CODE_SYNC_SKILLS`](/docs/id/env-vars#variables) ke `1`. Prompt yang Anda lewatkan tidak mempengaruhi unduhan.

216 212 

217 ```bash theme={null}213* Sesi yang tidak menggunakan sign-in yang disimpan oleh `/login`, seperti yang mengautentikasi dengan API key, atau yang mana `ANTHROPIC_AUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN`, atau script `apiKeyHelper` menyediakan kredensial

218 CLAUDE_CODE_SYNC_SKILLS=1 claude -p "List the skills you have available"214* Sesi yang tidak mengambil feature flags, seperti yang di Amazon Bedrock atau yang mana Anda atur `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

219 ```215* Sesi dalam [bare mode](/docs/id/headless#start-faster-with-bare-mode) atau yang Anda mulai dengan `--safe-mode`

216* Sesi tempat pengaturan terkelola organisasi Anda [mengunci skills ke sumber plugin](/docs/id/settings-reference#strictpluginonlycustomization-skills), atau yang Anda mulai dengan daftar [`--setting-sources`](/docs/id/cli-reference#cli-flags) yang meninggalkan `user`

220 217 

221 Claude Code mengunduh skills ke `~/.claude/skills/synced/`, menjawab prompt, dan keluar seperti run non-interaktif lainnya. Skills yang diunduh tetap di disk setelah keluar, jadi Anda tidak perlu menjaga run tetap terbuka. Claude Code mengunduh skills hanya selama run dengan `CLAUDE_CODE_SYNC_SKILLS` diatur, jadi setelah Anda mengaktifkan atau mengubah skill di claude.ai, jalankan perintah lagi. Untuk mengubah berapa lama run menunggu sinkronisasi sebelum menjawab prompt, atur [`CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`](/docs/id/env-vars#variables).218Jika Anda masuk dengan `/login` selama sesi, restart Claude Code untuk mulai menyinkronkan.

222 </Step>

223 219 

224 <Step title="Konfirmasi skills dimuat dalam sesi lokal">220Skills yang sesi sebelumnya sinkronkan tetap di disk. Claude Code memuatnya di sesi yang lebih baru yang masuk ke akun yang sama, bahkan ketika itu tidak dapat menjangkau claude.ai.

225 Mulai sesi interaktif, tanpa `CLAUDE_CODE_SYNC_SKILLS` diatur, dan jalankan `/skills`. Menu mencantumkan skills yang diunduh di bawah `claude.ai sync`. Setiap sesi lokal yang Anda mulai setelahnya dengan sign-in claude.ai yang sama memuat mereka dari `~/.claude/skills/synced/` juga.221 

226 </Step>222Untuk melihat skills mana yang disinkronkan, jalankan `/skills`. Menu mencantumnya di bawah `claude.ai sync`.

227</Steps>223 

224Beberapa skills Anthropic, seperti `pdf` dan `xlsx`, selalu menyinkronkan. Untuk sisanya, aktifkan atau matikan skill di pengaturan skills Anda di claude.ai untuk mengubah apakah itu menyinkronkan.

225 

226Untuk menghentikan sinkronisasi di mesin, atur [`syncClaudeAiSkills`](/docs/id/settings-reference#syncclaudeaiskills) ke `false` di pengaturan pengguna Anda. Claude Code berhenti mengunduh, dan lain kali itu dimulai itu memindahkan skills yang sudah disinkronkan ke `~/.claude/skills/.trash/` dan tidak lagi memuatnya. Organisasi Anda dapat mematikan sinkronisasi untuk semua orang dengan mematikan Skills di claude.ai. Untuk menghentikan sinkronisasi sambil meninggalkan Skills aktif, itu dapat mengatur kunci yang sama di [managed settings](/docs/id/managed-settings).

227 

228Jika organisasi Anda mematikan Skills di claude.ai, Claude Code menghapus skills yang diunduh dan mereka berhenti dimuat. Skills yang dihapus pindah ke `~/.claude/skills/.trash/`, di mana Anda dapat memulihkan file sampai [retention sweep](/docs/id/claude-directory#cleaned-up-automatically) menghapusnya. Setelah organisasi Anda menghidupkan Skills kembali, Claude Code mengunduh skills yang Anda aktifkan pada sinkronisasi berikutnya.

228 229 

229<h4 id="when-a-synced-skill-name-matches-another-command">230<h4 id="when-a-synced-skill-name-matches-another-command">

230 Ketika nama synced skill cocok dengan perintah lain231 Ketika nama synced skill cocok dengan perintah lain

231</h4>232</h4>

232 233 

233Claude Code melewati synced skill yang namanya cocok dengan perintah lain apa pun, dan perintah lain itu berjalan. Perintah lain dapat berupa perintah built-in, [bundled skill](#bundled-skills), skill di [level lokal](#where-skills-live) apa pun, plugin skill, file di `.claude/commands/`, atau [MCP prompt](/docs/id/mcp#use-mcp-prompts-as-commands). Claude Code juga mencadangkan nama perintah built-in dan bundled skills miliknya sendiri bahkan ketika mereka tidak tersedia di sesi Anda, misalnya setelah Anda mematikan bundled skills, jadi itu melewati synced skill dengan salah satu nama itu juga.234Anda dapat memanggil synced skill dengan nama lengkapnya, `/anthropic-skills:<name>`, atau dengan nama pendeknya, `/<name>`. Ketika perintah lain menggunakan nama pendek itu, `/<name>` menjalankan perintah lain, dan synced skill berjalan hanya sebagai `/anthropic-skills:<name>`. Dengan skill `deploy` lokal dan synced `deploy`, `/deploy` menjalankan skill lokal dan `/anthropic-skills:deploy` menjalankan yang disinkronkan. Sebelum v2.1.269, synced skill hanya memiliki nama pendeknya.

235 

236Perintah lainnya dapat berupa salah satu dari ini:

237 

238* Perintah built-in atau [bundled skill](#bundled-skills), termasuk yang tidak tersedia di sesi Anda, misalnya setelah Anda mematikan bundled skills

239* Skill di [local level](#where-skills-live) apa pun atau file di `.claude/commands/`

240* Plugin skill

241* [MCP prompt](/docs/id/mcp#use-mcp-prompts-as-commands)

234 242 

235Claude Code memberi label synced skills sehingga Anda dapat mengetahui dari mana mereka berasal. Menu `/skills` dan `/context` mengelompokkan synced skills di bawah `claude.ai sync`, dan menu perintah `/` menandainya sebagai berasal dari claude.ai.243Claude Code memberi label synced skills sehingga Anda dapat mengetahui dari mana mereka berasal. Menu `/skills` dan `/context` mengelompokkan synced skills di bawah `claude.ai sync`, dan menu perintah `/` menandainya sebagai berasal dari claude.ai.

236 244 

237Ketika membandingkan nama, Claude Code mengabaikan kasus, spasi, dan karakter tak terlihat, dan memperlakukan bentuk kompatibilitas seperti huruf fullwidth dan varian dash sebagai setara biasa mereka, jadi synced `Commit` tidak dapat dimuat di samping `commit` lokal. Nama yang berbeda hanya dengan huruf look-alike dari alfabet lain dihitung sebagai nama yang berbeda, dan label `claude.ai sync` adalah cara Anda membedakan keduanya. Pemeriksaan dan label ini memerlukan Claude Code v2.1.228 atau lebih baru.245Ketika membandingkan nama, Claude Code mengabaikan kasus, spasi, dan karakter tak terlihat, dan memperlakukan bentuk kompatibilitas seperti huruf lebar dan varian dash sebagai padanan polosnya. Misalnya, synced skill bernama `Commit` dan skill lokal bernama `commit` dihitung sebagai nama yang sama, jadi `/commit` terus menjalankan skill lokal Anda.

246 

247Nama yang berbeda hanya dengan huruf yang mirip dari alfabet lain dihitung sebagai nama yang berbeda, dan label `claude.ai sync` adalah cara Anda membedakan keduanya. Pemeriksaan dan label ini memerlukan Claude Code v2.1.228 atau lebih baru.

238 248 

239<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">249<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">

240 Bagaimana Claude Code menangani frontmatter dari synced skill250 Bagaimana Claude Code menangani frontmatter dari synced skill


243Claude Code menerapkan dua aturan ke frontmatter synced skill:253Claude Code menerapkan dua aturan ke frontmatter synced skill:

244 254 

245* Claude Code menghormati frontmatter di setiap jenis sesi, jadi grant `allowed-tools` melalui [permission flow](/docs/id/permissions) normal.255* Claude Code menghormati frontmatter di setiap jenis sesi, jadi grant `allowed-tools` melalui [permission flow](/docs/id/permissions) normal.

246* Claude Code membersihkan teks tampilan yang disediakan skill, seperti deskripsinya. Itu menghapus karakter kontrol, dan dalam teks yang mencapai Claude, seperti deskripsi, itu juga menghindari kurung sudut sehingga teks tidak dapat meniru pemformatan internal Claude Code. Pembersihan ini memerlukan Claude Code v2.1.228 atau lebih baru.256* Claude Code membersihkan teks tampilan yang disediakan skill, seperti deskripsinya. Itu menghapus karakter kontrol, dan dalam teks yang mencapai Claude, seperti deskripsi, itu juga menghindari kurung sudut sehingga teks tidak dapat meniru pemformatan internal Claude Code. Sanitasi ini memerlukan Claude Code v2.1.228 atau lebih baru.

247 257 

248<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">258<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">

249 Bagaimana Claude Code menangani body dari synced skill259 Bagaimana Claude Code menangani body dari synced skill

250</h4>260</h4>

251 261 

252Apa yang Claude Code lakukan dengan body synced skill bergantung pada tempat sesi berjalan:262Apa yang Claude Code lakukan dengan body synced skill tergantung di mana sesi berjalan:

253 263 

254* Di sesi cloud, body mempertahankan perilaku yang dimiliki skill lokal, karena sesi berjalan dalam kontainer terisolasi.264* Di cloud session, body mempertahankan perilaku yang dimiliki skill lokal, karena sesi berjalan di container terisolasi.

255* Di sesi Cowork di desktop Anda, body mempertahankan perilaku yang dimiliki skill lokal, kecuali Claude Code menggantikan setiap baris perintah `!` dengan placeholder [`disableSkillShellExecution`](#inject-dynamic-context), seperti yang dilakukannya untuk setiap skill yang Anda sediakan di sana.265* Di sesi Cowork di desktop Anda, body mempertahankan perilaku yang dimiliki skill lokal, kecuali Claude Code menggantikan setiap baris perintah `!` dengan placeholder [`disableSkillShellExecution`](#inject-dynamic-context), seperti yang dilakukannya untuk setiap skill yang Anda sediakan di sana.

256* Di sesi lain apa pun di mesin Anda, Claude Code tidak menjalankan perintah [`!`](#inject-dynamic-context), tidak melampirkan file yang referensi `@` beri nama cara yang dilakukannya untuk skill lokal, dan tidak mengganti placeholder `${CLAUDE_PROJECT_DIR}` dan `${CLAUDE_SESSION_ID}`, jadi referensi `@` dan kedua placeholder mencapai Claude sebagai teks literal. Baris perintah `!` juga mencapai Claude sebagai teks literal, atau sebagai placeholder itu ketika `disableSkillShellExecution` aktif. Penanganan ini memerlukan Claude Code v2.1.228 atau lebih baru.266* Di sesi lain apa pun di mesin Anda, Claude Code tidak menjalankan [perintah `!`](#inject-dynamic-context), tidak melampirkan file yang referensi `@` beri nama dengan cara yang dilakukannya untuk skill lokal, dan tidak mengganti placeholder `${CLAUDE_PROJECT_DIR}` dan `${CLAUDE_SESSION_ID}`, jadi referensi `@` dan kedua placeholder mencapai Claude sebagai teks literal. Baris perintah `!` juga mencapai Claude sebagai teks literal, atau sebagai placeholder itu ketika `disableSkillShellExecution` aktif. Penanganan ini memerlukan Claude Code v2.1.228 atau lebih baru.

257 267 

258<h3 id="live-change-detection">268<h3 id="live-change-detection">

259 Edit skill selama sesi269 Edit skill selama sesi


267 Hapus skill277 Hapus skill

268</h3>278</h3>

269 279 

270Bagaimana Anda menghapus skill bergantung pada dari mana asalnya:280Bagaimana Anda menghapus skill tergantung dari mana asalnya:

271 281 

272* **Personal atau project skill**: hapus direktori skill, `~/.claude/skills/<skill-name>/` atau `.claude/skills/<skill-name>/`. Claude Code [menjatuhkannya dari `/skills` dalam sesi saat ini](#live-change-detection); konten yang sudah dimuat Claude Code darinya mengikuti [skill content lifecycle](#skill-content-lifecycle).282* **Personal atau project skill**: hapus direktori skill, `~/.claude/skills/<skill-name>/` atau `.claude/skills/<skill-name>/`. Claude Code [menjatuhkannya dari `/skills` dalam sesi saat ini](#live-change-detection); konten yang sudah dimuat Claude Code darinya mengikuti [skill content lifecycle](#skill-content-lifecycle).

273* **Enterprise skill**: administrator menghapus direktori skill dari `.claude/skills/` di dalam [direktori pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms), misalnya `/etc/claude-code/.claude/skills/<skill-name>/` di Linux.283* **Enterprise skill**: administrator menghapus direktori skill dari `.claude/skills/` di dalam [managed settings directory](/docs/id/managed-settings#delivery-mechanisms), misalnya `/etc/claude-code/.claude/skills/<skill-name>/` di Linux.

274* **Plugin skill**: nonaktifkan atau uninstall plugin yang menyediakannya, dari menu `/plugin` atau dengan `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code membongkar skills plugin ketika [perubahan diterapkan](/docs/id/discover-plugins#apply-plugin-changes-without-restarting) atau ketika Anda restart.284* **Plugin skill**: nonaktifkan atau uninstall plugin yang menyediakannya, dari menu `/plugin` atau dengan `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code membongkar plugin skills ketika [perubahan berlaku](/docs/id/discover-plugins#apply-plugin-changes-without-restarting) atau ketika Anda restart.

275* **Skill yang disinkronkan dari claude.ai**: matikan skill untuk akun claude.ai Anda, di tempat yang sama Anda [mengaktifkannya](#skills-in-cowork-and-cloud-sessions). Claude Code menghapusnya dari `~/.claude/skills/synced/` lain kali itu [menyinkronkan skills Anda](#where-synced-skills-load). Jika Anda menghapus direktori dengan tangan sebagai gantinya, sinkronisasi berikutnya mengunduhnya lagi sementara skill tetap diaktifkan di claude.ai.285* **Skill yang disinkronkan dari claude.ai**: matikan skill untuk akun claude.ai Anda, di tempat yang sama Anda [mengaktifkannya](#skills-in-cowork-and-cloud-sessions). Claude Code menghapusnya dari `~/.claude/skills/synced/` lain kali itu [menyinkronkan skills Anda](#where-synced-skills-load). Jika Anda menghapus direktori dengan tangan sebagai gantinya, sinkronisasi berikutnya mengunduhnya lagi sementara skill tetap diaktifkan di claude.ai.

276* **Bundled skill**: atur [`disableBundledSkills`](#bundled-skills) ke `true` untuk mematikan bundled skills, atau atur satu skill ke `"off"` di [`skillOverrides`](#override-skill-visibility-from-settings) untuk menyembunyikannya.286* **Bundled skill**: atur [`disableBundledSkills`](#bundled-skills) ke `true` untuk mematikan bundled skills, atau atur satu skill ke `"off"` di [`skillOverrides`](#override-skill-visibility-from-settings) untuk menyembunyikannya.

277 287 


378| Claude Code skills at [any level](#where-skills-live), including [plugin](/docs/id/plugins) skills | Every field in the table above |388| Claude Code skills at [any level](#where-skills-live), including [plugin](/docs/id/plugins) skills | Every field in the table above |

379| claude.ai skill uploads, the Skills API, and packaging with `package_skill.py` from [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |389| claude.ai skill uploads, the Skills API, and packaging with `package_skill.py` from [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |

380 390 

381Ketika Anda mengaktifkan skill pribadi untuk [sesi Cowork dan cloud](#skills-in-cowork-and-cloud-sessions), termasuk rutinitas, Anda mengunggahnya ke claude.ai, jadi aturan yang sama berlaku.391Ketika Anda mengaktifkan skill pribadi untuk akun claude.ai Anda, misalnya untuk menggunakannya dalam [sesi Cowork dan cloud](#skills-in-cowork-and-cloud-sessions) dan rutinitas, Anda mengunggahnya ke claude.ai, jadi aturan yang sama berlaku.

382 392 

383Jika Anda menyertakan bidang apa pun yang tidak diizinkan oleh spesifikasi, pengemasan atau unggahan gagal dengan kesalahan keras daripada mengabaikan bidang:393Jika Anda menyertakan bidang apa pun yang tidak diizinkan oleh spesifikasi, pengemasan atau unggahan gagal dengan kesalahan keras daripada mengabaikan bidang:

384 394 


404| File in a subdirectory of `.claude/commands/` | Subdirectory path relative to `commands/` with each `/` replaced by `:`, then the file name without extension | `.claude/commands/frontend/component.md` → `/frontend:component` |414| File in a subdirectory of `.claude/commands/` | Subdirectory path relative to `commands/` with each `/` replaced by `:`, then the file name without extension | `.claude/commands/frontend/component.md` → `/frontend:component` |

405| Plugin `skills/` subdirectory | Frontmatter `name` or the directory name, namespaced by plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, or `/my-plugin:fancy` with `name: fancy` |415| Plugin `skills/` subdirectory | Frontmatter `name` or the directory name, namespaced by plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, or `/my-plugin:fancy` with `name: fancy` |

406| Plugin root `SKILL.md` | Frontmatter `name`, with the plugin directory name as a fallback | `my-plugin/SKILL.md` with `name: review` → `/my-plugin:review`. See [Path behavior rules](/docs/id/plugins-reference#path-behavior-rules) |416| Plugin root `SKILL.md` | Frontmatter `name`, with the plugin directory name as a fallback | `my-plugin/SKILL.md` with `name: review` → `/my-plugin:review`. See [Path behavior rules](/docs/id/plugins-reference#path-behavior-rules) |

417| Skill [synced from claude.ai](#how-synced-skills-behave) | The skill's name on your claude.ai account, prefixed with `anthropic-skills:` | Account skill `deploy` → `/anthropic-skills:deploy`, or `/deploy` while no other command uses that name |

407 418 

408Dalam skill plugin, frontmatter `name` menggantikan nama direktori dalam segmen terakhir perintah, jadi `my-plugin/skills/review/SKILL.md` dengan `name: fancy` menjadi `/my-plugin:fancy`. Perintah bare `/fancy` juga menginvokasi skill kecuali perintah lain sudah menggunakan nama itu. Jika `name` yang Anda tulis sudah dimulai dengan awalan plugin itu sendiri, Claude Code tidak menambahkan awalan lagi pada v2.1.246 atau lebih baru. Misalnya, `name: my-plugin:fancy` masih menjadi `/my-plugin:fancy`. Dari v2.1.216 hingga v2.1.245, Claude Code menggandakan awalan ketika `name` sudah membawanya.419Dalam skill plugin, frontmatter `name` menggantikan nama direktori dalam segmen terakhir perintah, jadi `my-plugin/skills/review/SKILL.md` dengan `name: fancy` menjadi `/my-plugin:fancy`. Perintah bare `/fancy` juga menginvokasi skill kecuali perintah lain sudah menggunakan nama itu. Jika `name` yang Anda tulis sudah dimulai dengan awalan plugin itu sendiri, Claude Code tidak menambahkan awalan lagi pada v2.1.246 atau lebih baru. Misalnya, `name: my-plugin:fancy` masih menjadi `/my-plugin:fancy`. Dari v2.1.216 hingga v2.1.245, Claude Code menggandakan awalan ketika `name` sudah membawanya.

409 420 

410Dalam [sesi non-interaktif](/docs/id/headless), nama `help` dan `feedback` tidak dicadangkan untuk perintah bawaan khusus terminal mereka, jadi skill plugin dengan salah satu nama tersebut menyimpan perintah bare-nya di sana. Setiap terminal-only built-in lainnya, seperti `/login`, tetap dicadangkan meskipun perintah tidak dapat dijalankan dalam sesi tersebut. Skill yang disinkronkan bernama `help` atau `feedback` masih dilewati di sana, karena Claude Code [melewati skill yang disinkronkan](#when-a-synced-skill-name-matches-another-command) yang namanya cocok dengan perintah bawaan apa pun apakah perintah itu dapat dijalankan atau tidak.421Dalam [sesi non-interaktif](/docs/id/headless), nama `help` dan `feedback` tidak dicadangkan untuk perintah bawaan khusus terminal mereka, jadi skill plugin dengan salah satu nama tersebut menyimpan perintah bare-nya di sana. Setiap terminal-only built-in lainnya, seperti `/login`, tetap dicadangkan meskipun perintah tidak dapat dijalankan dalam sesi tersebut.

411 422 

412Untuk `SKILL.md` akar plugin, tidak ada direktori skill untuk mengambil nama darinya, jadi `name` menyediakan seluruh segmen terakhir. Tanpa bidang `name`, Claude Code kembali ke nama direktori plugin.423Untuk `SKILL.md` akar plugin, tidak ada direktori skill untuk mengambil nama darinya, jadi `name` menyediakan seluruh segmen terakhir. Tanpa bidang `name`, Claude Code kembali ke nama direktori plugin.

413 424 


709 720 

710Dengan shell `bash` default, tambahkan `|| true` ke perintah lain apa pun yang Anda harapkan keluar non-nol. Skrip pemeriksaan yang keluar 1 ketika menemukan masalah adalah satu contoh.721Dengan shell `bash` default, tambahkan `|| true` ke perintah lain apa pun yang Anda harapkan keluar non-nol. Skrip pemeriksaan yang keluar 1 ketika menemukan masalah adalah satu contoh.

711 722 

712Perintah yang diinjeksi tidak pernah meminta izin. Ketika pemeriksaan izin perintah mengembalikan apa pun selain izin, Claude Code membatalkan invokasi. Ini termasuk aturan yang biasanya akan menanyakan Anda. Pembatalan menampilkan `Shell command permission check failed for pattern "..."`.723<h4 id="permission-checks-on-injected-commands">

724 Pemeriksaan izin pada perintah yang diinjeksi

725</h4>

726 

727Perintah yang diinjeksi tidak pernah meminta izin saat skill dirender. Claude Code memeriksa masing-masing terhadap [aturan izin](/docs/id/permissions) Anda terlebih dahulu. Perintah yang cocok dengan aturan deny membatalkan invokasi dengan `Shell command permission check failed for pattern "..."`.

728 

729Di luar [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), ketika pemeriksaan izin perintah mengembalikan apa pun selain allow, Claude Code membatalkan invokasi dengan kesalahan yang sama. Ini termasuk aturan yang biasanya akan menanyakan Anda. Untuk menjaga perintah yang tidak cocok agar tidak membatalkan di sini, pra-setujui dengan [`allowed-tools`](#pre-approve-tools-for-a-skill). Aturan deny dan ask masih mengganti `allowed-tools`. Lihat [Kelola izin](/docs/id/permissions#manage-permissions).

713 730 

714Untuk menjaga perintah yang tidak cocok agar tidak membatalkan di sini, pra-setujui dengan [`allowed-tools`](#pre-approve-tools-for-a-skill). Aturan ask atau deny yang cocok masih membatalkan invokasi terlepas dari `allowed-tools`. Lihat [Kelola izin](/docs/id/permissions#manage-permissions).731Dalam mode auto, perintah yang sebaliknya memerlukan persetujuan Anda tidak membatalkan invokasi. Skill dimuat dengan instruksi yang memberi tahu Claude untuk menjalankan perintah terlebih dahulu, dan panggilan Claude sendiri kemudian melalui [pemeriksaan biasa mode auto](/docs/id/permission-modes#how-the-classifier-evaluates-actions). Invokasi masih membatalkan dalam [skill yang di-fork](#run-skills-in-a-subagent) yang menetapkan `agent`, dan dalam sesi di mana Claude tidak memiliki [alat shell yang menjalankan perintah yang diinjeksi](#how-injected-commands-run).

715 732 

716<h3 id="run-skills-in-a-subagent">733<h3 id="run-skills-in-a-subagent">

717 Jalankan skills dalam subagent734 Jalankan skills dalam subagent


743Skills dan [subagents](/docs/id/sub-agents) bekerja bersama dalam dua arah:760Skills dan [subagents](/docs/id/sub-agents) bekerja bersama dalam dua arah:

744 761 

745| Pendekatan | System prompt | Tugas | Juga memuat |762| Pendekatan | System prompt | Tugas | Juga memuat |

746| :----------------------------- | :-------------------- | :-------------------- | :------------------------------------------------------ |763| :----------------------------- | :-------------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------------ |

747| Skill dengan `context: fork` | Dari tipe agen | Konten SKILL.md | CLAUDE.md, kecuali ketika agen adalah Explore atau Plan |764| Skill dengan `context: fork` | Dari tipe agen | Konten SKILL.md | CLAUDE.md, sesuai dengan [startup context](/docs/id/sub-agents#what-loads-at-startup) agen |

748| Subagent dengan field `skills` | Isi markdown subagent | Pesan delegasi Claude | Skills yang dimuat sebelumnya + CLAUDE.md |765| Subagent dengan field `skills` | Isi markdown subagent | Pesan delegasi Claude | Skills yang dimuat sebelumnya + CLAUDE.md, sesuai dengan [startup context](/docs/id/sub-agents#what-loads-at-startup) subagent |

749 766 

750Dengan `context: fork`, Anda menulis tugas dalam skill Anda dan memilih tipe agen untuk menjalankannya. Agen Explore dan Plan bawaan [melewati CLAUDE.md dan status git](/docs/id/sub-agents#what-loads-at-startup) untuk menjaga konteks mereka tetap kecil, jadi skill yang di-fork menggunakan `agent: Explore` hanya melihat konten SKILL.md dan prompt sistem agen sendiri. Untuk kebalikannya, di mana Anda mendefinisikan subagent kustom yang menggunakan skills sebagai materi referensi, lihat [Subagents](/docs/id/sub-agents#preload-skills-into-subagents).767Dengan `context: fork`, Anda menulis tugas dalam skill Anda dan memilih tipe agen untuk menjalankannya. Agen Explore dan Plan bawaan [melewati CLAUDE.md dan status git](/docs/id/sub-agents#what-loads-at-startup) untuk menjaga konteks mereka tetap kecil, jadi skill yang di-fork menggunakan `agent: Explore` hanya melihat konten SKILL.md dan prompt sistem agen sendiri. Untuk kebalikannya, di mana Anda mendefinisikan subagent kustom yang menggunakan skills sebagai materi referensi, lihat [Subagents](/docs/id/sub-agents#preload-skills-into-subagents).

751 768 

slack.md +17 −17

Details

13 * **Paket Pro dan Max:** Claude Tag tidak tersedia pada paket individual, jadi halaman ini tetap menjadi jalur setup.13 * **Paket Pro dan Max:** Claude Tag tidak tersedia pada paket individual, jadi halaman ini tetap menjadi jalur setup.

14</Warning>14</Warning>

15 15 

16Claude Code di Slack membawa kekuatan Claude Code langsung ke workspace Slack Anda. Ketika Anda menyebutkan `@Claude` dengan tugas coding, Claude secara otomatis mendeteksi niat dan membuat sesi Claude Code di web, memungkinkan Anda untuk mendelegasikan pekerjaan pengembangan tanpa meninggalkan percakapan tim Anda.16Claude Code di Slack membawa kekuatan Claude Code langsung ke workspace Slack Anda. Ketika Anda menyebutkan `@Claude` dengan tugas coding, Claude secara otomatis mendeteksi niat dan membuat sesi Claude Code cloud, memungkinkan Anda untuk mendelegasikan pekerjaan pengembangan tanpa meninggalkan percakapan tim Anda.

17 17 

18Integrasi ini dibangun di atas aplikasi Claude untuk Slack yang sudah ada tetapi menambahkan perutean cerdas ke Claude Code di web untuk permintaan yang terkait dengan coding. Setiap sesi berjalan di bawah akun Claude Anda sendiri, menggunakan repositori yang terhubung dan batas rencana Anda.18Integrasi ini dibangun di atas aplikasi Claude untuk Slack yang sudah ada tetapi menambahkan perutean cerdas ke sesi Claude Code cloud untuk permintaan yang terkait dengan coding. Setiap sesi berjalan di bawah akun Claude Anda sendiri, menggunakan repositori yang terhubung dan batas rencana Anda.

19 19 

20<h2 id="use-cases">20<h2 id="use-cases">

21 Kasus penggunaan21 Kasus penggunaan


33Sebelum menggunakan Claude Code di Slack, pastikan Anda memiliki hal berikut:33Sebelum menggunakan Claude Code di Slack, pastikan Anda memiliki hal berikut:

34 34 

35| Persyaratan | Detail |35| Persyaratan | Detail |

36| :----------------- | :----------------------------------------------------------------------------------------------------- |36| :---------------- | :----------------------------------------------------------------------------------------------------------- |

37| Claude Plan | Pro, Max, Team, atau Enterprise dengan akses Claude Code (kursi premium atau Chat + Claude Code seats) |37| Claude Plan | Pro, Max, Team, atau Enterprise dengan akses Claude Code (kursi premium atau Chat + Claude Code seats) |

38| Claude Code di web | Akses ke [Claude Code di web](/docs/id/claude-code-on-the-web) harus diaktifkan |38| Cloud sessions | [Cloud sessions](/docs/id/claude-code-on-the-web) diaktifkan untuk akun Anda |

39| Akun GitHub | Terhubung ke Claude Code di web dengan setidaknya satu repositori yang terauthentikasi |39| Akun GitHub | Terhubung di [claude.ai/code](https://claude.ai/code) dengan setidaknya satu repositori yang terauthentikasi |

40| Autentikasi Slack | Akun Slack Anda tertaut ke akun Claude Anda melalui aplikasi Claude |40| Autentikasi Slack | Akun Slack Anda tertaut ke akun Claude Anda melalui aplikasi Claude |

41 41 

42<h2 id="setting-up-claude-code-in-slack">42<h2 id="setting-up-claude-code-in-slack">


52 Setelah aplikasi diinstal, autentikasi akun Claude individual Anda:52 Setelah aplikasi diinstal, autentikasi akun Claude individual Anda:

53 53 

54 1. Buka aplikasi Claude di Slack dengan mengklik "Claude" di bagian Apps Anda54 1. Buka aplikasi Claude di Slack dengan mengklik "Claude" di bagian Apps Anda

55 2. Navigasi ke tab App Home55 2. Buka tab App Home

56 3. Klik "Connect" untuk menghubungkan akun Slack Anda dengan akun Claude Anda56 3. Klik "Connect" untuk menghubungkan akun Slack Anda dengan akun Claude Anda

57 4. Selesaikan alur autentikasi di browser Anda57 4. Selesaikan alur autentikasi di browser Anda

58 </Step>58 </Step>

59 59 

60 <Step title="Konfigurasi Claude Code di web">60 <Step title="Konfigurasi cloud sessions">

61 Pastikan Claude Code di web Anda dikonfigurasi dengan benar:61 Pastikan cloud sessions dikonfigurasi dengan benar untuk akun Anda:

62 62 

63 * Kunjungi [claude.ai/code](https://claude.ai/code) dan masuk dengan akun yang sama yang Anda hubungkan ke Slack63 * Kunjungi [claude.ai/code](https://claude.ai/code) dan masuk dengan akun yang sama yang Anda hubungkan ke Slack

64 * Hubungkan akun GitHub Anda jika belum terhubung64 * Hubungkan akun GitHub Anda jika belum terhubung


66 </Step>66 </Step>

67 67 

68 <Step title="Pilih mode perutean Anda">68 <Step title="Pilih mode perutean Anda">

69 Setelah menghubungkan akun Anda, konfigurasi bagaimana Claude menangani pesan Anda di Slack. Navigasi ke Claude App Home di Slack untuk menemukan pengaturan **Routing Mode**.69 Setelah menghubungkan akun Anda, konfigurasi bagaimana Claude menangani pesan Anda di Slack. Buka Claude App Home di Slack untuk menemukan pengaturan **Routing Mode**.

70 70 

71 | Mode | Perilaku |71 | Mode | Perilaku |

72 | :-------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |72 | :-------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


91 Deteksi otomatis91 Deteksi otomatis

92</h3>92</h3>

93 93 

94Dalam mode routing Code + Chat, ketika Anda menyebutkan @Claude di saluran atau thread Slack, Claude secara otomatis mendeteksi apakah pesan Anda adalah tugas coding. Tugas coding dikirim ke Claude Code di web. Apa pun yang lain mendapatkan balasan chat biasa. Dalam mode Code only, setiap @mention dikirim ke Claude Code.94Dalam mode routing Code + Chat, ketika Anda menyebutkan @Claude di saluran atau thread Slack, Claude secara otomatis mendeteksi apakah pesan Anda adalah tugas coding. Tugas coding dikirim ke sesi cloud Claude Code. Apa pun yang lain mendapatkan balasan chat biasa. Dalam mode Code only, setiap @mention dikirim ke Claude Code.

95 95 

96Anda juga dapat secara eksplisit memberi tahu Claude untuk menangani permintaan sebagai tugas coding, bahkan jika itu tidak secara otomatis mendeteksinya.96Anda juga dapat secara eksplisit memberi tahu Claude untuk menangani permintaan sebagai tugas coding, bahkan jika itu tidak secara otomatis mendeteksinya.

97 97 


182 182 

183**Di Slack**: Anda akan melihat pembaruan status, ringkasan penyelesaian, dan tombol tindakan. Transkrip lengkap disimpan dan selalu dapat diakses.183**Di Slack**: Anda akan melihat pembaruan status, ringkasan penyelesaian, dan tombol tindakan. Transkrip lengkap disimpan dan selalu dapat diakses.

184 184 

185**Di web**: Sesi Claude Code lengkap dengan riwayat percakapan lengkap, semua perubahan kode, dan operasi file. Sesi tetap berada di riwayat Claude Code Anda di [claude.ai/code](https://claude.ai/code), di mana Anda dapat melanjutkan sesi sebelumnya, mereferensikannya, atau membuat pull request.185**Di claude.ai/code**: Sesi Claude Code lengkap dengan riwayat percakapan lengkap, semua perubahan kode, dan operasi file. Sesi tetap berada di riwayat Claude Code Anda di [claude.ai/code](https://claude.ai/code), di mana Anda dapat melanjutkan sesi sebelumnya, mereferensikannya, atau membuat pull request.

186 186 

187Untuk akun Enterprise dan Team, sesi yang dibuat dari Claude di Slack secara otomatis terlihat oleh organisasi. Lihat [Claude Code on the Web sharing](/docs/id/claude-code-on-the-web#share-sessions) untuk detail lebih lanjut.187Untuk akun Enterprise dan Team, sesi yang dibuat dari Claude di Slack secara otomatis terlihat oleh organisasi. Lihat [cloud session sharing](/docs/id/claude-code-on-the-web#share-sessions) untuk detail lebih lanjut.

188 188 

189<h2 id="best-practices">189<h2 id="best-practices">

190 Praktik terbaik190 Praktik terbaik


222</h3>222</h3>

223 223 

2241. Verifikasi akun Claude Anda terhubung di Claude App Home2241. Verifikasi akun Claude Anda terhubung di Claude App Home

2252. Periksa bahwa Anda memiliki akses Claude Code di web yang diaktifkan2252. Periksa bahwa sesi cloud diaktifkan untuk akun Anda

2263. Pastikan Anda memiliki setidaknya satu repositori GitHub yang terhubung ke Claude Code2263. Pastikan Anda memiliki setidaknya satu repositori GitHub yang terhubung ke Claude Code

227 227 

228<h3 id="sessions-from-a-claude-tag-channel-fail-to-start">228<h3 id="sessions-from-a-claude-tag-channel-fail-to-start">


242 Repositori tidak ditampilkan242 Repositori tidak ditampilkan

243</h3>243</h3>

244 244 

2451. Hubungkan repositori di Claude Code di web di [claude.ai/code](https://claude.ai/code)2451. Hubungkan repositori di [claude.ai/code](https://claude.ai/code)

2462. Verifikasi izin GitHub Anda untuk repositori tersebut2462. Verifikasi izin GitHub Anda untuk repositori tersebut

2473. Coba putuskan dan hubungkan kembali akun GitHub Anda2473. Coba putuskan dan hubungkan kembali akun GitHub Anda

248 248 


267 267 

268* **GitHub saja**: repositori harus berada di GitHub.268* **GitHub saja**: repositori harus berada di GitHub.

269* **Satu PR sekaligus**: setiap sesi dapat membuat satu pull request.269* **Satu PR sekaligus**: setiap sesi dapat membuat satu pull request.

270* **Akses web diperlukan**: pengguna memerlukan akses ke Claude Code di web; tanpa itu, Claude akan merespons dengan respons chat standar.270* **Akses sesi cloud diperlukan**: pengguna memerlukan akses ke [sesi cloud](/docs/id/claude-code-on-the-web); tanpa itu, Claude merespons dengan respons chat standar.

271 271 

272<h2 id="related-resources">272<h2 id="related-resources">

273 Sumber daya terkait273 Sumber daya terkait

274</h2>274</h2>

275 275 

276<CardGroup>276<CardGroup>

277 <Card title="Claude Code di web" icon="globe" href="/docs/id/claude-code-on-the-web">277 <Card title="Claude Code di cloud" icon="cloud" href="/docs/id/claude-code-on-the-web">

278 Pelajari lebih lanjut tentang Claude Code di web278 Pelajari lebih lanjut tentang sesi cloud

279 </Card>279 </Card>

280 280 

281 <Card title="Claude untuk Slack" icon="slack" href="https://claude.com/claude-and-slack">281 <Card title="Claude untuk Slack" icon="slack" href="https://claude.com/claude-and-slack">

statusline.md +1 −1

Details

86 Bangun baris status langkah demi langkah86 Bangun baris status langkah demi langkah

87</h2>87</h2>

88 88 

89Panduan ini menunjukkan apa yang terjadi di balik layar dengan membuat baris status secara manual yang menampilkan model saat ini, direktori kerja, dan persentase penggunaan jendela konteks.89Panduan ini menunjukkan apa yang `/statusline` siapkan untuk Anda dengan membuat baris status secara manual yang menampilkan model saat ini, direktori kerja, dan persentase penggunaan jendela konteks.

90 90 

91<Note>Menjalankan [`/statusline`](#use-the-%2Fstatusline-command) dengan deskripsi apa yang Anda inginkan mengonfigurasi semua ini untuk Anda secara otomatis.</Note>91<Note>Menjalankan [`/statusline`](#use-the-%2Fstatusline-command) dengan deskripsi apa yang Anda inginkan mengonfigurasi semua ini untuk Anda secara otomatis.</Note>

92 92 

sub-agents.md +375 −134

Details

11Setiap subagent berjalan di jendela konteksnya sendiri dengan prompt sistem khusus, akses alat tertentu, dan izin independen. Ketika Claude menemukan tugas yang sesuai dengan deskripsi subagent, Claude mendelegasikan ke subagent tersebut, yang bekerja secara independen dan mengembalikan hasil. Untuk melihat penghematan konteks dalam praktik, [visualisasi jendela konteks](/docs/id/context-window) menjelaskan sesi di mana subagent menangani penelitian di jendela terpisahnya sendiri.11Setiap subagent berjalan di jendela konteksnya sendiri dengan prompt sistem khusus, akses alat tertentu, dan izin independen. Ketika Claude menemukan tugas yang sesuai dengan deskripsi subagent, Claude mendelegasikan ke subagent tersebut, yang bekerja secara independen dan mengembalikan hasil. Untuk melihat penghematan konteks dalam praktik, [visualisasi jendela konteks](/docs/id/context-window) menjelaskan sesi di mana subagent menangani penelitian di jendela terpisahnya sendiri.

12 12 

13<Note>13<Note>

14 Subagent bekerja dalam satu sesi. Untuk menjalankan banyak sesi independen secara paralel dan memantaunya dari satu tempat, lihat [agen latar belakang](/docs/id/agent-view). Untuk sesi yang berkomunikasi satu sama lain, lihat [tim agen](/docs/id/agent-teams).14 Subagent bekerja dalam satu sesi. Untuk menjalankan banyak sesi independen secara paralel dan memantaunya dari satu tempat, lihat [agen latar belakang](/docs/id/agent-view). Untuk sesi terpisah yang melewatkan pesan satu sama lain, lihat [pesan lintas sesi](/docs/id/cross-session-messaging). Untuk tim yang terkoordinasi dari sesi yang Claude luncurkan dan awasi, lihat [tim agen](/docs/id/agent-teams).

15</Note>15</Note>

16 16 

17Subagent membantu Anda:17Subagent membantu Anda:


24 24 

25Claude menggunakan deskripsi setiap subagent untuk memutuskan kapan mendelegasikan tugas. Ketika Anda membuat subagent, tulis deskripsi yang jelas sehingga Claude tahu kapan menggunakannya.25Claude menggunakan deskripsi setiap subagent untuk memutuskan kapan mendelegasikan tugas. Ketika Anda membuat subagent, tulis deskripsi yang jelas sehingga Claude tahu kapan menggunakannya.

26 26 

27Claude Code mencakup beberapa subagent bawaan seperti Explore, Plan, dan general-purpose. Anda juga dapat membuat subagent khusus untuk menangani tugas tertentu.27Deskripsi tersebut menggunakan konteks, jadi tetap singkat. Ketika deskripsi gabungan subagent Anda, kecuali yang bawaan, melebihi 15.000 token, Claude Code menampilkan [peringatan saat startup dengan jumlah token total](/docs/id/errors#agent-descriptions-are-over-the-15000-token-limit). Potong bidang `description` subagent Anda, dan pindahkan detail ke prompt sistem setiap subagent, yang hanya dimuat ketika subagent itu berjalan.

28 28 

29<h2 id="built-in-subagents">29<h2 id="built-in-subagents">

30 Subagent bawaan30 Subagent bawaan

31</h2>31</h2>

32 32 

33Claude Code mencakup subagent bawaan yang Claude gunakan secara otomatis jika sesuai. Masing-masing mewarisi izin percakapan induk dengan pembatasan alat tambahan.33Claude Code mencakup subagent bawaan yang Claude gunakan secara otomatis jika sesuai. Masing-masing mewarisi izin percakapan induk; sebagian besar berjalan dengan set alat yang terbatas.

34 34 

35Explore dan Plan melewati file CLAUDE.md Anda dan status git sesi induk untuk menjaga penelitian tetap cepat dan hemat biaya. Setiap subagent bawaan lainnya dan [subagent khusus](#configure-subagents) memuat keduanya. Untuk rincian lengkap tentang apa yang mencapai subagent, lihat [apa yang dimuat saat startup](#what-loads-at-startup).35Explore dan Plan melewati file CLAUDE.md Anda dan status git sesi induk untuk menjaga penelitian tetap cepat dan hemat biaya. Setiap subagent bawaan lainnya dan [subagent khusus](#configure-subagents) memuat keduanya, kecuali definisinya menetapkan bidang [`omitClaudeMd`](#supported-frontmatter-fields) untuk melewati file CLAUDE.md pengguna, proyek, dan lokal. Untuk rincian lengkap tentang apa yang mencapai subagent, lihat [apa yang dimuat saat startup](#what-loads-at-startup).

36 36 

37<Tabs>37<Tabs>

38 <Tab title="Explore">38 <Tab title="Explore">

39 Agen cepat yang dioptimalkan hanya-baca untuk mencari dan menganalisis basis kode.39 Agen cepat yang dioptimalkan hanya-baca untuk mencari dan menganalisis basis kode.

40 40 

41 * **Model**: mewarisi dari percakapan utama, dibatasi pada Opus di Claude API, jadi Explore tidak pernah berjalan pada model yang lebih mahal daripada yang sudah Anda pilih untuk sesi41 * **Model**: mewarisi dari percakapan utama, dibatasi pada Opus di Claude API, jadi Explore tidak pernah berjalan pada model yang lebih mahal daripada yang sudah Anda pilih untuk sesi, kecuali Anda menetapkan `CLAUDE_CODE_SUBAGENT_MODEL` dan [memaksanya ke setiap subagent](#run-every-subagent-on-one-model)

42 * **Tools**: alat hanya-baca; Write dan Edit ditolak42 * **Tools**: alat hanya-baca; Write dan Edit ditolak

43 * **Purpose**: penemuan file, pencarian kode, eksplorasi basis kode43 * **Purpose**: penemuan file, pencarian kode, eksplorasi basis kode

44 44 


54 <Tab title="Plan">54 <Tab title="Plan">

55 Agen penelitian yang digunakan selama [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) untuk mengumpulkan konteks sebelum menyajikan rencana.55 Agen penelitian yang digunakan selama [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) untuk mengumpulkan konteks sebelum menyajikan rencana.

56 56 

57 * **Model**: mewarisi dari percakapan utama57 * **Model**: mewarisi dari percakapan utama, kecuali Anda menetapkan `CLAUDE_CODE_SUBAGENT_MODEL` dan [memaksanya ke setiap subagent](#run-every-subagent-on-one-model)

58 * **Tools**: alat hanya-baca; Write dan Edit ditolak58 * **Tools**: alat hanya-baca; Write dan Edit ditolak

59 * **Purpose**: penelitian basis kode untuk perencanaan59 * **Purpose**: penelitian basis kode untuk perencanaan

60 60 


64 <Tab title="General-purpose">64 <Tab title="General-purpose">

65 Agen yang mampu untuk tugas kompleks multi-langkah yang memerlukan eksplorasi dan tindakan.65 Agen yang mampu untuk tugas kompleks multi-langkah yang memerlukan eksplorasi dan tindakan.

66 66 

67 * **Model**: mewarisi dari percakapan utama67 * **Model**: model [`CLAUDE_CODE_SUBAGENT_MODEL`](#choose-a-model) jika Anda menetapkan satu dan tidak ada yang menetapkan model dengan cara lain, jika tidak model percakapan utama; [Pilih model](#choose-a-model) menyatakan urutan lengkap, dan [Jalankan setiap subagent pada satu model](#run-every-subagent-on-one-model) menunjukkan cara membuat variabel menggantikan sumber-sumber tersebut

68 * **Tools**: semua alat68 * **Tools**: setiap alat [tersedia untuk subagent](#available-tools)

69 * **Purpose**: penelitian kompleks, operasi multi-langkah, modifikasi kode69 * **Purpose**: penelitian kompleks, operasi multi-langkah, modifikasi kode

70 70 

71 Claude mendelegasikan ke general-purpose ketika tugas memerlukan eksplorasi dan modifikasi, penalaran kompleks untuk menafsirkan hasil, atau beberapa langkah yang saling bergantung.71 Claude mendelegasikan ke general-purpose ketika tugas memerlukan eksplorasi dan modifikasi, penalaran kompleks untuk menafsirkan hasil, atau beberapa langkah yang saling bergantung.


75 Claude Code mencakup agen pembantu tambahan untuk tugas tertentu. Ini biasanya dipanggil secara otomatis, jadi Anda tidak perlu menggunakannya secara langsung.75 Claude Code mencakup agen pembantu tambahan untuk tugas tertentu. Ini biasanya dipanggil secara otomatis, jadi Anda tidak perlu menggunakannya secara langsung.

76 76 

77 | Agen | Model | Kapan Claude menggunakannya |77 | Agen | Model | Kapan Claude menggunakannya |

78 | :---------------- | :----- | :--------------------------------------------------------------------------- |78 | :---------------- | :----------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

79 | claude | Tidak ada miliknya sendiri; mengikuti [urutan model](#choose-a-model) ketika Claude menelurkannya sebagai subagent | Ketika tugas tidak sesuai dengan agen yang lebih khusus. Catch-all dengan setiap alat [tersedia untuk subagent](#available-tools). Juga agen default untuk [sesi latar belakang](/docs/id/agent-view) yang dikirim; [mode izin mana yang dimulainya](/docs/id/agent-view#permission-mode-model-and-effort) tergantung pada cara sesi dimulai |

79 | statusline-setup | Sonnet | Ketika Anda menjalankan `/statusline` untuk mengonfigurasi baris status Anda |80 | statusline-setup | Sonnet | Ketika Anda menjalankan `/statusline` untuk mengonfigurasi baris status Anda |

80 | claude-code-guide | Haiku | Ketika Anda mengajukan pertanyaan tentang fitur Claude Code |81 | claude-code-guide | Haiku | Ketika Anda mengajukan pertanyaan tentang fitur Claude Code |

81 </Tab>82 </Tab>


88* Untuk menghapus hanya subagent bawaan `Explore` dan `Plan`, atur [`CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1`](/docs/id/env-vars). Claude membaca dan mengeksplorasi file secara langsung alih-alih mendelegasikan ke mereka. Memerlukan Claude Code v2.1.198 atau lebih baru.89* Untuk menghapus hanya subagent bawaan `Explore` dan `Plan`, atur [`CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1`](/docs/id/env-vars). Claude membaca dan mengeksplorasi file secara langsung alih-alih mendelegasikan ke mereka. Memerlukan Claude Code v2.1.198 atau lebih baru.

89* Dalam [mode non-interaktif](/docs/id/headless) dan [Agent SDK](/docs/id/agent-sdk/overview), atur [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/id/env-vars) untuk menghapus semua tipe bawaan dan menyediakan hanya milik Anda sendiri.90* Dalam [mode non-interaktif](/docs/id/headless) dan [Agent SDK](/docs/id/agent-sdk/overview), atur [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/id/env-vars) untuk menghapus semua tipe bawaan dan menyediakan hanya milik Anda sendiri.

90 91 

92Panggilan alat Agent yang menghilangkan `subagent_type` gagal dengan [`subagent_type is required`](/docs/id/errors#subagent-type-is-required) ketika sesi tidak memiliki subagent `general-purpose` untuk kembali.

93 

91Selain subagent bawaan ini, Anda dapat membuat subagent Anda sendiri dengan prompt khusus, pembatasan alat, mode izin, hooks, dan skills. Bagian berikut menunjukkan cara memulai dan menyesuaikan subagent.94Selain subagent bawaan ini, Anda dapat membuat subagent Anda sendiri dengan prompt khusus, pembatasan alat, mode izin, hooks, dan skills. Bagian berikut menunjukkan cara memulai dan menyesuaikan subagent.

92 95 

93<h2 id="quickstart-create-your-first-subagent">96<h2 id="quickstart-create-your-first-subagent">


139 Use the code-improver agent to suggest improvements in this project142 Use the code-improver agent to suggest improvements in this project

140 ```143 ```

141 144 

142 Claude mendelegasikan ke subagent baru Anda, yang memindai basis kode dan mengembalikan saran perbaikan.145 Claude mendelegasikan ke subagent baru Anda, yang memindai basis kode dan mengembalikan saran perbaikan. Dalam transkrip, delegasi muncul sebagai baris pemanggilan alat yang menunjukkan nama subagent diikuti oleh deskripsi tugas singkat, seperti `code-improver(Suggest code improvements)`.

143 146 

144 Jika Claude tidak dapat menemukan subagent baru, mulai ulang Claude Code dan coba lagi. Ini terjadi hanya ketika `~/.claude/agents/` tidak ada sebelum sesi dimulai, karena sesi yang berjalan tidak mendeteksi direktori `agents` yang baru dibuat.147 Jika Claude tidak dapat menemukan subagent baru, mulai ulang Claude Code dan coba lagi. Ini terjadi hanya ketika `~/.claude/agents/` tidak ada sebelum sesi dimulai, karena sesi yang berjalan tidak mendeteksi direktori `agents` yang baru dibuat.

145 </Step>148 </Step>


177 180 

178Subagent proyek ditemukan dengan berjalan naik dari direktori kerja saat ini, sehingga setiap `.claude/agents/` antara sana dan akar repositori dipindai. Sejak v2.1.178, ketika lebih dari satu direktori bersarang ini mendefinisikan `name` yang sama, Claude Code menggunakan definisi yang paling dekat dengan direktori kerja.181Subagent proyek ditemukan dengan berjalan naik dari direktori kerja saat ini, sehingga setiap `.claude/agents/` antara sana dan akar repositori dipindai. Sejak v2.1.178, ketika lebih dari satu direktori bersarang ini mendefinisikan `name` yang sama, Claude Code menggunakan definisi yang paling dekat dengan direktori kerja.

179 182 

180Direktori yang ditambahkan dengan `--add-dir` juga dipindai: folder `.claude/agents/` di dalam direktori yang ditambahkan dimuat bersama subagent proyek. Lihat [Direktori tambahan](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) untuk jenis konfigurasi lain mana yang dimuat dari `--add-dir`. Untuk berbagi subagent di seluruh proyek tanpa `--add-dir`, gunakan `~/.claude/agents/` atau [plugin](/docs/id/plugins).183Ketika Anda menambahkan direktori dengan `--add-dir` atau `/add-dir`, Claude Code juga memuat folder `.claude/agents/` miliknya, bersama dengan subagent proyek Anda. Lihat [Direktori tambahan](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) untuk jenis konfigurasi lain mana yang dimuat dari `--add-dir`. Untuk berbagi subagent di seluruh proyek tanpa `--add-dir`, gunakan `~/.claude/agents/` atau [plugin](/docs/id/plugins).

181 184 

182**Subagent pengguna** (`~/.claude/agents/`) adalah subagent pribadi yang tersedia di semua proyek Anda.185**Subagent pengguna** (`~/.claude/agents/`) adalah subagent pribadi yang tersedia di semua proyek Anda.

183 186 

184Claude Code memindai `.claude/agents/` dan `~/.claude/agents/` secara rekursif, sehingga Anda dapat mengorganisir definisi ke dalam subfolder seperti `agents/review/` atau `agents/research/`. Jalur subdirektori tidak mempengaruhi cara subagent diidentifikasi atau dipanggil, karena identitas hanya berasal dari bidang frontmatter `name`.187Claude Code memindai `.claude/agents/` dan `~/.claude/agents/` secara rekursif, sehingga Anda dapat mengorganisir definisi ke dalam subfolder seperti `agents/review/` atau `agents/research/`. Jalur subdirektori tidak mempengaruhi cara subagent diidentifikasi atau dipanggil, karena identitas hanya berasal dari bidang frontmatter `name`.

185 188 

186Jaga nilai `name` tetap unik di seluruh pohon: jika dua file dalam satu cakupan mendeklarasikan nama yang sama, Claude Code menyimpan satu dan membuang yang lain tanpa peringatan. Direktori `agents/` plugin juga dipindai secara rekursif. Tidak seperti cakupan proyek dan pengguna, subfolder di dalam direktori `agents/` plugin menjadi bagian dari [pengenal yang dibatasi cakupan](#invoke-subagents-explicitly): file di `agents/review/security.md` dalam plugin `my-plugin` terdaftar sebagai `my-plugin:review:security`.189Jaga nilai `name` tetap unik di seluruh pohon: jika dua file dalam direktori `.claude/agents/` yang sama, termasuk subfolder-nya, mendeklarasikan nama yang sama, Claude Code memuat hanya satu dari mereka, dipilih berdasarkan urutan pembacaan sistem file daripada prioritas yang terdokumentasi. Di seluruh direktori proyek bersarang, definisi yang paling dekat dengan direktori kerja menang, seperti dijelaskan di atas. Pemeriksaan setup [`/doctor`](/docs/id/commands#all-commands) melaporkan file dalam direktori yang sama yang berbagi nama dan menyarankan untuk mengganti nama atau menghapus semua kecuali satu. Sebelum v2.1.205, `/doctor` membuka layar diagnostik yang mencantumkan duplikat dan menunjukkan definisi mana yang aktif.

187 190 

188Pemeriksaan setup [`/doctor`](/docs/id/commands#all-commands) melaporkan file dalam direktori yang sama yang berbagi nama dan menyarankan untuk mengganti nama atau menghapus semua kecuali satu. Sebelum v2.1.205, `/doctor` membuka layar diagnostik yang mencantumkan duplikat dan menunjukkan definisi mana yang aktif.191Direktori `agents/` plugin juga dipindai secara rekursif. Tidak seperti cakupan proyek dan pengguna, subfolder di dalam direktori `agents/` plugin menjadi bagian dari [pengenal yang dibatasi cakupan](#invoke-subagents-explicitly): file di `agents/review/security.md` dalam plugin `my-plugin` terdaftar sebagai `my-plugin:review:security`.

189 192 

190**Subagent yang ditentukan CLI** dilewatkan sebagai JSON saat meluncurkan Claude Code. Mereka hanya ada untuk sesi itu dan tidak disimpan ke disk, menjadikannya berguna untuk pengujian cepat atau skrip otomasi. Anda dapat mendefinisikan beberapa subagent dalam satu panggilan `--agents`:193**Subagent yang ditentukan CLI** dilewatkan sebagai JSON saat meluncurkan Claude Code. Mereka hanya ada untuk sesi itu dan tidak disimpan ke disk, menjadikannya berguna untuk pengujian cepat atau skrip otomasi. Anda dapat mendefinisikan beberapa subagent dalam satu panggilan `--agents`:

191 194 


227 </Tab>230 </Tab>

228</Tabs>231</Tabs>

229 232 

230Flag `--agents` menerima JSON dengan [frontmatter](#supported-frontmatter-fields) yang sama bidang subagent berbasis file: `description`, `prompt`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `isolation`, dan `color`. Gunakan `prompt` untuk prompt sistem, setara dengan badan markdown dalam subagent berbasis file.233Flag `--agents` menerima JSON dengan bidang `prompt` ditambah bidang [frontmatter](#supported-frontmatter-fields) ini: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd`, dan `isolation`. Gunakan `prompt` untuk prompt sistem, setara dengan badan markdown dalam subagent berbasis file.

234 

235Setiap kunci tingkat atas dalam JSON adalah nama agen. Jangan mulai nama dengan `-`.

231 236 

232**Subagent terkelola** digunakan oleh administrator organisasi. Tempatkan file markdown dalam `.claude/agents/` di dalam [direktori pengaturan terkelola](/docs/id/settings#settings-files), menggunakan format frontmatter yang sama dengan subagent proyek dan pengguna. Definisi terkelola mengambil alih subagent proyek dan pengguna dengan nama yang sama.237Untuk apa yang Claude Code lakukan dengan nilai yang tidak dapat dimuat, dan flag serta variabel lingkungan yang melewati pemeriksaan itu, lihat [`Invalid --agents configuration`](/docs/id/errors#invalid-agents-configuration).

233 238 

234**Subagent plugin** berasal dari [plugins](/docs/id/plugins) yang telah Anda instal. Mereka dimuat bersama subagent khusus Anda dan muncul dalam typeahead @-mention di bawah nama yang dibatasi cakupan mereka. Lihat [referensi komponen plugin](/docs/id/plugins-reference#agents) untuk detail tentang membuat subagent plugin.239**Subagent terkelola** digunakan oleh administrator organisasi. Tempatkan file markdown dalam `.claude/agents/` di dalam [direktori pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms), menggunakan format frontmatter yang sama dengan subagent proyek dan pengguna. Definisi terkelola mengambil alih subagent proyek dan pengguna dengan nama yang sama.

240 

241**Subagent plugin** berasal dari [plugins](/docs/id/plugins) yang telah Anda instal. Mereka dimuat secara otomatis bersama subagent khusus Anda dan muncul dalam typeahead @-mention di bawah nama yang dibatasi cakupan mereka. Lihat [referensi komponen plugin](/docs/id/plugins-reference#agents) untuk detail tentang membuat subagent plugin.

235 242 

236<Note>243<Note>

237 Untuk alasan keamanan, subagent plugin tidak mendukung bidang frontmatter `hooks`, `mcpServers`, atau `permissionMode`. Bidang-bidang ini diabaikan saat memuat agen dari plugin. Jika Anda membutuhkannya, salin file agen ke dalam `.claude/agents/` atau `~/.claude/agents/`. Anda juga dapat menambahkan aturan ke [`permissions.allow`](/docs/id/settings#permission-settings) dalam `settings.json` atau `settings.local.json`, tetapi aturan-aturan ini berlaku untuk seluruh sesi, bukan hanya subagent plugin.244 Untuk alasan keamanan, subagent plugin tidak mendukung bidang frontmatter `hooks`, `mcpServers`, atau `permissionMode`. Bidang-bidang ini diabaikan saat memuat agen dari plugin. Jika Anda membutuhkannya, salin file agen ke dalam `.claude/agents/` atau `~/.claude/agents/`. Anda juga dapat menambahkan aturan ke [`permissions.allow`](/docs/id/settings-reference#permissions-allow) dalam `settings.json` atau `settings.local.json`, tetapi aturan-aturan ini berlaku untuk seluruh sesi, bukan hanya subagent plugin.

238</Note>245</Note>

239 246 

240Definisi subagent dari salah satu cakupan ini juga tersedia untuk [tim agen](/docs/id/agent-teams#use-subagent-definitions-for-teammates): saat menelurkan rekan kerja, Anda dapat mereferensikan jenis subagent dan rekan kerja menggunakan `tools` dan `model`-nya, dengan badan definisi ditambahkan ke prompt sistem rekan kerja sebagai instruksi tambahan. Lihat [tim agen](/docs/id/agent-teams#use-subagent-definitions-for-teammates) untuk bidang frontmatter mana yang berlaku pada jalur itu.247Definisi subagent dari salah satu cakupan ini juga tersedia untuk [tim agen](/docs/id/agent-teams#use-subagent-definitions-for-teammates): saat menelurkan rekan kerja, Anda dapat mereferensikan jenis subagent, dan Claude Code menerapkan bagian dari definisi itu ke rekan kerja. Lihat [tim agen](/docs/id/agent-teams#use-subagent-definitions-for-teammates) untuk bagian mana yang berlaku di setiap mode tampilan.

241 248 

242<h3 id="write-subagent-files">249<h3 id="write-subagent-files">

243 Tulis file subagent250 Tulis file subagent


248<Note>255<Note>

249 Claude Code memantau `~/.claude/agents/` dan `.claude/agents/`. Ketika Anda menambah atau mengedit file subagent di disk, atau meminta Claude untuk menulis satu untuk Anda, Claude Code mendeteksi perubahan dalam beberapa detik dan delegasi berikutnya menggunakan definisi yang diperbarui, tanpa perlu restart.256 Claude Code memantau `~/.claude/agents/` dan `.claude/agents/`. Ketika Anda menambah atau mengedit file subagent di disk, atau meminta Claude untuk menulis satu untuk Anda, Claude Code mendeteksi perubahan dalam beberapa detik dan delegasi berikutnya menggunakan definisi yang diperbarui, tanpa perlu restart.

250 257 

251 Dua kasus masih memerlukan restart:258 Tiga kasus masih memerlukan restart:

252 259 

253 * Pemantau hanya mencakup direktori yang ada ketika sesi dimulai, jadi setelah membuat file agen pertama cakupan dalam direktori `agents` baru, restart untuk memuatnya.260 * Pemantau hanya mencakup direktori yang ada ketika sesi dimulai, jadi setelah membuat file agen pertama cakupan dalam direktori `agents` baru, restart untuk memuatnya.

261 * Claude Code tidak memantau `.claude/agents/` di dalam direktori yang ditambahkan dengan `--add-dir` atau `/add-dir`, jadi setelah menambah atau mengedit subagent di sana, restart untuk memuat perubahan.

254 * Sesi yang dimulai dengan `--disable-slash-commands` tidak memantau direktori ini sama sekali.262 * Sesi yang dimulai dengan `--disable-slash-commands` tidak memantau direktori ini sama sekali.

255</Note>263</Note>

256 264 

257```markdown theme={null}265```markdown .claude/agents/code-reviewer.md theme={null}

258---266---

259name: code-reviewer267name: code-reviewer

260description: Reviews code for quality and best practices268description: Reviews code for quality and best practices


266specific, actionable feedback on quality, security, and best practices.274specific, actionable feedback on quality, security, and best practices.

267```275```

268 276 

269Frontmatter mendefinisikan metadata dan konfigurasi subagent. Badan menjadi prompt sistem yang memandu perilaku subagent. Subagent menerima hanya prompt sistem ini (ditambah detail lingkungan dasar seperti direktori kerja), bukan prompt sistem Claude Code lengkap.277Frontmatter mendefinisikan metadata dan konfigurasi subagent. Badan menjadi prompt sistem yang memandu perilaku subagent. Subagent menerima hanya prompt sistem ini ditambah detail lingkungan dasar seperti direktori kerja, bukan prompt sistem Claude Code lengkap.

270 278 

271Dalam [mode non-interaktif](/docs/id/headless), flag [`--append-subagent-system-prompt`](/docs/id/cli-reference#cli-flags) menambahkan teks yang Anda berikan ke akhir prompt sistem setiap subagent, termasuk subagent bersarang. Memerlukan Claude Code v2.1.205 atau lebih baru.279Dalam [mode non-interaktif](/docs/id/headless), lewatkan [`--append-subagent-system-prompt`](/docs/id/cli-reference#cli-flags) untuk menambahkan teks Anda ke akhir prompt sistem setiap subagent, subagent bersarang termasuk, terlepas dari [subagent yang bercabang](#fork-the-current-conversation), yang menggunakan kembali prompt percakapan itu sendiri. Memerlukan Claude Code v2.1.205 atau lebih baru. Jika teks Anda terlalu panjang untuk dilewatkan di baris perintah, simpan ke file dan lewatkan jalur dengan `--append-subagent-system-prompt-file` sebagai gantinya. Flag file memerlukan Claude Code v2.1.261 atau lebih baru.

272 280 

273Subagent dimulai di direktori kerja saat ini percakapan utama. Dalam subagent, perintah `cd` tidak bertahan antara panggilan alat Bash atau PowerShell dan tidak mempengaruhi direktori kerja percakapan utama. Untuk memberikan subagent salinan repositori yang terisolasi sebagai gantinya, atur [`isolation: worktree`](#supported-frontmatter-fields).281Subagent dimulai di direktori kerja saat ini percakapan utama. Dalam subagent, perintah `cd` tidak bertahan antara panggilan alat Bash atau PowerShell dan tidak mempengaruhi direktori kerja percakapan utama. Untuk memberikan subagent salinan repositori yang terisolasi sebagai gantinya, atur [`isolation: worktree`](#supported-frontmatter-fields).

274 282 

275Subagent dengan `isolation: worktree` menjalankan perintah Bash dan PowerShell-nya di dalam worktree-nya. Perintah yang direktori kerjanya diselesaikan ke checkout utama Anda, misalnya karena direktori worktree dihapus saat subagent berjalan, gagal dengan kesalahan. Sebelum v2.1.203, perintah seperti itu dapat berjalan di checkout utama.283Subagent dengan `isolation: worktree` menjalankan perintah Bash dan PowerShell-nya di dalam worktree-nya. Perintah yang direktori kerjanya diselesaikan ke checkout utama Anda, misalnya karena direktori worktree dihapus saat subagent berjalan, gagal dengan kesalahan. Sebelum v2.1.203, perintah seperti itu dapat berjalan di checkout utama.

276 284 

285Pemeriksaan direktori kerja ini mencakup seluruh repositori yang berisi direktori tempat Anda meluncurkan Claude Code. Ketika sesi Anda berjalan dalam [worktree](/docs/id/worktrees) yang ditautkan sendiri, pemeriksaan juga mencakup checkout utama yang worktree itu ditautkan darinya. Sebelum v2.1.210, pemeriksaan hanya mencakup direktori peluncuran itu sendiri. Perintah yang direktori kerjanya diselesaikan di tempat lain dalam repositori yang sama, seperti akar repositori ketika Anda meluncurkan Claude Code dari subdirektori monorepo, berjalan di sana sebagai gantinya dari gagal.

286 

287Untuk perintah Bash, Claude Code juga memeriksa perintah itu sendiri dalam dua cara:

288 

289* Ini memblokir perintah yang mengarahkan git ke checkout utama.

290* Ini menolak perintah ketika tidak dapat memverifikasi dari teks perintah bahwa git apa pun yang dijalankan perintah tetap di dalam worktree, misalnya ketika nama perintah dihitung saat runtime.

291 

292Vektor pengalihan dan aturan bentuk tercantum di bawah [Bagaimana Claude Code memberlakukan isolasi](/docs/id/worktrees#how-claude-code-enforces-isolation). Perintah PowerShell hanya mendapatkan pemeriksaan direktori kerja.

293 

294Perintah [Monitor](/docs/id/tools-reference#monitor-tool) melalui pemeriksaan direktori kerja dan konten perintah yang sama dengan perintah Bash.

295 

296Ketika percakapan utama itu sendiri berjalan terisolasi dalam worktree, Claude Code menerapkan pemeriksaan yang sama ke sesi dan ke setiap subagent yang dihasilkannya, termasuk subagent tanpa `isolation: worktree`; lihat [Bagaimana Claude Code memberlakukan isolasi](/docs/id/worktrees#how-claude-code-enforces-isolation).

297 

277<h4 id="supported-frontmatter-fields">298<h4 id="supported-frontmatter-fields">

278 Bidang frontmatter yang didukung299 Bidang frontmatter yang didukung

279</h4>300</h4>


281Bidang berikut dapat digunakan dalam frontmatter YAML. Hanya `name` dan `description` yang diperlukan.302Bidang berikut dapat digunakan dalam frontmatter YAML. Hanya `name` dan `description` yang diperlukan.

282 303 

283| Bidang | Diperlukan | Deskripsi |304| Bidang | Diperlukan | Deskripsi |

284| :---------------- | :--------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |305| :---------------- | :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

285| `name` | Ya | Pengenal unik menggunakan huruf kecil dan tanda hubung. [Hooks](/docs/id/hooks#subagentstart) menerima nilai ini sebagai `agent_type`. Nama file tidak harus cocok |306| `name` | Ya | Pengenal unik menggunakan huruf kecil dan tanda hubung. [Hooks](/docs/id/hooks#subagentstart) menerima nilai ini sebagai `agent_type`. Nama file tidak harus cocok. Nama tidak dapat berisi `:`, yang dicadangkan untuk [pengenal yang dibatasi cakupan plugin](/docs/id/plugins) seperti `my-plugin:reviewer`. Claude Code tidak memuat file yang namanya berisi satu dan mencatat kesalahan ke debug log. Sebelum v2.1.218, nama seperti itu diterima |

286| `description` | Ya | Kapan Claude harus mendelegasikan ke subagent ini |307| `description` | Ya | Kapan Claude harus mendelegasikan ke subagent ini |

287| `tools` | Tidak | [Alat](#available-tools) yang dapat digunakan subagent. Mewarisi semua alat jika dihilangkan. Jika tidak ada entri dalam daftar yang diselesaikan ke alat, subagent gagal diluncurkan dengan kesalahan yang menyebutkan entri. Untuk memuat Skills ke dalam konteks, gunakan bidang `skills` daripada mencantumkan `Skill` di sini |308| `tools` | Tidak | [Alat](#available-tools) yang dapat digunakan subagent. Mewarisi setiap alat yang tersedia untuk subagent jika dihilangkan. Jika tidak ada entri dalam daftar yang diselesaikan ke alat, subagent biasanya [gagal diluncurkan](/docs/id/errors#agent-would-be-spawned-with-zero-tools) dengan kesalahan yang menyebutkan entri. Untuk memuat Skills ke dalam konteks, gunakan bidang `skills` daripada mencantumkan `Skill` di sini |

288| `disallowedTools` | Tidak | Alat untuk ditolak, dihapus dari daftar yang diwarisi atau ditentukan |309| `disallowedTools` | Tidak | Alat untuk ditolak, dihapus dari daftar yang diwarisi atau ditentukan. Entri dengan penentu, seperti `Bash(git push *)`, masih [menghapus seluruh alat](#available-tools) |

289| `model` | Tidak | [Model](#choose-a-model) untuk digunakan: `sonnet`, `opus`, `haiku`, `fable`, ID model lengkap (misalnya, `claude-opus-4-8`), atau `inherit`. Default ke `inherit` |310| `model` | Tidak | [Model](#choose-a-model) untuk digunakan: `sonnet`, `opus`, `haiku`, `fable`, ID model lengkap seperti `claude-opus-5`, atau `inherit`. Ketika Anda menghilangkannya, Claude Code memilih model dalam [urutan model subagent](#choose-a-model) |

290| `permissionMode` | Tidak | [Mode izin](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, atau `manual` sebagai alias untuk `default`. Alias `manual` memerlukan Claude Code v2.1.200 atau lebih baru. Diabaikan untuk [subagent plugin](#choose-the-subagent-scope) |311| `permissionMode` | Tidak | [Mode izin](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, atau `manual` sebagai alias untuk `default`. Alias `manual` memerlukan Claude Code v2.1.200 atau lebih baru. Diabaikan untuk [subagent plugin](#choose-the-subagent-scope) |

291| `maxTurns` | Tidak | Jumlah maksimum putaran agentic sebelum subagent berhenti |312| `maxTurns` | Tidak | Jumlah maksimum putaran agentic sebelum subagent berhenti. Ketika subagent mencapai batas, Claude Code mengembalikan outputnya ditandai sebagai parsial, dan Claude dapat [melanjutkannya](#resume-subagents) untuk terus. Penandaan parsial memerlukan Claude Code v2.1.246 atau lebih baru |

292| `skills` | Tidak | [Skills](/docs/id/skills) untuk dimuat ke dalam konteks subagent saat startup. Konten skill lengkap disuntikkan, bukan hanya deskripsi. Subagent masih dapat memanggil project, user, dan plugin skills yang tidak tercantum melalui alat Skill |313| `skills` | Tidak | [Skills](/docs/id/skills) untuk dimuat sebelumnya ke dalam konteks subagent saat startup. Konten skill lengkap disuntikkan, bukan hanya deskripsi. Subagent masih dapat memanggil project, user, dan plugin skills yang tidak tercantum melalui alat Skill |

293| `mcpServers` | Tidak | [MCP servers](/docs/id/mcp) tersedia untuk subagent ini. Setiap entri adalah nama server yang mereferensikan server yang sudah dikonfigurasi (misalnya, `"slack"`) atau definisi inline dengan nama server sebagai kunci dan [konfigurasi MCP server](/docs/id/mcp#installing-mcp-servers) lengkap sebagai nilai. Diabaikan untuk [subagent plugin](#choose-the-subagent-scope) |314| `mcpServers` | Tidak | [MCP servers](/docs/id/mcp) tersedia untuk subagent ini. Setiap entri adalah nama server yang mereferensikan server yang sudah dikonfigurasi (misalnya, `"slack"`) atau definisi inline dengan nama server sebagai kunci dan [konfigurasi MCP server](/docs/id/mcp#installing-mcp-servers) lengkap sebagai nilai. Diabaikan untuk [subagent plugin](#choose-the-subagent-scope) |

294| `hooks` | Tidak | [Lifecycle hooks](#define-hooks-for-subagents) yang dibatasi pada subagent ini. Diabaikan untuk [subagent plugin](#choose-the-subagent-scope) |315| `hooks` | Tidak | [Lifecycle hooks](#define-hooks-for-subagents) yang dibatasi pada subagent ini. Diabaikan untuk [subagent plugin](#choose-the-subagent-scope) |

295| `memory` | Tidak | [Cakupan memori persisten](#enable-persistent-memory): `user`, `project`, atau `local`. Memungkinkan pembelajaran lintas sesi |316| `memory` | Tidak | [Cakupan memori persisten](#enable-persistent-memory): `user`, `project`, atau `local`. Memungkinkan pembelajaran lintas sesi |

296| `background` | Tidak | Atur ke `true` untuk selalu menjalankan subagent ini sebagai [background task](#run-subagents-in-foreground-or-background), bahkan ketika Claude memerlukan hasilnya segera. Ketika tidak diatur, Claude memilih, dan sejak v2.1.198 itu menjalankan subagent di latar belakang secara default |317| `background` | Tidak | Atur ke `true` untuk menjaga subagent ini di latar belakang bahkan ketika Claude meminta untuk menjalankannya di latar depan. Ketika [fork mode](#turn-fork-mode-on-or-off) aktif, Claude Code sudah menjalankan subagent yang Claude hasilkan [di latar belakang](#run-subagents-in-foreground-or-background) |

318| `omitClaudeMd` | Tidak | Atur ke `true` untuk meluncurkan subagent ini tanpa file user, project, dan local CLAUDE.md; [file kebijakan terkelola](/docs/id/memory#how-claude-md-files-load) masih dimuat, kecuali untuk [subagent terkelola](#choose-the-subagent-scope). Gunakan untuk subagent yang mengambil semua yang mereka butuhkan dari [prompt delegasi](#what-loads-at-startup). Diabaikan ketika agen berjalan sebagai agen sesi utama melalui `--agent` atau pengaturan `agent`. Memerlukan Claude Code v2.1.271 atau lebih baru |

297| `effort` | Tidak | Tingkat usaha ketika subagent ini aktif. Menimpa tingkat usaha sesi. Default: mewarisi dari sesi. Opsi: `low`, `medium`, `high`, `xhigh`, `max`; tingkat yang tersedia tergantung pada model |319| `effort` | Tidak | Tingkat usaha ketika subagent ini aktif. Menimpa tingkat usaha sesi. Default: mewarisi dari sesi. Opsi: `low`, `medium`, `high`, `xhigh`, `max`; tingkat yang tersedia tergantung pada model |

298| `isolation` | Tidak | Atur ke `worktree` untuk menjalankan subagent dalam [git worktree](/docs/id/worktrees) sementara, memberikannya salinan repositori yang terisolasi yang bercabang secara default dari [cabang default](/docs/id/worktrees#choose-the-base-branch) Anda daripada `HEAD` sesi induk. Worktree secara otomatis dibersihkan jika subagent tidak membuat perubahan |320| `isolation` | Tidak | Atur ke `worktree` untuk menjalankan subagent dalam [git worktree](/docs/id/worktrees) sementara, memberikannya salinan repositori yang terisolasi yang bercabang secara default dari [cabang default](/docs/id/worktrees#choose-the-base-branch) Anda daripada `HEAD` sesi induk. Worktree secara otomatis dibersihkan jika subagent tidak membuat perubahan |

299| `color` | Tidak | Warna tampilan untuk subagent dalam daftar tugas dan transkrip. Menerima `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, atau `cyan` |321| `color` | Tidak | Warna tampilan untuk subagent dalam daftar tugas dan transkrip. Menerima `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, atau `cyan` |

300| `initialPrompt` | Tidak | Auto-submitted sebagai putaran pengguna pertama ketika agen ini berjalan sebagai agen sesi utama (melalui `--agent` atau pengaturan `agent`). [Commands](/docs/id/commands) dan [skills](/docs/id/skills) diproses. Ditambahkan di depan prompt yang disediakan pengguna apa pun |322| `initialPrompt` | Tidak | Auto-submitted sebagai putaran pengguna pertama ketika agen ini berjalan sebagai agen sesi utama (melalui `--agent` atau pengaturan `agent`). [Commands](/docs/id/commands) dan [skills](/docs/id/skills) diproses. Ditambahkan di depan prompt yang disediakan pengguna apa pun |

323| `experimental` | Tidak | Peta opsi eksperimental. Atur kunci `cacheTtl`-nya ke `5m` atau `1h` untuk memilih [lifetime cache prompt](/docs/id/prompt-caching#choose-the-ttl-yourself) untuk permintaan subagent ini, di tempat frontmatter dalam [prioritas lifetime cache](/docs/id/prompt-caching#choose-the-ttl-yourself). Claude Code mengabaikan nilai lain apa pun, mengabaikan `1h` saat langganan Claude Anda menggunakan kredit penggunaan, dan membaca bidang hanya dari file subagent. Memerlukan Claude Code v2.1.248 atau lebih baru |

324 

325Tulis `cacheTtl` di dalam peta `experimental`, bukan di tingkat atas frontmatter.

326 

327```yaml theme={null}

328---

329name: repo-auditor

330description: Audits a large repository and reports what it finds

331experimental:

332 cacheTtl: 1h

333---

334```

335 

336<h4 id="subagent-files-claude-code-skips">

337 File subagent yang Claude Code lewati

338</h4>

339 

340Claude Code melewati file dalam direktori `agents` proyek, pengguna, atau terkelola, atau dalam satu di bawah direktori yang Anda tambahkan dengan `--add-dir`, tanpa melaporkannya dalam sesi, ketika frontmatter memiliki salah satu masalah ini:

341 

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

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

344* **`name` yang dimulai dengan `-` atau berisi `:`**: Claude Code melewati file dan menulis kesalahan ke debug log. Lihat baris `name` dalam tabel di atas.

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

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

347 

348Untuk melihat debug log, jalankan Claude Code dengan `--debug`.

349 

350[Subagent plugin](/docs/id/plugins-reference#agents) yang frontmatter-nya tidak memiliki `name` atau tidak diuraikan masih dimuat, di bawah nama file-nya.

351 

352<h5 id="check-an-agents-directory-before-a-session">

353 Periksa direktori `agents` sebelum sesi

354</h5>

355 

356Untuk menemukan file dalam direktori `agents` yang frontmatter-nya tidak diuraikan, jalankan `claude plugin validate` terhadap direktori, misalnya `.claude/agents` atau `~/.claude/agents`. Claude Code memeriksa hanya [direktori yang Anda beri nama](/docs/id/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest), dan tidak menandai file yang frontmatter-nya diuraikan tetapi tidak memiliki `name`. Memerlukan Claude Code v2.1.233 atau lebih baru.

301 357 

302<h3 id="choose-a-model">358<h3 id="choose-a-model">

303 Pilih model359 Pilih model

304</h3>360</h3>

305 361 

306Bidang `model` mengontrol [model AI](/docs/id/model-config) mana yang digunakan subagent:362Bidang `model` mengontrol model mana yang digunakan subagent:

307 363 

308* **Alias model**: Gunakan salah satu alias yang tersedia: `sonnet`, `opus`, `haiku`, atau `fable`364* **Alias model**: gunakan salah satu alias yang tersedia: `sonnet`, `opus`, `haiku`, atau `fable`

309* **ID model lengkap**: Gunakan ID model lengkap seperti `claude-opus-4-8` atau `claude-sonnet-5`. Menerima nilai yang sama dengan flag `--model`365* **ID model lengkap**: gunakan ID model lengkap seperti `claude-opus-5` atau `claude-sonnet-5`. Menerima nilai yang sama dengan flag `--model`

310* **inherit**: Gunakan model yang sama dengan percakapan utama366* **inherit**: gunakan model yang sama dengan percakapan utama

311* **Dihilangkan**: Jika tidak ditentukan, default ke `inherit` (menggunakan model yang sama dengan percakapan utama)

312 367 

313Ketika Claude memanggil subagent, Claude juga dapat melewatkan parameter `model` untuk invokasi spesifik itu. Claude Code menyelesaikan model subagent dalam urutan ini:368Ketika Claude memanggil subagent, Claude juga dapat melewatkan parameter `model` untuk invokasi spesifik itu. Claude Code menyelesaikan model subagent dalam urutan ini:

314 369 

3151. Variabel lingkungan [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/id/model-config#environment-variables), jika diatur ke alias model atau ID model3701. Parameter `model` per-invokasi

3162. Parameter `model` per-invokasi3712. Frontmatter `model` definisi subagent, di mana `inherit` memilih model percakapan utama

3173. Frontmatter `model` definisi subagent3723. Variabel lingkungan [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/id/model-config#environment-variables), ketika Anda mengaturnya ke alias model atau ID model

3184. Model percakapan utama3734. Model percakapan utama

319 374 

320Sejak v2.1.196, mengatur `CLAUDE_CODE_SUBAGENT_MODEL` ke `inherit` sama dengan membiarkannya tidak diatur: resolusi berlanjut dengan parameter `model` per-invokasi, kemudian frontmatter. Dalam versi sebelumnya, `inherit` memaksa subagent ke model percakapan utama dan mengabaikan kedua sumber itu.375Mengatur `CLAUDE_CODE_SUBAGENT_MODEL` dengan sendirinya tidak mengubah model yang dijalankan subagent Explore dan Plan bawaan. Untuk mengubahnya, lihat [Jalankan setiap subagent pada satu model](#run-every-subagent-on-one-model).

376 

377Sebelum v2.1.251, `CLAUDE_CODE_SUBAGENT_MODEL` datang pertama dalam urutan ini dan menimpa parameter per-invokasi dan frontmatter, termasuk `model: inherit`.

378 

379Mengatur variabel ke `inherit` sama dengan membiarkannya tidak diatur. Sebelum v2.1.196, nilai itu memaksa subagent ke model percakapan utama dan mengabaikan sumber lain.

380 

381Claude Code memeriksa parameter per-invokasi, frontmatter, dan nilai variabel lingkungan terhadap daftar allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) organisasi Anda. Untuk nilai yang diblokir, Claude Code mengganti model lain:

321 382 

322Claude Code memeriksa variabel lingkungan, parameter per-invokasi, dan nilai frontmatter terhadap daftar allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) organisasi Anda. Nilai yang diselesaikan ke model yang dikecualikan dilewati dan subagent berjalan pada model yang diwarisi sebagai gantinya.383* Ketika nilai yang diblokir adalah alias keluarga seperti `opus`, Claude Code menjalankan subagent pada versi terbaru keluarga itu yang daftar allowlist izinkan, mengikuti [aturan substitusi dan cakupan penyedia](/docs/id/model-config#restrict-model-selection) yang sama seperti `/model`. Sebelum v2.1.222, Claude Code menjalankan subagent pada model yang diwarisi untuk alias keluarga yang diblokir juga.

384* Untuk nilai yang diblokir lainnya, pada penyedia di mana substitusi itu tidak beroperasi, atau ketika daftar allowlist tidak mengizinkan versi keluarga apa pun, Claude Code menjalankan subagent pada model yang diwarisi sebagai gantinya. Jika Anda mengatur `CLAUDE_CODE_SUBAGENT_MODEL`, Claude Code mencoba model itu terlebih dahulu, di bawah aturan yang sama ini.

385 

386Dalam sesi interaktif, Claude Code menampilkan peringatan yang menyebutkan model yang diminta dan model yang dijalankan subagent, untuk substitusi apa pun.

387 

388Untuk memeriksa model mana yang dijalankan subagent, jalankan [`/tasks`](/docs/id/commands). Claude Code menyebutkan model pada baris subagent, dan menambahkan [tingkat usaha](/docs/id/model-config#adjust-effort-level) ketika definisi subagent, atau skill yang dihasilkannya, menetapkan [`effort`](#supported-frontmatter-fields). Memerlukan Claude Code v2.1.242 atau lebih baru.

389 

390Parameter `model` per-invokasi juga berlaku ketika subagent [dilanjutkan atau dikirim pesan lanjutan](#resume-subagents), sehingga subagent tetap pada model itu. Sebelum v2.1.211, melanjutkan menghapus nilai per-invokasi dan subagent kembali ke bidang `model` definisinya atau, tanpanya, model percakapan utama.

323 391 

324Sejak v2.1.198, subagent juga mewarisi konfigurasi [extended thinking](/docs/id/model-config#extended-thinking) percakapan utama: jika thinking aktif dalam sesi Anda, itu aktif untuk subagent, dan jika itu mati, itu tetap mati. Tidak ada pengaturan thinking per-subagent. Sebelum v2.1.198, subagent berjalan dengan extended thinking dinonaktifkan terlepas dari pengaturan percakapan utama.392Sejak v2.1.198, subagent juga mewarisi konfigurasi [extended thinking](/docs/id/model-config#extended-thinking) percakapan utama: jika thinking aktif dalam sesi Anda, itu aktif untuk subagent, dan jika itu mati, itu tetap mati. Tidak ada pengaturan thinking per-subagent. Sebelum v2.1.198, subagent berjalan dengan extended thinking dinonaktifkan terlepas dari pengaturan percakapan utama.

325 393 

394<h4 id="run-every-subagent-on-one-model">

395 Jalankan setiap subagent pada satu model

396</h4>

397 

398`CLAUDE_CODE_SUBAGENT_MODEL` adalah default, jadi definisi subagent atau model yang Claude lewatkan masih mengambil alih darinya. Untuk menerapkan satu model ke setiap subagent, [rekan kerja](/docs/id/agent-teams#specify-teammates-and-models), dan [agen workflow](/docs/id/workflows), juga atur `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` ke `1`. Memerlukan Claude Code v2.1.257 atau lebih baru.

399 

400* Jika Anda mengatur kedua variabel, subagent berjalan pada model dalam `CLAUDE_CODE_SUBAGENT_MODEL`.

401* Jika Anda hanya mengatur `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`, subagent berjalan pada model percakapan utama.

402 

403Misalnya, untuk menjalankan setiap subagent pada Haiku, atur kedua variabel dalam blok `env` [file pengaturan](/docs/id/settings):

404 

405```json theme={null}

406{

407 "env": {

408 "CLAUDE_CODE_SUBAGENT_MODEL": "haiku",

409 "CLAUDE_CODE_SUBAGENT_MODEL_FORCE": "1"

410 }

411}

412```

413 

414Untuk memeriksa bahwa pengaturan berlaku, jalankan [`/tasks`](/docs/id/commands) saat subagent berjalan. Baris subagent menunjukkan model yang dijalankannya.

415 

416Sementara `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` [aktif](/docs/id/env-vars), Claude Code mengabaikan bidang `model` dari setiap definisi subagent, termasuk subagent Explore dan Plan bawaan, dan Claude tidak dapat melewatkan model ketika memulai subagent. Dua jenis subagent masih berjalan pada model percakapan utama:

417 

418* [Fork](#fork-the-current-conversation)

419* [Skill yang berjalan dalam subagent](/docs/id/skills#run-skills-in-a-subagent) dengan `model: inherit`

420 

421Ketika Anda hanya mengatur `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`, subagent Explore bawaan menyimpan [batas modelnya](#built-in-subagents).

422 

326<h3 id="control-subagent-capabilities">423<h3 id="control-subagent-capabilities">

327 Kontrol kemampuan subagent424 Kontrol kemampuan subagent

328</h3>425</h3>


333 Alat yang tersedia430 Alat yang tersedia

334</h4>431</h4>

335 432 

336Subagent mewarisi [alat internal](/docs/id/tools-reference) dan alat MCP yang tersedia dalam percakapan utama secara default. Alat berikut bergantung pada UI percakapan utama atau status sesi dan tidak tersedia untuk subagent, bahkan ketika tercantum dalam bidang `tools`:433Subagent mewarisi [alat bawaan](/docs/id/tools-reference) dan alat MCP yang tersedia dalam percakapan utama, dipersempit oleh dua filter: yang pertama menghapus daftar singkat alat dari setiap subagent, dan yang kedua mengurangi set alat bawaan untuk subagent yang berjalan di [latar belakang](#run-subagents-in-foreground-or-background), yang merupakan default. Di macOS, Linux, dan WSL, subagent juga dapat menerima alat Glob dan Grep ketika percakapan utama tidak memilikinya, seperti dijelaskan di bawah [Perilaku alat Glob](/docs/id/tools-reference#glob-tool-behavior). [Fork](#fork-the-current-conversation) melewati kedua filter dan menerima kumpulan alat percakapan utama yang tepat. Filter pertama menghapus alat ini, bahkan ketika tercantum dalam bidang `tools`:

337 434 

435* `Agent`, ketika subagent berada di [batas kedalaman](#let-subagents-spawn-their-own-subagents); dalam [fork](#fork-the-current-conversation) alat tetap tercantum tetapi mengembalikan kesalahan sebagai gantinya dari peneluran

338* `AskUserQuestion`436* `AskUserQuestion`

437* `EndConversation`, yang hanya dapat mengakhiri percakapan utama; lihat [Perilaku alat EndConversation](/docs/id/tools-reference#endconversation-tool-behavior)

339* `EnterPlanMode`438* `EnterPlanMode`

340* `ExitPlanMode`, kecuali [`permissionMode`](#permission-modes) subagent adalah `plan`439* `ExitPlanMode`, kecuali [`permissionMode`](#permission-modes) subagent adalah `plan`

341* `ScheduleWakeup`440* `ScheduleWakeup`

441* `TaskOutput`

342* `WaitForMcpServers`442* `WaitForMcpServers`

443* `Workflow`

444 

445Filter kedua berlaku untuk subagent yang berjalan di latar belakang. Terlepas dari `Agent` dan `ExitPlanMode`, yang mengikuti kondisi filter pertama di mana pun subagent berjalan, subagent latar belakang menyimpan setiap alat MCP tetapi hanya alat bawaan ini: `Read`, `Grep`, `Glob`, `Bash`, `PowerShell`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch`, `TodoWrite`, `Skill`, `ToolSearch`, `EnterWorktree`, `ExitWorktree`, `Monitor`, `TaskStop`, `SendMessage`, dan `Artifact`, plus [`SubagentHandback`](/docs/id/tools-reference) untuk subagent yang melaporkan melaluinya. Claude Code menghapus setiap alat bawaan lainnya dari subagent latar belakang, baik yang diwarisi atau tercantum dalam bidang `tools`, sehingga definisi yang sama dapat diselesaikan ke alat berbeda di latar depan dan latar belakang. Penghapusan tidak melaporkan kesalahan kecuali itu meninggalkan daftar `tools` [diselesaikan ke tidak ada apa-apa](/docs/id/errors#agent-would-be-spawned-with-zero-tools).

446 

447[`ListAgents`](/docs/id/cross-session-messaging) mengikuti filter ini seperti alat bawaan apa pun: subagent latar depan mewarisnya dalam sesi di mana cross-session messaging diaktifkan, dan subagent latar belakang tidak menyimpannya.

448 

449Rekan kerja dalam [tim agen](/docs/id/agent-teams) juga menyimpan alat tugas dan alat cron: `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `CronCreate`, `CronDelete`, dan `CronList`.

450 

451Dalam [sesi tanpa alat Task](/docs/id/tools-reference#task-tool-availability), Claude Code tidak menyediakan alat tugas ke subagent juga, bahkan ketika subagent menjalankan model berbeda. Rekan kerja dalam proses mengikuti sesi Anda dengan cara yang sama, sementara rekan kerja dalam [split pane](/docs/id/agent-teams#choose-a-display-mode) miliknya sendiri berjalan sebagai proses Claude Code terpisah, jadi modelnya sendiri yang memutuskan.

343 452 

344Untuk membatasi alat, gunakan bidang `tools` sebagai allowlist atau bidang `disallowedTools` sebagai denylist. Contoh ini menggunakan `tools` untuk secara eksklusif mengizinkan Read, Grep, Glob, dan Bash. Subagent tidak dapat mengedit file, menulis file, atau menggunakan alat MCP apa pun:453Untuk membatasi alat, gunakan bidang `tools` sebagai allowlist atau bidang `disallowedTools` sebagai denylist. Contoh ini menggunakan `tools` untuk secara eksklusif mengizinkan Read, Grep, Glob, dan Bash. Subagent tidak dapat mengedit file, menulis file, atau menggunakan alat MCP apa pun:

345 454 


356```yaml theme={null}465```yaml theme={null}

357---466---

358name: no-writes467name: no-writes

359description: Inherits every tool except file writes468description: Inherits the available tools except file writes

360disallowedTools: Write, Edit469disallowedTools: Write, Edit

361---470---

362```471```

363 472 

364Jika keduanya diatur, `disallowedTools` diterapkan terlebih dahulu, kemudian `tools` diselesaikan terhadap kumpulan yang tersisa. Alat yang tercantum di keduanya dihapus.473Jika keduanya diatur, `disallowedTools` diterapkan terlebih dahulu, kemudian `tools` diselesaikan terhadap kumpulan yang tersisa. Alat yang tercantum di keduanya dihapus.

365 474 

366Ketika tidak ada dalam daftar `tools` yang diselesaikan ke alat, misalnya karena setiap entri salah eja atau menyebutkan alat yang tidak tersedia untuk subagent, Claude Code menolak untuk meluncurkan subagent dan alat Agent mengembalikan kesalahan yang menyebutkan entri yang tidak diselesaikan. Sebelum v2.1.208, subagent itu diluncurkan tanpa alat dan dapat mengembalikan hasil yang kosong atau membingungkan.475Ketika tidak ada dalam daftar `tools` yang diselesaikan ke alat, misalnya karena setiap entri salah eja atau menyebutkan alat yang tidak tersedia untuk subagent, Claude Code biasanya menolak untuk meluncurkan subagent dan alat Agent mengembalikan kesalahan yang menyebutkan entri yang tidak diselesaikan; lihat [Agent would be spawned with zero tools](/docs/id/errors#agent-would-be-spawned-with-zero-tools) untuk pesan dan cara memperbaiki setiap entri. Sebelum v2.1.208, subagent itu diluncurkan tanpa alat dan dapat mengembalikan hasil yang kosong atau membingungkan.

367 476 

368Kedua bidang menerima pola tingkat server MCP selain nama alat yang tepat: `mcp__<server>` atau `mcp__<server>__*` memberikan atau menghapus setiap alat dari server bernama. Dalam `disallowedTools`, `mcp__*` juga menghapus setiap alat MCP dari server apa pun. Contoh ini menghapus setiap alat dari server MCP `github` sambil menyimpan alat dari server lain dan setiap alat bawaan:477Kedua bidang menerima pola tingkat server MCP selain nama alat yang tepat: `mcp__<server>` atau `mcp__<server>__*` memberikan atau menghapus setiap alat dari server bernama. Dalam `disallowedTools`, `mcp__*` juga menghapus setiap alat MCP dari server apa pun. Contoh ini menghapus setiap alat dari server MCP `github` sambil menyimpan alat dari server lain dan alat bawaan dalam kumpulannya:

369 478 

370```yaml theme={null}479```yaml theme={null}

371---480---


375---484---

376```485```

377 486 

487Entri `disallowedTools` dengan penentu, seperti `Bash(git push *)`, masih menghapus seluruh alat dari subagent, bukan hanya perintah yang cocok. Untuk menyimpan Bash dan memblokir perintah tertentu, tambahkan [aturan penolakan Bash](/docs/id/permissions#bash) seperti `Bash(git push *)` ke `permissions.deny` dalam pengaturan Anda. Aturan berlaku untuk percakapan utama dan subagent.

488 

378<h4 id="restrict-which-subagents-can-be-spawned">489<h4 id="restrict-which-subagents-can-be-spawned">

379 Batasi subagent mana yang dapat dihasilkan490 Batasi subagent mana yang dapat dihasilkan

380</h4>491</h4>


393 504 

394Ini adalah allowlist: hanya subagent `worker` dan `researcher` yang dapat dihasilkan. Jika agen mencoba menelurkan jenis lain, permintaan gagal dan agen hanya melihat jenis yang diizinkan dalam promptnya. Untuk memblokir agen tertentu sambil mengizinkan semua yang lain, gunakan [`permissions.deny`](#disable-specific-subagents) sebagai gantinya.505Ini adalah allowlist: hanya subagent `worker` dan `researcher` yang dapat dihasilkan. Jika agen mencoba menelurkan jenis lain, permintaan gagal dan agen hanya melihat jenis yang diizinkan dalam promptnya. Untuk memblokir agen tertentu sambil mengizinkan semua yang lain, gunakan [`permissions.deny`](#disable-specific-subagents) sebagai gantinya.

395 506 

396Untuk mengizinkan penelur subagent apa pun tanpa pembatasan, gunakan `Agent` tanpa tanda kurung:507Untuk mengizinkan peneluran subagent apa pun tanpa pembatasan, gunakan `Agent` tanpa tanda kurung:

397 508 

398```yaml theme={null}509```yaml theme={null}

399tools: Agent, Read, Bash510tools: Agent, Read, Bash

400```511```

401 512 

402Jika `Agent` dihilangkan dari daftar `tools` sepenuhnya, agen tidak dapat menelurkan subagent apa pun.513Jika Anda menghilangkan `Agent` dari daftar `tools` sepenuhnya, agen tidak dapat menelurkan subagent apa pun dengan alat Agent.

403 514 

404Sintaks allowlist `Agent(agent_type)` hanya berlaku untuk agen yang berjalan sebagai thread utama dengan `claude --agent`. Dalam definisi subagent, mencantumkan `Agent` dalam `tools` memungkinkan subagent itu untuk [menelurkan subagent bersarang](#spawn-nested-subagents), tetapi daftar jenis apa pun di dalam tanda kurung diabaikan.515Sintaks allowlist `Agent(agent_type)` hanya berlaku untuk agen yang berjalan sebagai thread utama dengan `claude --agent`. Dalam definisi subagent, mencantumkan `Agent` dalam `tools` memungkinkan subagent itu untuk menelurkan subagent bersarang sementara [batas kedalaman](#let-subagents-spawn-their-own-subagents) mengizinkannya, tetapi daftar jenis apa pun di dalam tanda kurung diabaikan.

405 516 

406<h4 id="scope-mcp-servers-to-a-subagent">517<h4 id="scope-mcp-servers-to-a-subagent">

407 Cakupan MCP servers ke subagent518 Cakupan MCP servers ke subagent

408</h4>519</h4>

409 520 

410Gunakan bidang `mcpServers` untuk memberikan subagent akses ke [MCP](/docs/id/mcp) servers yang tidak tersedia dalam percakapan utama. Server inline yang ditentukan di sini terhubung saat subagent dimulai dan terputus saat selesai. Referensi string berbagi koneksi sesi induk.521Gunakan bidang `mcpServers` untuk memberikan subagent akses ke [MCP](/docs/id/mcp) servers yang tidak tersedia dalam percakapan utama. Server inline yang ditentukan di sini terhubung ketika subagent dimulai, tunduk pada [aturan kepercayaan untuk folder file agen](#inline-server-trust), dan terputus ketika selesai. Referensi string berbagi koneksi sesi induk.

411 522 

412<Note>523<Note>

413 Bidang `mcpServers` berlaku dalam kedua konteks di mana file agen dapat berjalan:524 Bidang `mcpServers` berlaku dalam kedua konteks di mana file agen dapat berjalan:


415 * Sebagai subagent, dihasilkan melalui alat Agent atau @-mention526 * Sebagai subagent, dihasilkan melalui alat Agent atau @-mention

416 * Sebagai sesi utama, diluncurkan dengan [`--agent`](#invoke-subagents-explicitly) atau pengaturan `agent`527 * Sebagai sesi utama, diluncurkan dengan [`--agent`](#invoke-subagents-explicitly) atau pengaturan `agent`

417 528 

418 Ketika agen adalah sesi utama, definisi server inline terhubung saat startup bersama server dari [`.mcp.json`](/docs/id/mcp) dan file pengaturan.529 Ketika agen adalah sesi utama, definisi server inline terhubung saat startup bersama server dari [`.mcp.json`](/docs/id/mcp) dan file pengaturan, di bawah [aturan kepercayaan yang sama untuk folder file agen](#inline-server-trust). Dalam `/mcp`, server jarak jauh (HTTP atau SSE) yang telah Anda gunakan sebelumnya dapat menampilkan [status `cached`](/docs/id/mcp#managing-your-servers) sebagai gantinya; Claude Code menghubungkannya ketika Claude pertama kali memanggil salah satu alatnya.

419</Note>530</Note>

420 531 

421Setiap entri dalam daftar adalah definisi server inline atau string yang mereferensikan MCP server yang sudah dikonfigurasi dalam sesi Anda:532Setiap entri dalam daftar adalah definisi server inline atau string yang mereferensikan MCP server yang sudah dikonfigurasi dalam sesi Anda:


441 552 

442Untuk menjaga MCP server di luar percakapan utama sepenuhnya dan menghindari deskripsi alatnya mengonsumsi konteks di sana, tentukan secara inline di sini daripada di `.mcp.json`. Subagent mendapatkan alat; percakapan induk tidak.553Untuk menjaga MCP server di luar percakapan utama sepenuhnya dan menghindari deskripsi alatnya mengonsumsi konteks di sana, tentukan secara inline di sini daripada di `.mcp.json`. Subagent mendapatkan alat; percakapan induk tidak.

443 554 

555<span id="inline-server-trust" />Claude Code memuat server inline dari file agen dalam direktori `.claude/agents/` proyek Anda, atau dalam direktori `.claude/agents/` direktori `--add-dir`, hanya setelah Anda [mempercayai folder tempat file agen berasal](/docs/id/permissions#what-runs-before-you-trust-a-folder). Sebelum v2.1.238, Claude Code memuat server ini tanpa memeriksa kepercayaan.

556 

557* **Kepercayaan yang tidak dihitung**: kepercayaan folder induk, dan kepercayaan otomatis yang sesi `-p` atau SDK dapatkan untuk [hooks dalam file pengaturan](/docs/id/permissions#what-runs-before-you-trust-a-folder)

558* **Sampai saat itu**: Claude Code melewati setiap server inline dalam file agen itu dan menulis kunci `projects["<path>"].hasTrustDialogAccepted` yang tepat untuk `~/.claude.json` ke debug log

559* **Direktori `--add-dir`**: direktori di luar repositori workspace terpercaya Anda memerlukan entri kepercayaan sendiri, karena file `.claude/agents/` miliknya tidak mewarisi kepercayaan workspace Anda

560 

561Claude Code memuat dua jenis server tanpa memeriksa kepercayaan untuk folder tempat file agen berasal:

562 

563* Nama yang mereferensikan server yang sudah Anda konfigurasi

564* Server inline dalam file agen dari `~/.claude/agents/`, dalam satu yang Anda lewatkan dengan `--agents` atau opsi SDK `agents`, atau dalam satu yang pengaturan terkelola sediakan

565 

444Sejak v2.1.153, pembatasan MCP yang berlaku untuk sesi utama juga mencakup server yang dideklarasikan dalam frontmatter subagent:566Sejak v2.1.153, pembatasan MCP yang berlaku untuk sesi utama juga mencakup server yang dideklarasikan dalam frontmatter subagent:

445 567 

446* [`--strict-mcp-config`](/docs/id/cli-reference) dan [`--bare`](/docs/id/cli-reference)568* [`--strict-mcp-config`](/docs/id/cli-reference) dan [`--bare`](/docs/id/cli-reference)


455 Mode izin577 Mode izin

456</h4>578</h4>

457 579 

458Bidang `permissionMode` mengontrol bagaimana subagent menangani prompt izin. Subagent mewarisi konteks izin dari percakapan utama dan dapat menimpa mode, kecuali ketika mode induk mengambil alih seperti yang dijelaskan di bawah.580Atur `permissionMode` untuk memilih mode izin yang dijalankan subagent. Gunakan nilai konfigurasi mode, jadi mode Manual adalah `default`. Jika Anda membiarkannya tidak diatur, subagent mewarisi mode percakapan utama, yang dimulai sebagai [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) pada paket Pro, Max, dan Team kecuali pengaturan Anda atau organisasi Anda mengubahnya.

581 

582Mode izin percakapan utama memutuskan apakah Claude Code menggunakan nilai yang Anda atur:

583 

584* Ketika percakapan utama berada dalam `bypassPermissions`, `acceptEdits`, atau [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), subagent berjalan dalam mode yang sama dan Claude Code mengabaikan `permissionMode` yang Anda atur. Di bawah auto mode, pengklasifikasi mengevaluasi panggilan alat subagent dengan aturan blok dan izin percakapan utama. Ketika subagent selesai, pengklasifikasi juga meninjau pekerjaannya dan laporannya yang final sebelum laporan disampaikan, seperti [Bagaimana auto mode menangani subagent](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) menjelaskan.

585* Ketika percakapan utama berada dalam mode `default`, `dontAsk`, atau `plan`, subagent berjalan dalam mode izin yang Anda atur, kecuali `bypassPermissions`. Subagent yang mendeklarasikan `bypassPermissions` menyimpan mode percakapan utama sebagai gantinya. Pengecualian `bypassPermissions` memerlukan Claude Code v2.1.267 atau lebih baru.

586 

587`permissionMode` menerima nilai ini, dan `manual` sebagai alias untuk `default`:

459 588 

460| Mode | Perilaku |589| Mode | Perilaku |

461| :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |590| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

462| `default` | Pemeriksaan izin standar dengan prompt |591| `default` | Mode manual: meminta izin |

463| `acceptEdits` | Auto-terima edit file dan perintah sistem file umum untuk jalur di direktori kerja atau `additionalDirectories` |592| `acceptEdits` | Auto-terima edit file dan perintah sistem file umum untuk jalur di direktori kerja atau `additionalDirectories` |

464| `auto` | [Auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode): pengklasifikasi latar belakang meninjau perintah dan penulisan direktori yang dilindungi |593| `auto` | [Auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode): pengklasifikasi latar belakang meninjau perintah dan penulisan direktori yang dilindungi |

465| `dontAsk` | Auto-tolak prompt izin. Alat yang secara eksplisit diizinkan masih berfungsi; `AskUserQuestion`, alat konektor [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools), dan alat MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool) ditolak bahkan jika Anda telah mengizinkannya |594| `dontAsk` | Auto-tolak prompt izin. Alat yang secara eksplisit diizinkan masih berfungsi; `AskUserQuestion`, alat MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool), dan alat konektor [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools) dalam sesi di mana pengaturan itu mencapai Claude Code ditolak bahkan jika Anda telah mengizinkannya |

466| `bypassPermissions` | Lewati prompt izin |595| `bypassPermissions` | [Lewati prompt izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode). Subagent berjalan dalam mode ini hanya ketika percakapan utama melakukannya |

467| `plan` | Plan mode (eksplorasi hanya-baca) |596| `plan` | Plan mode (eksplorasi hanya-baca) |

468 597 

469<Warning>

470 Gunakan `bypassPermissions` dengan hati-hati. Ini melewati prompt izin, memungkinkan subagent untuk menjalankan operasi tanpa persetujuan, termasuk penulisan ke `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn`, dan `.mvn`.

471 

472 Aturan [`ask` eksplisit](/docs/id/permissions#manage-permissions), alat konektor [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools), alat MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool), dan penghapusan direktori root dan home seperti `rm -rf /` masih meminta. Lihat [permission modes](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) untuk detail.

473</Warning>

474 

475Jika induk menggunakan `bypassPermissions` atau `acceptEdits`, ini mengambil alih dan tidak dapat ditimpa. Jika induk menggunakan [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), subagent mewarisi auto mode dan `permissionMode` apa pun dalam frontmatternya diabaikan: pengklasifikasi mengevaluasi panggilan alat subagent dengan aturan blok dan izin yang sama dengan sesi induk.

476 

477<h4 id="preload-skills-into-subagents">598<h4 id="preload-skills-into-subagents">

478 Preload skills ke dalam subagent599 Preload skills ke dalam subagent

479</h4>600</h4>


494 615 

495Konten lengkap setiap skill yang tercantum disuntikkan ke dalam konteks subagent saat startup. Bidang ini mengontrol skill mana yang dimuat sebelumnya, bukan skill mana yang dapat diakses subagent: tanpanya, subagent masih dapat menemukan dan memanggil project, user, dan plugin skills melalui alat Skill selama eksekusi. Untuk mencegah subagent memanggil skills sama sekali, hilangkan `Skill` dari daftar [`tools`](#available-tools) atau tambahkan ke `disallowedTools`.616Konten lengkap setiap skill yang tercantum disuntikkan ke dalam konteks subagent saat startup. Bidang ini mengontrol skill mana yang dimuat sebelumnya, bukan skill mana yang dapat diakses subagent: tanpanya, subagent masih dapat menemukan dan memanggil project, user, dan plugin skills melalui alat Skill selama eksekusi. Untuk mencegah subagent memanggil skills sama sekali, hilangkan `Skill` dari daftar [`tools`](#available-tools) atau tambahkan ke `disallowedTools`.

496 617 

497Anda tidak dapat preload skills yang menetapkan [`disable-model-invocation: true`](/docs/id/skills#control-who-invokes-a-skill), karena preloading menarik dari set skills yang sama yang dapat diinvokasi Claude. Jika skill yang tercantum hilang atau dinonaktifkan, Claude Code melewatinya dan mencatat peringatan ke debug log.618Anda tidak dapat preload skills yang menetapkan [`disable-model-invocation: true`](/docs/id/skills#control-who-invokes-a-skill), karena preloading menarik dari set skills yang sama yang dapat diinvokasi Claude. Ini termasuk skill `/verify` bundel: hanya Anda yang dapat menjalankannya, jadi itu juga tidak dapat dimuat sebelumnya.

619 

620Jika skill yang tercantum hilang atau dinonaktifkan, misalnya oleh kebijakan organisasi Anda, Claude Code melewatinya dan mencatat peringatan ke debug log.

498 621 

499<Note>622<Note>

500 Ini adalah kebalikan dari [menjalankan skill dalam subagent](/docs/id/skills#run-skills-in-a-subagent). Dengan `skills` dalam subagent, subagent mengontrol prompt sistem dan memuat konten skill. Dengan `context: fork` dalam skill, konten skill disuntikkan ke dalam agen yang Anda tentukan. Keduanya menggunakan sistem yang mendasar yang sama.623 Ini adalah kebalikan dari [menjalankan skill dalam subagent](/docs/id/skills#run-skills-in-a-subagent). Dengan `skills` dalam subagent, subagent mengontrol prompt sistem dan memuat konten skill. Dengan `context: fork` dalam skill, konten skill disuntikkan ke dalam agen yang Anda tentukan. Dalam kedua kasus subagent dimulai tanpa riwayat percakapan Anda.

501</Note>624</Note>

502 625 

503<h4 id="enable-persistent-memory">626<h4 id="enable-persistent-memory">


525| `project` | `.claude/agent-memory/<name-of-agent>/` | pengetahuan subagent spesifik proyek dan dapat dibagikan melalui kontrol versi |648| `project` | `.claude/agent-memory/<name-of-agent>/` | pengetahuan subagent spesifik proyek dan dapat dibagikan melalui kontrol versi |

526| `local` | `.claude/agent-memory-local/<name-of-agent>/` | pengetahuan subagent spesifik proyek tetapi tidak boleh diperiksa ke dalam kontrol versi |649| `local` | `.claude/agent-memory-local/<name-of-agent>/` | pengetahuan subagent spesifik proyek tetapi tidak boleh diperiksa ke dalam kontrol versi |

527 650 

651Memori subagent adalah bagian dari [auto memory](/docs/id/memory#auto-memory): jika Anda mematikan auto memory, dengan pengaturan `autoMemoryEnabled` atau `CLAUDE_CODE_DISABLE_AUTO_MEMORY`, bidang `memory` tidak berpengaruh dan subagent diluncurkan tanpa instruksi memori atau akses alat memori yang dijelaskan di bawah.

652 

528Ketika memori diaktifkan:653Ketika memori diaktifkan:

529 654 

530* Prompt sistem subagent mencakup instruksi untuk membaca dan menulis ke direktori memori.655* Prompt sistem subagent mencakup instruksi untuk membaca dan menulis ke direktori memori.


587exit 0712exit 0

588```713```

589 714 

715Di macOS dan Linux, buat skrip dapat dieksekusi, atau hook gagal sebagai gantinya dari memblokir apa pun:

716 

717```bash theme={null}

718chmod +x ./scripts/validate-readonly-query.sh

719```

720 

721Untuk menguji aturan, minta subagent untuk menjalankan pernyataan `UPDATE`: skrip keluar dengan kode 2, Claude Code memblokir perintah, dan subagent melihat pesan `Blocked: Only SELECT queries are allowed`.

722 

590Lihat [Hook input](/docs/id/hooks#pretooluse-input) untuk skema input lengkap dan [exit codes](/docs/id/hooks#exit-code-output) untuk bagaimana kode keluar mempengaruhi perilaku. Di Windows, tulis skrip hook dalam PowerShell dan tambahkan `shell: powershell` ke entri hook seperti yang ditunjukkan dalam [menjalankan hooks dalam PowerShell](/docs/id/hooks#windows-powershell-tool).723Lihat [Hook input](/docs/id/hooks#pretooluse-input) untuk skema input lengkap dan [exit codes](/docs/id/hooks#exit-code-output) untuk bagaimana kode keluar mempengaruhi perilaku. Di Windows, tulis skrip hook dalam PowerShell dan tambahkan `shell: powershell` ke entri hook seperti yang ditunjukkan dalam [menjalankan hooks dalam PowerShell](/docs/id/hooks#windows-powershell-tool).

591 724 

592<h4 id="disable-specific-subagents">725<h4 id="disable-specific-subagents">

593 Nonaktifkan subagent tertentu726 Nonaktifkan subagent tertentu

594</h4>727</h4>

595 728 

596Anda dapat mencegah Claude menggunakan subagent tertentu dengan menambahkannya ke array `deny` dalam [pengaturan](/docs/id/settings#permission-settings) Anda. Gunakan format `Agent(subagent-name)` di mana `subagent-name` cocok dengan bidang nama subagent.729Anda dapat mencegah Claude menggunakan subagent tertentu dengan menambahkannya ke array `deny` dalam [pengaturan](/docs/id/settings-reference#permission-settings) Anda. Gunakan format `Agent(subagent-name)` di mana `subagent-name` cocok dengan bidang nama subagent.

597 730 

598```json theme={null}731```json theme={null}

599{732{


617 750 

618Subagent dapat mendefinisikan [hooks](/docs/id/hooks) yang berjalan selama siklus hidup subagent. Ada dua cara untuk mengonfigurasi hooks:751Subagent dapat mendefinisikan [hooks](/docs/id/hooks) yang berjalan selama siklus hidup subagent. Ada dua cara untuk mengonfigurasi hooks:

619 752 

620* **Dalam frontmatter subagent**: Tentukan hooks yang hanya berjalan saat subagent tertentu itu aktif753* **Dalam frontmatter subagent**: tentukan hooks yang hanya berjalan saat subagent tertentu itu aktif

621* **Dalam `settings.json`**: Tentukan hooks yang berjalan dalam sesi utama ketika subagent dimulai atau berhenti754* **Dalam `settings.json`**: tentukan hooks tingkat sesi yang juga terjadi di dalam subagent. Peristiwa alat seperti `PreToolUse` dan `PostToolUse` terjadi untuk panggilan alat subagent dengan cara yang sama seperti dalam percakapan utama, dan `SubagentStart` dan `SubagentStop` terjadi ketika subagent dimulai atau selesai

755 

756Hooks dari [file pengaturan, pengaturan kebijakan terkelola, dan plugins](/docs/id/hooks#hook-locations) semuanya berlaku di dalam subagent, jadi hook `PreToolUse` dalam `settings.json` juga berjalan sebelum setiap alat yang digunakan subagent.

622 757 

623<h4 id="hooks-in-subagent-frontmatter">758<h4 id="hooks-in-subagent-frontmatter">

624 Hooks dalam frontmatter subagent759 Hooks dalam frontmatter subagent


630 Frontmatter hooks terjadi ketika agen dihasilkan sebagai subagent melalui alat Agent atau @-mention, dan ketika agen berjalan sebagai sesi utama melalui [`--agent`](#invoke-subagents-explicitly) atau pengaturan `agent`. Dalam kasus sesi-utama mereka berjalan bersama hook apa pun yang ditentukan dalam [`settings.json`](/docs/id/hooks).765 Frontmatter hooks terjadi ketika agen dihasilkan sebagai subagent melalui alat Agent atau @-mention, dan ketika agen berjalan sebagai sesi utama melalui [`--agent`](#invoke-subagents-explicitly) atau pengaturan `agent`. Dalam kasus sesi-utama mereka berjalan bersama hook apa pun yang ditentukan dalam [`settings.json`](/docs/id/hooks).

631</Note>766</Note>

632 767 

768Untuk membiarkan hooks frontmatter subagent tingkat proyek berjalan, terima [dialog kepercayaan workspace](/docs/id/permissions#project-allow-rules-and-workspace-trust) untuk folder yang berisi file agen. Hooks dari subagent tingkat pengguna dalam `~/.claude/agents/` dan dari definisi yang Anda lewatkan dengan `--agents` berjalan tanpa langkah ini. Jika Anda menambahkan folder dengan `--add-dir` dari luar repositori workspace terpercaya Anda, percayai folder itu secara terpisah: hooks `.claude/agents/` miliknya tidak mewarisi kepercayaan workspace Anda.

769 

770Sampai Anda mempercayai folder, subagent masih berjalan, tetapi Claude Code melewati hooks frontmatter-nya dan mencatat kesalahan ke debug log yang menjelaskan cara mempercayai folder. Ini adalah aturan yang lebih ketat daripada aturan untuk hooks dalam file pengaturan: mempercayai folder induk tidak cukup, dan sesi `-p` tidak dihitung sebagai terpercaya. [What runs before you trust a folder](/docs/id/permissions#what-runs-before-you-trust-a-folder) membandingkan keduanya. Sebelum v2.1.218, hooks frontmatter dapat berjalan dari folder yang belum Anda percayai, termasuk dalam sesi non-interaktif.

771 

633Semua [hook events](/docs/id/hooks#hook-events) didukung. Peristiwa paling umum untuk subagent adalah:772Semua [hook events](/docs/id/hooks#hook-events) didukung. Peristiwa paling umum untuk subagent adalah:

634 773 

635| Peristiwa | Input Matcher | Kapan itu terjadi |774| Peristiwa | Input Matcher | Kapan itu terjadi |


658---797---

659```798```

660 799 

661Hooks `Stop` dalam frontmatter secara otomatis dikonversi ke peristiwa `SubagentStop`.800Ketika agen dipanggil sebagai subagent, hooks `Stop` dalam frontmatter secara otomatis dikonversi ke peristiwa `SubagentStop`.

662 801 

663<h4 id="project-level-hooks-for-subagent-events">802<h4 id="project-level-hooks-for-subagent-events">

664 Hooks tingkat proyek untuk peristiwa subagent803 Hooks tingkat proyek untuk peristiwa subagent


711 850 

712Claude secara otomatis mendelegasikan tugas berdasarkan deskripsi tugas dalam permintaan Anda, bidang `description` dalam konfigurasi subagent, dan konteks saat ini. Untuk mendorong delegasi proaktif, sertakan frasa seperti "use proactively" dalam bidang deskripsi subagent Anda.851Claude secara otomatis mendelegasikan tugas berdasarkan deskripsi tugas dalam permintaan Anda, bidang `description` dalam konfigurasi subagent, dan konteks saat ini. Untuk mendorong delegasi proaktif, sertakan frasa seperti "use proactively" dalam bidang deskripsi subagent Anda.

713 852 

853Jaga deskripsi tetap singkat: Claude Code menampilkan peringatan startup ketika deskripsi gabungan subagent Anda melampaui [batas 15.000 token](/docs/id/errors#agent-descriptions-are-over-the-15000-token-limit), dan masih memuat setiap subagent.

854 

714<h3 id="invoke-subagents-explicitly">855<h3 id="invoke-subagents-explicitly">

715 Panggil subagent secara eksplisit856 Panggil subagent secara eksplisit

716</h3>857</h3>


738 879 

739Subagent yang disediakan oleh [plugin](/docs/id/plugins) yang diaktifkan muncul di typeahead dengan nama yang dibatasi, seperti `my-plugin:code-reviewer` atau `my-plugin:review:security` ketika plugin [mengorganisir agen ke dalam subfolder](#choose-the-subagent-scope). Subagent background bernama yang saat ini berjalan dalam sesi juga muncul di typeahead, menunjukkan status mereka di samping nama.880Subagent yang disediakan oleh [plugin](/docs/id/plugins) yang diaktifkan muncul di typeahead dengan nama yang dibatasi, seperti `my-plugin:code-reviewer` atau `my-plugin:review:security` ketika plugin [mengorganisir agen ke dalam subfolder](#choose-the-subagent-scope). Subagent background bernama yang saat ini berjalan dalam sesi juga muncul di typeahead, menunjukkan status mereka di samping nama.

740 881 

741Anda juga dapat mengetik mention secara manual tanpa menggunakan picker: `@agent-<name>` untuk subagent lokal, atau `@agent-` diikuti dengan nama yang dibatasi untuk subagent plugin, misalnya `@agent-my-plugin:code-reviewer`.882Anda juga dapat mengetik mention secara manual tanpa menggunakan picker: `@agent-<name>` untuk subagent lokal, atau `@agent-` diikuti dengan nama yang dibatasi untuk subagent plugin, misalnya `@agent-my-plugin:code-reviewer`. Saat Anda mengetik formulir ini, typeahead menampilkan kecocokan file daripada agen. Penyebutan agen masih diselesaikan saat Anda mengirimkan.

742 883 

743**Jalankan seluruh sesi sebagai subagent.** Lewatkan [`--agent <name>`](/docs/id/cli-reference) untuk memulai sesi di mana thread utama itu sendiri mengambil prompt sistem subagent, pembatasan alat, dan model:884**Jalankan seluruh sesi sebagai subagent.** Lewatkan [`--agent <name>`](/docs/id/cli-reference) untuk memulai sesi di mana thread utama itu sendiri mengambil prompt sistem subagent, pembatasan alat, dan model:

744 885 


746claude --agent code-reviewer887claude --agent code-reviewer

747```888```

748 889 

749Prompt sistem subagent menggantikan prompt sistem Claude Code default sepenuhnya, dengan cara yang sama [`--system-prompt`](/docs/id/cli-reference) melakukannya. File `CLAUDE.md` dan memori proyek masih dimuat melalui aliran pesan normal. Nama agen muncul sebagai `@<name>` di header startup sehingga Anda dapat mengonfirmasi itu aktif.890Prompt sistem subagent menggantikan prompt sistem Claude Code default sepenuhnya, dengan cara yang sama [`--system-prompt`](/docs/id/cli-reference) melakukannya. File `CLAUDE.md` dan memori proyek masih dimuat melalui aliran pesan normal, bahkan ketika definisi agen menetapkan [`omitClaudeMd`](#supported-frontmatter-fields).

891 

892Nama agen muncul sebagai `@<name>` di header startup sehingga Anda dapat mengonfirmasi itu aktif.

750 893 

751Ini berfungsi dengan subagent bawaan dan khusus, dan pilihan bertahan ketika Anda melanjutkan sesi.894Ini berfungsi dengan subagent bawaan dan khusus, dan pilihan bertahan ketika Anda melanjutkan sesi: Claude Code memulihkan pembatasan alat dan model agen bersama dengan percakapan. Jika agen tidak lagi ada saat Anda melanjutkan, sesi berlanjut dengan alat default dan menampilkan [peringatan yang menyebutkan agen](/docs/id/errors#session-agent-no-longer-available). Untuk prompt sistem dalam kedua kasus, lihat [Bendera prompt sistem dalam percakapan yang dilanjutkan](/docs/id/cli-reference#system-prompt-flags-in-resumed-conversations).

752 895 

753Untuk subagent yang disediakan plugin, Anda dapat melewatkan hanya nama agen dan Claude Code akan menemukannya:896Untuk subagent yang disediakan plugin, Anda dapat melewatkan hanya nama agen dan Claude Code akan menemukannya:

754 897 


781Subagent dapat berjalan di foreground atau background:924Subagent dapat berjalan di foreground atau background:

782 925 

783* **Subagent foreground** memblokir percakapan utama sampai selesai. Prompt izin dilewatkan kepada Anda saat muncul.926* **Subagent foreground** memblokir percakapan utama sampai selesai. Prompt izin dilewatkan kepada Anda saat muncul.

784* **Subagent background** berjalan secara bersamaan sementara Anda terus bekerja. Mulai dari v2.1.186, ketika subagent background mencapai panggilan alat yang memerlukan izin, prompt muncul di sesi utama Anda dan menyebutkan subagent yang bertanya. Setujui untuk membiarkan subagent melanjutkan, atau tekan Esc untuk menolak panggilan alat itu saja tanpa menghentikan subagent. Sebelum v2.1.186, subagent background auto-deny setiap panggilan alat yang sebaliknya akan meminta.927* **Subagent background** berjalan secara bersamaan sementara Anda terus bekerja. Ketika subagent background mencapai panggilan alat yang memerlukan izin, Claude Code menampilkan prompt di sesi utama Anda dan menyebutkan subagent yang bertanya. Setujui untuk membiarkan subagent melanjutkan, atau tekan Esc untuk menolak panggilan alat itu saja tanpa menghentikan subagent. Sebelum v2.1.186, subagent background auto-deny setiap panggilan alat yang sebaliknya akan meminta.

928 

929Untuk setiap subagent yang Claude hasilkan dengan alat Agent, Claude Code memilih foreground atau background dari kasus pertama yang berlaku:

930 

931* Jika anggota [tim agen](/docs/id/agent-teams#limitations) dalam proses yang menghasilkan subagent, Claude Code menjalankannya di foreground. Claude Code menolak dengan kesalahan untuk menghasilkan subagent anggota tim yang definisinya menetapkan [`background: true`](#supported-frontmatter-fields). Di mana [fork mode](#turn-fork-mode-on-or-off) mati dan Anda belum [mematikan background tasks](/docs/id/env-vars), Claude Code juga menolak dengan kesalahan ketika anggota tim menetapkan `run_in_background: true`.

932* Jika Anda menetapkan [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/id/env-vars) ke `1`, Claude Code menjalankan subagent di foreground, dalam setiap jenis sesi dan apakah fork mode aktif atau tidak.

933* Di mana [fork mode](#turn-fork-mode-on-or-off) aktif, seperti yang terjadi secara default dalam sesi interaktif, Claude Code menjalankan subagent di background, subagent fork dan non-fork sama-sama, dan Claude tidak dapat meminta foreground.

934* Di mana fork mode mati, Claude menjalankan subagent di background secara default dan di foreground ketika memerlukan hasil sebelum melanjutkan. Fork mode mati dalam [mode non-interaktif](/docs/id/headless) dengan `-p` dan dalam Agent SDK kecuali Anda mengaktifkannya. Untuk menjaga subagent tertentu di background bahkan ketika Claude menginginkan hasil, atur bidang frontmatter [`background`](#supported-frontmatter-fields) ke `true`.

935 

936Untuk skill dengan `context: fork`, Claude Code mengikuti aturan dalam [Jalankan skills dalam subagent](/docs/id/skills#run-skills-in-a-subagent) sebagai gantinya, apakah fork mode aktif atau tidak.

937 

938Subagent background berjalan dengan [set alat bawaan yang lebih kecil](#available-tools) daripada subagent foreground, kecuali untuk fork percakapan dan subagent foreground yang [dilanjutkan](#resume-subagents).

785 939 

786Mulai dari v2.1.198, subagent berjalan di background secara default. Claude menjalankan subagent di foreground ketika memerlukan hasil sebelum melanjutkan. Default mengubah di mana subagent berjalan, bukan apa yang diizinkan untuk dilakukan: subagent background masih menampilkan setiap prompt izin di sesi utama Anda. Sebelum v2.1.198, Claude memilih antara foreground dan background berdasarkan tugas.940Subagent background menampilkan setiap prompt izin di sesi utama Anda. Ketika Anda menjawab salah satu prompt tersebut dengan pilihan yang berlangsung melampaui panggilan alat itu, seperti hibah yang berlangsung untuk sisa sesi, Claude Code menerapkan jawaban Anda ke seluruh sesi, termasuk percakapan utama Anda.

941 

942Subagent background dapat meninggalkan perintah [Bash atau PowerShell](/docs/id/tools-reference#background-commands) background [berjalan melampaui akhir giliran](/docs/id/interactive-mode#how-backgrounding-works). Ketika perintah itu berakhir, Claude Code mengirim notifikasi ke subagent.

943 

944Hasil subagent background mencapai Claude sebagai notifikasi penyelesaian dalam giliran yang lebih baru. Claude menunggu notifikasi itu sebelum melaporkan hasil subagent, dan jika Anda bertanya tentang kemajuan terlebih dahulu, itu melaporkan bahwa subagent masih berjalan. Sebelum v2.1.211, Claude kadang melaporkan hasil untuk subagent background yang belum selesai.

787 945 

788Anda juga dapat mengarahkan ini sendiri:946Anda juga dapat mengarahkan ini sendiri:

789 947 

790* Minta Claude untuk menjalankan tugas di background atau di foreground948* Di mana fork mode mati, minta Claude untuk menjalankan tugas di background atau di foreground

791* Tekan **Ctrl+B** untuk menempatkan tugas yang sedang berjalan di background949* Tekan **Ctrl+B** untuk menempatkan tugas yang sedang berjalan di background

792 950 

793Subagent background yang selesai tetap terdaftar dalam [`/tasks`](/docs/id/commands), ditandai selesai dan diurutkan di bawah pekerjaan yang sedang berjalan, sampai sesi membersihkan daftar tugasnya. Tampilan detailnya tetap terbuka ketika subagent selesai. Subagent yang gagal atau yang Anda hentikan meninggalkan daftar. Sebelum v2.1.208, subagent yang selesai meninggalkan daftar saat itu selesai dan tampilan detailnya ditutup.951Claude Code menghapus baris subagent background dari panel subagent di bawah input prompt dengan salah satu dari dua cara, tergantung bagaimana subagent berakhir:

952 

953* Ketika subagent selesai dengan sukses, Claude Code menghapus barisnya segera dan, kecuali dalam [mode pembaca layar](/docs/id/accessibility), menampilkan `/tasks to see subagents` di footer selama 30 detik. Selama 30 detik itu, jalankan [`/tasks`](/docs/id/commands) dan tekan `Enter` pada subagent untuk membuka transkrip. Sebelum v2.1.232, Claude Code menyimpan baris selama 30 detik setelah subagent selesai, sama seperti yang gagal, dan tidak menampilkan petunjuk footer.

954* Ketika subagent gagal atau Anda menghentikannya, Claude Code menyimpan barisnya selama 30 detik. Untuk menghapus baris lebih cepat, pilih dan tekan `x`.

955 

956Subagent background yang selesai tetap terdaftar dalam [`/tasks`](/docs/id/commands), ditandai selesai dan diurutkan di bawah pekerjaan yang sedang berjalan, selama 30 detik yang sama dengan petunjuk footer. Tampilan detailnya tetap terbuka ketika subagent selesai. Subagent yang gagal atau yang Anda hentikan meninggalkan daftar. Sebelum v2.1.208, subagent yang selesai meninggalkan daftar saat itu selesai dan tampilan detailnya ditutup.

794 957 

795Untuk menonaktifkan semua fungsionalitas background task, atur variabel lingkungan `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` ke `1`. Lihat [Environment variables](/docs/id/env-vars).958<h3 id="subagent-names">

959 Nama subagent

960</h3>

961 

962Claude dapat memberi subagent nama dengan melewatkan parameter `name` pada panggilan alat Agent, dan dapat melakukannya sendiri, tanpa bertanya kepada Anda terlebih dahulu. Nama membuat subagent dapat dialamatkan: Claude dapat [mengirim pesan atau melanjutkannya berdasarkan nama](#resume-subagents) setelah selesai.

796 963 

797Ketika [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) diatur ke `1`, setiap spawn subagent berjalan di background dan bidang frontmatter `background` tidak berpengaruh, karena fork mode menghapus parameter `run_in_background` dari alat `Agent`. `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` mengambil alih fork mode dan menjaga spawn subagent di foreground.964Dalam sesi interaktif dengan [tim agen](/docs/id/agent-teams) diaktifkan, subagent yang Claude hasilkan dari percakapan utama dengan `name` diluncurkan sebagai anggota tim sebagai gantinya, kecuali panggilan adalah [fork](#fork-the-current-conversation) atau melewatkan `isolation` pada panggilan itu sendiri. Nilai `isolation` dalam frontmatter subagent tidak mencegahnya, dan anggota tim kemudian berjalan di direktori kerja sesi utama. Lihat [Bagaimana Claude memulai tim agen](/docs/id/agent-teams#how-claude-starts-agent-teams).

798 965 

799<h3 id="api-errors-in-subagents">966<h3 id="api-errors-in-subagents">

800 Kesalahan API dalam subagent967 Kesalahan API dalam subagent

801</h3>968</h3>

802 969 

803Mulai dari v2.1.199, subagent yang berjalan berakhir pada kesalahan API, seperti batas penggunaan atau kesalahan server berulang, melaporkan kegagalan itu kembali ke Claude daripada mengembalikan teks kesalahan seolah-olah itu adalah temuan subagent. Apa yang Claude terima tergantung di mana subagent berjalan:970Ketika sesuatu [memotong respons subagent di tengah-aliran](/docs/id/errors#the-response-above-may-be-incomplete), dan respons parsial berisi teks tetapi tidak ada panggilan alat, Claude Code meminta subagent untuk melanjutkan daripada mengakhiri run. Ini terjadi dalam sesi interaktif juga. Run berakhir pada kesalahan hanya setelah kelanjutan itu habis.

971 

972Mulai dari v2.1.199, subagent yang run-nya berakhir pada kesalahan API, seperti batas penggunaan atau kesalahan server berulang, melaporkan kegagalan itu kembali ke Claude daripada mengembalikan teks kesalahan seolah-olah itu adalah temuan subagent. Apa yang Claude terima tergantung di mana subagent berjalan:

804 973 

805* **Foreground**: jika batas laju, kelebihan beban, atau kesalahan server memotong subagent yang sudah menghasilkan output teks, alat Agent mengembalikan output parsial itu dengan catatan bahwa subagent dipotong dan tidak menyelesaikan tugasnya. Subagent yang tidak menghasilkan apa pun, atau yang output-nya hanya panggilan alat, gagal dengan [`Agent terminated early due to an API error`](/docs/id/errors#agent-terminated-early-due-to-an-api-error), diikuti oleh detail kesalahan. Dalam v2.1.199, batas laju, kelebihan beban, atau kesalahan server yang memotong bentuk tool-calls-only mengembalikan hasil parsial kosong yang hanya berisi catatan cut-off sebagai gantinya.974* **Foreground**: jika batas laju, kelebihan beban, atau kesalahan server memotong subagent yang sudah menghasilkan output teks, alat Agent mengembalikan output parsial itu dengan catatan bahwa subagent dipotong dan tidak menyelesaikan tugasnya. Subagent yang tidak menghasilkan apa pun, atau yang output-nya hanya panggilan alat, gagal dengan [`Agent terminated early due to an API error`](/docs/id/errors#agent-terminated-early-due-to-an-api-error), diikuti oleh detail kesalahan. Dalam v2.1.199, batas laju, kelebihan beban, atau kesalahan server yang memotong bentuk tool-calls-only mengembalikan hasil parsial kosong yang hanya berisi catatan cut-off sebagai gantinya.

806* **Background**: subagent ditandai gagal, dan pesan yang Claude terima saat berakhir menyebutkan kesalahan API dan menyertakan output terakhir subagent, jadi pekerjaan parsial tidak hilang.975* **Background**: subagent ditandai gagal, dan pesan yang Claude terima saat berakhir menyebutkan kesalahan API dan menyertakan output terakhir subagent, jadi pekerjaan parsial tidak hilang.

807 976 

977Ketika Anda mengonfigurasi [rantai model fallback](/docs/id/model-config#fallback-model-chains) dan subagent mengalami kegagalan yang dicakup rantai, seperti model-nya tidak tersedia, Claude Code beralih subagent ke model pertama dalam rantai yang menerima permintaan. Subagent terus bekerja daripada berakhir pada kesalahan.

978 

808Setelah kesalahan API yang mendasar hilang, minta Claude untuk mencoba ulang tugas atau [lanjutkan subagent](#resume-subagents).979Setelah kesalahan API yang mendasar hilang, minta Claude untuk mencoba ulang tugas atau [lanjutkan subagent](#resume-subagents).

809 980 

981<h3 id="subagent-output-scanning">

982 Pemindaian output subagent

983</h3>

984 

985Claude Code memindai laporan akhir setiap subagent sebelum Claude membacanya. Subagent mungkin telah membaca file, halaman web, atau output perintah yang tidak pernah Anda tinjau, dan teks dari sumber tersebut dapat membawa instruksi yang ditujukan ke percakapan utama. Pemindaian tidak pernah menghapus atau menulis ulang apa pun; itu membuat dua jenis perubahan yang mungkin Anda perhatikan dalam laporan:

986 

987* **Penyisipan backslash**: pemindaian menyisipkan backslash ke dalam teks yang meniru output Claude Code itu sendiri, seperti tag `<system-reminder>` atau baris yang dimulai dengan `Human:` atau `Assistant:`, sehingga peniruan dibaca sebagai teks biasa daripada disalahartikan sebagai bagian dari percakapan.

988* **Baris penanda**: pemindaian menambahkan baris yang dimulai dengan `[harness: subagent output matched instruction-shaped pattern(s):` ketika laporan meniru tag seperti `<system-reminder>` atau menyebutkan pengaturan izin seperti `bypassPermissions` atau `--dangerously-skip-permissions`. Penyebutan pengaturan izin mendapatkan baris penanda, tetapi teks itu sendiri tetap seperti yang ditulis.

989 

990Pemindaian tidak menilai apakah konten berbahaya, dan itu tidak mengubah apa yang dapat dilakukan instruksi dalam laporan: panggilan alat yang dilaporkan mengarahkan Claude untuk membuat masih melalui [pemeriksaan izin](/docs/id/permissions) sesi dan [sandboxing](/docs/id/sandboxing). Ini bukan pengganti untuk [membatasi apa yang dapat dijangkau subagent](#control-subagent-capabilities).

991 

992<Note>

993 Pemindaian output subagent memerlukan Claude Code v2.1.210 atau lebih baru.

994</Note>

995 

810<h3 id="common-patterns">996<h3 id="common-patterns">

811 Pola umum997 Pola umum

812</h3>998</h3>


837 Ketika subagent selesai, hasil mereka kembali ke percakapan utama Anda. Menjalankan banyak subagent yang masing-masing mengembalikan hasil terperinci dapat mengonsumsi konteks yang signifikan.1023 Ketika subagent selesai, hasil mereka kembali ke percakapan utama Anda. Menjalankan banyak subagent yang masing-masing mengembalikan hasil terperinci dapat mengonsumsi konteks yang signifikan.

838</Warning>1024</Warning>

839 1025 

840Untuk tugas yang memerlukan paralelisme berkelanjutan atau melebihi jendela konteks Anda, [tim agen](/docs/id/agent-teams) memberikan setiap pekerja konteksnya sendiri yang independen.1026Untuk pekerjaan yang perlu terus berjalan secara paralel atau tidak akan muat dalam satu jendela konteks, jalankan dalam [sesi terpisah](/docs/id/agents) dan biarkan Claude [meneruskan temuan di antara mereka](/docs/id/cross-session-messaging).

841 1027 

842<h4 id="chain-subagents">1028<h4 id="chain-subagents">

843 Rantai subagent1029 Rantai subagent


858* Tugas memerlukan bolak-balik yang sering atau penyempurnaan iteratif1044* Tugas memerlukan bolak-balik yang sering atau penyempurnaan iteratif

859* Beberapa fase berbagi konteks yang signifikan, seperti perencanaan, implementasi, dan pengujian1045* Beberapa fase berbagi konteks yang signifikan, seperti perencanaan, implementasi, dan pengujian

860* Anda membuat perubahan cepat dan tertarget1046* Anda membuat perubahan cepat dan tertarget

861* Latensi penting. Subagent dimulai segar dan mungkin memerlukan waktu untuk mengumpulkan konteks1047* Latensi penting. Subagent yang bukan [fork](#fork-the-current-conversation) dimulai segar dan mungkin memerlukan waktu untuk mengumpulkan konteks

862 1048 

863Gunakan **subagent** ketika:1049Gunakan **subagent** ketika:

864 1050 


868 1054 

869Pertimbangkan [Skills](/docs/id/skills) sebagai gantinya ketika Anda menginginkan prompt atau alur kerja yang dapat digunakan kembali yang berjalan dalam konteks percakapan utama daripada konteks subagent yang terisolasi.1055Pertimbangkan [Skills](/docs/id/skills) sebagai gantinya ketika Anda menginginkan prompt atau alur kerja yang dapat digunakan kembali yang berjalan dalam konteks percakapan utama daripada konteks subagent yang terisolasi.

870 1056 

871Untuk pertanyaan cepat tentang sesuatu yang sudah ada dalam percakapan Anda, gunakan [`/btw`](/docs/id/interactive-mode#side-questions-with-%2Fbtw) sebagai gantinya dari subagent. Ini melihat konteks penuh Anda tetapi tidak memiliki akses alat, dan jawabannya dibuang daripada ditambahkan ke riwayat.1057Untuk pertanyaan tentang sesuatu yang sudah ada dalam percakapan Anda, gunakan [`/btw`](/docs/id/interactive-mode#side-questions-with-%2Fbtw) sebagai gantinya dari subagent. Ini melihat konteks penuh Anda tetapi tidak memiliki akses alat, dan jawabannya tidak ditambahkan ke riwayat.

872 1058 

873<h3 id="spawn-nested-subagents">1059<h3 id="let-subagents-spawn-their-own-subagents">

874 Hasilkan subagent bersarang1060 Biarkan subagent menghasilkan subagent mereka sendiri

875</h3>1061</h3>

876 1062 

877Mulai dari Claude Code v2.1.172, subagent dapat menghasilkan subagent-nya sendiri. Gunakan ini ketika tugas yang didelegasikan itu sendiri terbagi menjadi subtask paralel, seperti subagent reviewer yang mengirimkan verifier per temuan, sehingga output perantara tidak pernah mencapai percakapan utama Anda. Hanya ringkasan subagent tingkat atas yang kembali kepada Anda.1063Secara default, subagent dapat menghasilkan subagent-nya sendiri, hingga tiga lapisan di bawah percakapan utama. Pada batas kedalaman, Claude Code menahan alat `Agent` dari setiap subagent kecuali [fork](#fork-the-current-conversation), jadi subagent pada batas melakukan pekerjaan yang didelegasikan itu sendiri dan mengembalikan satu ringkasan. Fork pada batas menyimpan `Agent` dalam daftar alat yang diwariskan, tetapi alat mengembalikan kesalahan daripada menghasilkan.

878 1064 

879Subagent bersarang dikonfigurasi dengan cara yang sama seperti subagent tingkat atas dan diselesaikan dari scope yang sama.1065Subagent bersarang cocok untuk tugas yang didelegasikan yang itu sendiri terbagi menjadi subtask paralel, seperti subagent reviewer yang mengirimkan verifier per temuan. Dalam sesi interaktif, hanya ringkasan subagent tingkat atas yang kembali kepada Anda dan output perantara tetap keluar dari percakapan utama Anda: subagent yang meluncurkan subagent background menunggu hasil mereka sebelum selesai. Dalam [mode non-interaktif](/docs/id/headless) dan Agent SDK, subagent peluncur tidak menunggu, jadi subagent background bersarang yang selesai setelah peluncurnya telah berakhir melaporkan ke percakapan utama Anda sebagai gantinya.

880 1066 

881Panel subagent di bawah input prompt menunjukkan pohon lengkap: setiap baris menampilkan hitungan `(+N)` keturunan, dan mulai dari v2.1.193, membuka baris menunjukkan saudara dan anak langsung subagent itu dengan jalur kembali ke `main`.1067Untuk mengubah batas, atur [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/id/env-vars) ke jumlah lapisan subagent yang Anda inginkan di bawah percakapan utama Anda. Misalnya, entri ini dalam [`settings.json`](/docs/id/settings) membatasi nesting pada dua lapisan:

882 1068 

883Kedalaman dihitung sebagai jumlah level subagent di bawah percakapan utama, terlepas dari apakah setiap level berjalan di foreground atau background. Subagent pada kedalaman lima tidak menerima alat Agent dan tidak dapat menghasilkan lebih lanjut. Batasnya tetap dan tidak dapat dikonfigurasi.1069```json theme={null}

1070{

1071 "env": {

1072 "CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH": "2"

1073 }

1074}

1075```

1076 

1077Dengan nilai ini, subagent Anda dapat mendelegasikan ke lapisan kedua mereka sendiri, dan lapisan kedua itu tidak dapat mendelegasikan lebih lanjut. Atur `1` untuk mematikan nesting.

1078 

1079Subagent bersarang dikonfigurasi dengan cara yang sama seperti subagent tingkat atas dan diselesaikan dari [scope](#choose-the-subagent-scope) yang sama. Untuk menjaga satu subagent agar tidak menghasilkan sementara nesting aktif, seperti reviewer yang harus tetap read-only, hilangkan `Agent` dari daftar [`tools`](#available-tools) atau tambahkan ke `disallowedTools`.

1080 

1081Claude Code menampilkan subagent bersarang sebagai pohon dalam panel subagent di bawah input prompt dan menandai setiap baris yang masih memiliki keturunan dalam panel dengan hitungan `(+N)` mereka. Buka baris untuk melihat saudara dan anak langsung subagent itu dengan jalur kembali ke `main`.

1082 

1083<Note>

1084 Versi sebelumnya menggunakan default yang berbeda:

1085 

1086 * **v2.1.172 hingga v2.1.216**: subagent dapat bersarang secara default, hingga lima lapisan dalam, dan batas tidak dapat diubah.

1087 * **v2.1.217 hingga v2.1.218**: batas default ke satu, jadi subagent tidak dapat menghasilkan miliknya sendiri kecuali Anda menaikkannya; v2.1.219 menaikkan default ke tiga.

1088</Note>

1089 

1090<h3 id="concurrent-subagent-limit">

1091 Batas subagent bersamaan

1092</h3>

1093 

1094Dua batas mengontrol penggunaan subagent, masing-masing dengan variabelnya sendiri: yang ini menghentikan Claude dari menghasilkan lebih banyak subagent sementara terlalu banyak berjalan, dan [batas kedalaman](#let-subagents-spawn-their-own-subagents) membatasi seberapa dalam subagent bersarang. Tidak ada batas pada jumlah total subagent yang dapat Claude hasilkan selama sesi.

1095 

1096Secara default, ketika 20 subagent berjalan dalam sesi, menghasilkan yang lain dengan alat Agent gagal dengan `Concurrent subagent limit reached`, dan kesalahan memberi tahu Claude untuk tidak mencoba ulang. Menghasilkan berhasil lagi ketika hitungan yang berjalan turun di bawah batas. Untuk mengubah batas, atur [`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`](/docs/id/env-vars) ke bilangan bulat positif apa pun. Sesi dengan [ultracode](/docs/id/model-config#adjust-effort-level) aktif dikecualikan: batas tidak diterapkan di sana. Memerlukan Claude Code v2.1.217 atau lebih baru.

884 1097 

885Mulai dari Claude Code v2.1.187, kedalaman subagent background diperbaiki ketika pertama kali dihasilkan, dan melanjutkan nanti tidak mengubah kedalaman itu. Misalnya, jika percakapan utama Anda menghasilkan subagent A, dan A menghasilkan subagent background B pada kedalaman dua, B masih pada kedalaman dua ketika Anda melanjutkannya langsung dari percakapan utama. Melanjutkan subagent dari konteks yang lebih dangkal tidak membiarkannya menghasilkan level tambahan yang batas kedalaman sudah cegah.1098Batas hanya memblokir subagent yang Claude hasilkan dengan alat Agent, tetapi run lain menempati slot yang sama:

886 1099 

887Untuk mencegah subagent tertentu menghasilkan yang lain, hilangkan `Agent` dari daftar `tools` atau tambahkan ke `disallowedTools`.1100* Fork dalam sesi yang Anda mulai dengan [`/subtask`](#fork-the-current-conversation) menempati slot saat berjalan dan tidak pernah diblokir oleh batas.

1101* [Melanjutkan subagent](#resume-subagents) yang sudah selesai menempati slot segar tanpa memeriksa batas, jadi resume dapat mendorong hitungan yang berjalan melampaui batas.

888 1102 

889Fork masih tidak dapat menghasilkan fork lain. Ini dapat menghasilkan jenis subagent lain, dan mereka dihitung menuju batas kedalaman.1103Agen yang fitur lain jalankan, seperti agen [workflow](/docs/id/workflows) dan anggota [tim agen](/docs/id/agent-teams), mengikuti batas mereka sendiri sebagai gantinya.

890 1104 

891<h3 id="manage-subagent-context">1105<h3 id="manage-subagent-context">

892 Kelola konteks subagent1106 Kelola konteks subagent


896 Apa yang dimuat saat startup1110 Apa yang dimuat saat startup

897</h4>1111</h4>

898 1112 

899Setiap subagent dimulai dengan jendela konteks yang segar dan terisolasi. Ini tidak melihat riwayat percakapan Anda, skills yang sudah Anda panggil, atau file yang sudah Claude baca. Claude menyusun pesan delegasi yang merangkum tugas, dan subagent bekerja dari sana. Pengecualiannya adalah fork, yang mewarisi percakapan induk daripada memulai segar.1113Setiap subagent dimulai dengan jendela konteks yang segar dan terisolasi. Ini tidak melihat riwayat percakapan Anda, skills yang sudah Anda panggil, atau file yang sudah Claude baca. Claude menyusun pesan delegasi yang merangkum tugas, dan subagent bekerja dari sana. Pengecualiannya adalah [fork](#fork-the-current-conversation), yang mewarisi percakapan induk daripada memulai segar.

900 1114 

901Konteks awal subagent non-fork berisi:1115Konteks awal subagent non-fork berisi:

902 1116 

903* **Prompt sistem**: prompt agen itu sendiri ditambah detail lingkungan yang Claude Code tambahkan, bukan prompt sistem Claude Code lengkap. Subagent khusus mendefinisikan milik mereka dalam badan markdown atau bidang `prompt`. Agen bawaan memiliki prompt yang telah ditentukan sebelumnya.1117* **Prompt sistem**: prompt agen itu sendiri ditambah detail lingkungan yang Claude Code tambahkan, bukan prompt sistem Claude Code. Subagent khusus mendefinisikan milik mereka dalam [badan markdown](#write-subagent-files) atau bidang `prompt`. Agen bawaan memiliki prompt yang telah ditentukan sebelumnya.

904* **Pesan tugas**: prompt delegasi yang Claude tulis ketika menyerahkan pekerjaan.1118* **Pesan tugas**: prompt delegasi yang Claude tulis saat menyerahkan pekerjaan.

905* **CLAUDE.md dan memori**: setiap level dari hierarki memori yang dimuat percakapan utama, termasuk `~/.claude/CLAUDE.md`, aturan proyek, `CLAUDE.local.md`, dan file kebijakan yang dikelola. Agen Explore dan Plan bawaan melewati ini.1119* **File CLAUDE.md**: setiap level dari [hierarki CLAUDE.md](/docs/id/memory#how-claude-md-files-load) yang dimuat percakapan utama, termasuk `~/.claude/CLAUDE.md`, aturan proyek, `CLAUDE.local.md`, file kebijakan yang dikelola, dan file [`AGENTS.md`](/docs/id/memory#agents-md) apa pun yang dimuat sebagai instruksi proyek. Agen Explore dan Plan bawaan melewati ini. Subagent yang definisinya menetapkan [`omitClaudeMd`](#supported-frontmatter-fields) hanya memuat file kebijakan yang dikelola, atau tidak ada sama sekali ketika definisi berasal dari [pengaturan yang dikelola](#choose-the-subagent-scope).

906* **Status Git**: snapshot yang diambil di awal sesi induk. Tidak ada ketika direktori kerja bukan repositori Git atau ketika `includeGitInstructions` adalah `false`. Explore dan Plan melewatinya terlepas.1120* **Status Git**: snapshot yang diambil di awal sesi induk. Tidak ada ketika direktori kerja bukan repositori Git atau ketika [`includeGitInstructions`](/docs/id/settings-reference#includegitinstructions) adalah `false`. Explore dan Plan melewatinya terlepas.

907* **Skills yang dimuat sebelumnya**: konten lengkap dari skill apa pun yang dinamai dalam bidang `skills` agen. Agen bawaan tidak memuat skills sebelumnya.1121* **Skills yang dimuat sebelumnya**: konten lengkap dari skill apa pun yang dinamai dalam bidang [`skills`](#preload-skills-into-subagents) agen. Agen bawaan tidak memuat skills sebelumnya.

908* **Daftar saudara**: pengingat sistem yang mencantumkan `main` dan setiap agen bernama lainnya dalam sesi, masing-masing nilai `to` yang valid untuk [`SendMessage`](#resume-subagents). Memerlukan Claude Code v2.1.206 atau lebih baru. Daftar muncul hanya ketika alat subagent mencakup `SendMessage` dan setidaknya satu agen lain memiliki nama, baik Claude menamakannya saat memunculkannya atau berjalan sebagai anggota [tim agen](/docs/id/agent-teams). Ini adalah snapshot yang diambil ketika subagent dimulai, jadi agen yang dinamai nanti tidak muncul.1122* **Daftar saudara**: pengingat sistem yang mencantumkan `main` dan setiap agen bernama lainnya dalam sesi, masing-masing nilai `to` yang valid untuk [`SendMessage`](#resume-subagents). Memerlukan Claude Code v2.1.206 atau lebih baru. Daftar muncul hanya ketika alat subagent mencakup `SendMessage` dan setidaknya satu agen lain memiliki nama, baik Claude menamakannya saat memunculkannya atau berjalan sebagai anggota [tim agen](/docs/id/agent-teams). Ini adalah snapshot yang diambil ketika subagent dimulai, jadi agen yang dinamai nanti tidak muncul.

909 1123 

910Explore dan Plan adalah satu-satunya subagent yang menghilangkan CLAUDE.md dan status git. Tidak ada bidang frontmatter atau pengaturan per-agen untuk mengubah agen mana yang melewatinya.1124Untuk meluncurkan salah satu subagent Anda sendiri tanpa file CLAUDE.md pengguna, proyek, dan lokal, atur [`omitClaudeMd: true`](#supported-frontmatter-fields) dalam frontmatter atau `--agents` JSON.

911 1125 

912Percakapan utama membaca hasil Explore dan Plan dengan konteks CLAUDE.md penuh, jadi sebagian besar aturan tidak perlu mencapai subagent itu sendiri. Jika aturan harus, seperti "abaikan direktori `vendor/`," nyatakan kembali dalam prompt yang Anda berikan Claude saat mendelegasikan.1126Percakapan utama masih memiliki CLAUDE.md penuh Anda saat membaca hasil subagent ini, jadi sebagian besar aturan tidak perlu mencapai subagent itu sendiri. Jika aturan harus, seperti "abaikan direktori `vendor/`," nyatakan kembali dalam prompt yang Anda berikan Claude saat mendelegasikan.

1127 

1128Anda tidak dapat mengubah subagent mana yang menerima status git. Hanya Explore dan Plan yang melewatinya.

1129 

1130Beberapa status percakapan utama tidak pernah mencapai subagent non-fork:

1131 

1132* **Gaya output**: subagent menjalankan prompt sistemnya sendiri, jadi [gaya output](/docs/id/output-styles) Anda tidak membentuk responsnya, kecuali dalam [fork](#fork-the-current-conversation).

1133* **Memori otomatis**: [memori otomatis](/docs/id/memory#auto-memory) percakapan utama tidak dimuat. Untuk memberi subagent memori persisten miliknya sendiri, gunakan bidang [`memory`](#enable-persistent-memory).

1134* **Ukuran jendela konteks**: jendela konteks subagent diukur oleh modelnya sendiri, bukan induk. Mendelegasikan ke model dengan jendela yang lebih kecil memberikan subagent itu jendela yang lebih kecil.

913 1135 

914<h4 id="resume-subagents">1136<h4 id="resume-subagents">

915 Lanjutkan subagent1137 Lanjutkan subagent

916</h4>1138</h4>

917 1139 

918Setiap invokasi subagent membuat instance baru dengan konteks segar. Untuk melanjutkan pekerjaan subagent yang ada daripada memulai dari awal, minta Claude untuk melanjutkannya.1140Setiap invokasi subagent membuat instance baru daripada melanjutkan yang sebelumnya. Untuk melanjutkan pekerjaan subagent yang ada daripada memulai dari awal, minta Claude untuk melanjutkannya.

919 1141 

920Subagent yang dilanjutkan mempertahankan riwayat percakapan lengkap mereka, termasuk semua panggilan alat sebelumnya, hasil, dan penalaran. Subagent melanjutkan tepat di mana ia berhenti daripada memulai segar.1142Subagent yang dilanjutkan mempertahankan riwayat percakapan lengkap mereka, termasuk semua panggilan alat sebelumnya, hasil, dan penalaran. Jika subagent menghasilkan [subagent background miliknya sendiri](#let-subagents-spawn-their-own-subagents), riwayat itu mencakup hasil yang mereka berikan saat berjalan. Subagent melanjutkan tepat di mana ia berhenti daripada memulai segar.

921 1143 

922Ketika subagent selesai, Claude menerima ID agennya. Agen bawaan Explore dan Plan adalah one-shot dan tidak mengembalikan ID agen, jadi mereka tidak dapat dilanjutkan; gunakan `general-purpose` atau subagent khusus ketika Anda perlu melanjutkan pekerjaan.1144* Ketika subagent selesai, Claude menerima ID agennya.

1145* Agen bawaan Explore dan Plan adalah one-shot dan tidak mengembalikan ID agen, jadi Claude tidak dapat melanjutkan mereka. Gunakan `general-purpose` atau subagent khusus ketika Anda perlu melanjutkan pekerjaan.

1146* Ketika subagent berhenti pada batas [`maxTurns`](#supported-frontmatter-fields), Claude Code menandai output yang dikembalikan sebagai parsial. Untuk subagent yang mengembalikan ID agen, Claude Code juga mencatat dalam hasil bahwa Claude dapat mengirim pesan ke subagent untuk melanjutkan dari tempat ia berhenti.

923 1147 

924Claude menggunakan alat `SendMessage` dengan ID agen atau nama agen sebagai bidang `to` untuk melanjutkannya. `SendMessage` tidak memerlukan tim agen untuk diaktifkan; hanya pesan protokol tim terstruktur seperti `shutdown_request` dan `plan_approval_response` yang melakukannya.1148Claude menggunakan alat `SendMessage` dengan ID agen atau nama agen sebagai bidang `to` untuk melanjutkannya. `SendMessage` tidak memerlukan [tim agen](/docs/id/agent-teams) untuk diaktifkan; hanya pesan protokol tim terstruktur seperti `shutdown_request` dan `plan_approval_response` yang melakukannya. Melampaui subagent dan rekan tim, dalam sesi di mana cross-session messaging diaktifkan, Claude dapat menggunakan alat yang sama untuk mengirim pesan [sesi Claude Code Anda yang lain](/docs/id/cross-session-messaging), di mesin ini atau [melampaui](/docs/id/cross-session-messaging#message-sessions-on-other-machines).

925 1149 

926Untuk melanjutkan subagent, minta Claude untuk melanjutkan pekerjaan sebelumnya:1150Untuk melanjutkan subagent, minta Claude untuk melanjutkan pekerjaan sebelumnya:

927 1151 


933[Claude resumes the subagent with full context from previous conversation]1157[Claude resumes the subagent with full context from previous conversation]

934```1158```

935 1159 

936Subagent yang dihentikan yang menerima `SendMessage` auto-resume di background tanpa memerlukan invokasi `Agent` baru. Hal yang sama berlaku untuk subagent yang Claude hentikan dengan alat `TaskStop`.1160Ketika Claude mengirim pesan subagent yang selesai dengan alat `SendMessage`, subagent melanjutkan di background tanpa invokasi `Agent` baru. Hal yang sama berlaku untuk subagent yang Claude hentikan dengan alat `TaskStop`, setelah run yang dihentikan telah keluar. Run yang dilanjutkan menyimpan [set alat dari tempat subagent pertama kali berjalan](#run-subagents-in-foreground-or-background) dan dapat terus membaca [prompt cache yang dihangatkan run asli](/docs/id/prompt-caching#subagents-and-the-cache).

1161 

1162Subagent yang memiliki alat `SendMessage` dapat mengirim pesan itu juga. Dalam sesi interaktif, agen yang dilanjutkan kemudian melaporkan kembali ke subagent yang melanjutkannya, bukan ke percakapan utama Anda. Subagent itu menunggu hasil sebelum menyelesaikan pekerjaan miliknya sendiri. Ketika subagent mengirim pesan ke agen yang dilaporkannya, seperti peluncurnya sendiri, Claude Code melanjutkan agen itu tanpa mengarahkan ulang hasilnya.

937 1163 

938Mulai dari v2.1.191, subagent yang Anda hentikan sendiri, dengan `x` dalam `/tasks` atau permintaan SDK `stop_task`, tidak auto-resume. Panggilan `SendMessage` mengembalikan penolakan yang memberi tahu Claude agen dibatalkan. Ketik ke dalam transkrip subagent itu di panel subagent untuk melanjutkannya sendiri, yang menghapus stop sehingga panggilan `SendMessage` nanti dapat auto-resume lagi.1164Subagent yang Anda hentikan sendiri, dengan `x` dalam `/tasks` atau permintaan SDK `stop_task`, tidak auto-resume. Jika Claude mengirimnya pesan, pesan ditolak dan Claude diberitahu agen dibatalkan.

1165 

1166Sementara [baris subagent itu masih dalam panel subagent](#run-subagents-in-foreground-or-background), ketik ke dalam transkrip untuk melanjutkannya sendiri. Setelah itu, pesan dari Claude dapat auto-resume lagi. Memerlukan Claude Code v2.1.191 atau lebih baru.

939 1167 

940Melanjutkan memulai run baru dari agen di bawah ID yang sama, jadi subagent yang sudah gagal atau selesai menunjukkan sebagai berjalan lagi dalam daftar tugas dan dalam peristiwa tugas SDK Agent. Sebelum v2.1.205, itu terus menunjukkan status gagal atau selesai sebelumnya sementara run yang dilanjutkan sedang bekerja.1168Melanjutkan memulai run baru dari agen di bawah ID yang sama, jadi subagent yang sudah gagal atau selesai menunjukkan sebagai berjalan lagi dalam daftar tugas dan dalam peristiwa tugas SDK Agent. Sebelum v2.1.205, itu terus menunjukkan status gagal atau selesai sebelumnya sementara run yang dilanjutkan sedang bekerja.

941 1169 

942Mulai dari v2.1.199, `SendMessage` memeriksa bahwa nama masih merujuk ke agen yang sama yang dicapai sebelumnya dalam percakapan. Jika agen yang lebih baru telah mengambil nama, seperti agen background yang di-spawn ulang yang menggunakannya kembali, Claude Code menolak pengiriman daripada mengirimkannya ke agen yang salah, dan kesalahan melaporkan agen mana yang sekarang dicapai nama sehingga Claude dapat menargetkan ulang. Untuk mencapai agen sebelumnya sementara masih berjalan, Claude mengalamatkannya dengan ID agen dari hasil spawn. Pemeriksaan dibatasi pada percakapan saat ini dan direset pada `/clear`.1170Mulai dari v2.1.199, `SendMessage` memeriksa bahwa nama masih merujuk ke agen yang sama yang dicapai sebelumnya dalam percakapan. Jika agen yang lebih baru telah mengambil nama, seperti agen background yang di-spawn ulang yang menggunakannya kembali, Claude Code menolak pengiriman daripada mengirimkannya ke agen yang salah, dan kesalahan melaporkan agen mana yang sekarang dicapai nama sehingga Claude dapat menargetkan ulang. Untuk mencapai agen sebelumnya sementara masih berjalan, Claude mengalamatkannya dengan ID agen yang diterima saat menghasilkan agen itu. Pemeriksaan dibatasi pada percakapan saat ini dan direset pada `/clear`.

943 1171 

944Mulai dari v2.1.198, subagent memperlakukan pesan dari agen yang meluncurkannya sebagai arahan tugas normal, termasuk koreksi kursus mid-task, dan bertindak atas mereka dalam pengaturan izin mereka sendiri. Dua batas masih berlaku terlepas dari siapa yang mengirim pesan: tidak ada pesan dari agen apa pun yang dihitung sebagai persetujuan Anda untuk prompt izin yang tertunda, dan tidak ada pesan agen yang dapat mengubah pengaturan izin subagent, `CLAUDE.md`, atau konfigurasi. Hanya sistem izin atau pesan Anda sendiri yang dapat memberikan persetujuan.1172Mulai dari v2.1.198, subagent memperlakukan pesan dari agen yang meluncurkannya sebagai arahan tugas normal, termasuk koreksi kursus mid-task, dan bertindak atas mereka dalam pengaturan izin mereka sendiri. Dua batas masih berlaku terlepas dari siapa yang mengirim pesan: tidak ada pesan dari agen apa pun yang dihitung sebagai persetujuan Anda untuk prompt izin yang tertunda, dan tidak ada pesan agen yang dapat mengubah pengaturan izin subagent, `CLAUDE.md`, atau konfigurasi. Hanya sistem izin atau pesan Anda sendiri yang dapat memberikan persetujuan.

945 1173 


947 1175 

948Transkrip subagent bertahan secara independen dari percakapan utama:1176Transkrip subagent bertahan secara independen dari percakapan utama:

949 1177 

950* **Pemadatan percakapan utama**: Ketika percakapan utama dipadatkan, transkrip subagent tidak terpengaruh. Mereka disimpan dalam file terpisah.1178* **Pemadatan percakapan utama**: ketika percakapan utama dipadatkan, transkrip subagent tidak terpengaruh. Mereka disimpan dalam file terpisah.

951* **Persistensi sesi**: Transkrip subagent bertahan dalam sesi mereka. Anda dapat melanjutkan subagent setelah memulai ulang Claude Code dengan melanjutkan sesi yang sama.1179* **Persistensi sesi**: transkrip subagent bertahan dalam sesi mereka. Anda dapat [melanjutkan subagent](#resume-subagents) setelah memulai ulang Claude Code dengan melanjutkan sesi yang sama.

952* **Pembersihan otomatis**: Transkrip dibersihkan berdasarkan pengaturan `cleanupPeriodDays`, yang default ke 30 hari.1180* **Pembersihan otomatis**: Claude Code menghapus transkrip subagent setelah periode retensi `cleanupPeriodDays`, 30 hari secara default, mengikuti [aturan sweep retensi](/docs/id/claude-directory#cleaned-up-automatically).

953 1181 

954<h4 id="auto-compaction">1182<h4 id="auto-compaction">

955 Auto-compaction1183 Auto-compaction


977</h2>1205</h2>

978 1206 

979<Note>1207<Note>

980 Subagent yang di-fork memerlukan Claude Code v2.1.117 atau lebih baru. Mulai dari v2.1.161 perintah `/fork` diaktifkan secara default; pada versi sebelumnya memerlukan pengaturan variabel lingkungan [`CLAUDE_CODE_FORK_SUBAGENT`](/docs/id/env-vars) ke `1`. Membiarkan Claude sendiri menelurkan fork bersifat eksperimental dan mungkin berubah di rilis mendatang. Kemampuan ini juga dapat diaktifkan dalam sesi interaktif sebagai bagian dari peluncuran bertahap.1208 Jalankan subagent yang di-fork dengan `/subtask`, yang memerlukan Claude Code v2.1.212 atau lebih baru. Ketika [tampilan agent dimatikan](/docs/id/agent-view#turn-off-agent-view), `/subtask` tidak tersedia dan `/fork` memulai subagent yang di-fork sebagai gantinya; jika tidak `/fork` menyalin seluruh sesi ke [sesi latar belakang](/docs/id/agent-view#from-inside-a-session) baru.

981</Note>1209</Note>

982 1210 

983Fork adalah subagent yang mewarisi seluruh percakapan sejauh ini daripada memulai segar. Ini menghilangkan isolasi input yang sebaliknya disediakan subagent: fork melihat prompt sistem yang sama, alat, model, dan riwayat pesan sebagai sesi utama, sehingga Anda dapat menyerahkan tugas sampingan tanpa menjelaskan situasinya lagi. Panggilan alat fork sendiri masih tetap keluar dari percakapan Anda dan hanya hasil akhirnya yang kembali, sehingga jendela konteks utama Anda tetap bersih. Gunakan fork ketika subagent bernama memerlukan terlalu banyak latar belakang untuk berguna, atau ketika Anda ingin mencoba beberapa pendekatan secara paralel dari titik awal yang sama.1211Fork adalah subagent yang mewarisi seluruh percakapan sejauh ini daripada memulai segar. Ini menghilangkan isolasi input yang sebaliknya disediakan subagent: fork melihat prompt sistem yang sama, alat, model, dan riwayat pesan sebagai sesi utama, sehingga Anda dapat menyerahkan tugas sampingan tanpa menjelaskan situasinya lagi. Panggilan alat fork sendiri masih tetap keluar dari percakapan Anda dan hanya hasil akhirnya yang kembali, sehingga jendela konteks utama Anda tetap bersih. Gunakan fork ketika subagent lain mana pun memerlukan terlalu banyak latar belakang untuk berguna, atau ketika Anda ingin mencoba beberapa pendekatan secara paralel dari titik awal yang sama.

984 

985Untuk mengontrol mode fork terlepas dari peluncuran bertahap, atur [`CLAUDE_CODE_FORK_SUBAGENT`](/docs/id/env-vars) ke `1` untuk mengaktifkannya secara eksplisit atau ke `0` untuk menonaktifkannya. Variabel ini dihormati dalam mode interaktif dan melalui SDK atau `claude -p`.

986 1212 

987Mengaktifkan mode fork mengubah Claude Code dalam dua cara:1213Claude memulai fork dengan meminta tipe subagent `fork` melalui alat Agent. Anda mengontrol apakah itu dapat dengan [mode fork](#turn-fork-mode-on-or-off), yang diaktifkan secara default dalam sesi interaktif.

988 1214 

989* Claude dapat menelurkan fork dengan meminta tipe subagent `fork` secara eksplisit. Spawn tanpa tipe subagent masih menggunakan subagent [general-purpose](#built-in-subagents), dan subagent bernama seperti Explore masih menelurkan seperti sebelumnya.1215Anda dapat memulai fork sendiri dengan `/subtask` diikuti oleh tugas, terlepas dari apakah mode fork diaktifkan atau tidak. Pada v2.1.161 hingga v2.1.211 perintahnya adalah `/fork`. Claude Code memberi nama fork dari kata-kata pertama tugas. Contoh berikut mem-fork percakapan untuk draft kasus uji sementara Anda melanjutkan dengan implementasi dalam sesi utama:

990* Setiap spawn subagent berjalan di [background](#run-subagents-in-foreground-or-background), apakah itu fork atau subagent bernama. Atur `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` ke `1` untuk menjaga spawn tetap sinkron.

991 

992Anda dapat memulai fork sendiri dengan `/fork` diikuti oleh direktif, dengan atau tanpa variabel yang ditetapkan. Claude Code memberi nama fork dari kata-kata pertama direktif. Contoh berikut mem-fork percakapan untuk draft kasus uji sementara Anda melanjutkan dengan implementasi dalam sesi utama:

993 1216 

994```text wrap theme={null}1217```text wrap theme={null}

995/fork draft unit tests for the parser changes so far1218/subtask draft unit tests for the parser changes so far

996```1219```

997 1220 

998Fork muncul di panel di bawah prompt Anda dan berjalan di background sementara Anda terus bekerja. Ketika selesai, hasilnya tiba sebagai pesan dalam percakapan utama Anda. Bagian berikutnya mencakup kontrol panel untuk menonton dan mengarahkan fork saat berjalan.1221Fork muncul di panel di bawah prompt Anda dan berjalan di latar belakang sementara Anda terus bekerja. Ketika selesai, hasilnya tiba sebagai pesan dalam percakapan utama Anda. Bagian berikutnya mencakup kontrol panel untuk menonton dan mengarahkan fork saat berjalan.

999 1222 

1000<h3 id="observe-and-steer-running-forks">1223<h3 id="observe-and-steer-running-forks">

1001 Amati dan arahkan fork yang sedang berjalan1224 Amati dan arahkan fork yang sedang berjalan

1002</h3>1225</h3>

1003 1226 

1004Fork yang sedang berjalan muncul di panel di bawah input prompt, dengan satu baris untuk sesi utama dan satu untuk setiap fork. Gunakan kunci ini untuk berinteraksi dengan panel:1227Fork yang sedang berjalan muncul di panel di bawah input prompt, dengan satu baris untuk sesi utama dan satu untuk setiap fork.

1228 

1229Ketika fork selesai dengan sukses, Claude Code menghapus barisnya. Claude Code menyimpan baris fork yang gagal atau yang Anda hentikan selama 30 detik, [sama seperti untuk subagent latar belakang lainnya](#run-subagents-in-foreground-or-background). Sebelum v2.1.232, Claude Code juga menyimpan baris fork yang selesai selama 30 detik.

1230 

1231Gunakan kunci ini untuk berinteraksi dengan panel:

1005 1232 

1006| Kunci | Tindakan |1233| Kunci | Tindakan |

1007| :-------- | :---------------------------------------------------------------- |1234| :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1008| `↑` / `↓` | Pindah antar baris |1235| `↑` / `↓` | Pindah antar baris |

1009| `Enter` | Buka transkrip fork yang dipilih dan kirimkan pesan tindak lanjut |1236| `Enter` | Buka transkrip fork yang dipilih dan kirimkan pesan tindak lanjut |

1010| `x` | Tutup fork yang selesai atau hentikan yang sedang berjalan |1237| `x` | Hentikan fork yang dipilih jika sedang berjalan, atau tutup barisnya jika tidak lagi berjalan. Pada baris sesi utama, atau pada baris fork yang transkrinya Anda buka dengan `Enter`, `x` mengetik ke dalam prompt sebagai gantinya |

1011| `Esc` | Kembalikan fokus ke input prompt |1238| `Esc` | Kembalikan fokus ke input prompt |

1012 1239 

1013Dengan transkrip fork atau subagent terbuka, pesan tindak lanjut dan [skills](/docs/id/skills) pergi ke agen tersebut, tetapi perintah bawaan masih berjalan dalam percakapan utama Anda. Mulai dari v2.1.199, mengetik `/model` atau `/fast` dalam tampilan itu menampilkan pemberitahuan bahwa itu mengubah model percakapan utama atau mode cepat, bukan agen yang dilihat, daripada menjalankannya secara diam-diam.1240Dengan transkrip fork atau subagent terbuka, pesan tindak lanjut dan [skills](/docs/id/skills) pergi ke agen tersebut, tetapi perintah bawaan masih berjalan dalam percakapan utama Anda. Mulai dari v2.1.199, mengetik `/model` atau `/fast` dalam tampilan itu menampilkan pemberitahuan bahwa itu mengubah model percakapan utama atau mode cepat, bukan agen yang dilihat, daripada menjalankannya secara diam-diam.

1014 1241 

1015<h3 id="how-forks-differ-from-named-subagents">1242<h3 id="how-forks-differ-from-other-subagents">

1016 Bagaimana fork berbeda dari subagent bernama1243 Bagaimana fork berbeda dari subagent lainnya

1017</h3>1244</h3>

1018 1245 

1019Fork mewarisi segalanya yang dimiliki sesi utama pada saat spawn. Subagent bernama dimulai dari definisinya sendiri.1246Fork mewarisi segalanya yang dimiliki sesi utama pada saat spawn. Subagent lainnya dimulai segar dari definisinya.

1020 1247 

1021| | Fork | Subagent bernama |1248| | Fork | Subagent non-fork |

1022| :--------------------- | :----------------------------- | :--------------------------------------------------------------------------------------------------------- |1249| :--------------------- | :----------------------------- | :------------------------------------------------------------------------------------------------------------- |

1023| Konteks | Riwayat percakapan lengkap | Konteks segar dengan prompt yang Anda lewatkan |1250| Konteks | Riwayat percakapan lengkap | Konteks segar dengan prompt yang Anda lewatkan |

1024| Prompt sistem dan alat | Sama dengan sesi utama | Dari file definisi subagent |1251| Prompt sistem dan alat | Sama dengan sesi utama | Dari [file definisi](#write-subagent-files) subagent, [disaring untuk run latar belakang](#available-tools) |

1025| Model | Sama dengan sesi utama | Dari bidang `model` subagent |1252| Model | Sama dengan sesi utama | Dari bidang `model` subagent |

1026| Izin | Prompt muncul di terminal Anda | [Prompt muncul di sesi utama Anda](#run-subagents-in-foreground-or-background) saat berjalan di background |1253| Izin | Prompt muncul di terminal Anda | [Prompt muncul di sesi utama Anda](#run-subagents-in-foreground-or-background) saat berjalan di latar belakang |

1027| Prompt cache | Dibagikan dengan sesi utama | Cache terpisah |1254| Prompt cache | Dibagikan dengan sesi utama | Cache terpisah |

1028 1255 

1029Karena prompt sistem fork dan definisi alat identik dengan induk, permintaan pertamanya menggunakan kembali [prompt cache](/docs/id/prompt-caching#subagents-and-the-cache) induk. Ini membuat forking lebih murah daripada menelurkan subagent segar untuk tugas yang memerlukan konteks yang sama.1256Karena prompt sistem fork dan definisi alat identik dengan induk, permintaan pertamanya menggunakan kembali [prompt cache](/docs/id/prompt-caching#subagents-and-the-cache) induk. Ini membuat forking lebih murah daripada menelurkan subagent segar untuk tugas yang memerlukan konteks yang sama.

1030 1257 

1031Ketika Claude menelurkan fork melalui alat Agent, Claude dapat melewatkan `isolation: "worktree"` sehingga edit file fork ditulis ke git worktree terpisah daripada checkout Anda.1258Ketika Claude menelurkan fork melalui alat Agent, Claude dapat melewatkan `isolation: "worktree"` sehingga edit file fork ditulis ke git worktree terpisah daripada checkout Anda. Fork tidak dapat menelurkan fork lebih lanjut.

1032 1259 

1033<h3 id="limitations">1260<h3 id="turn-fork-mode-on-or-off">

1034 Keterbatasan1261 Aktifkan atau nonaktifkan mode fork

1035</h3>1262</h3>

1036 1263 

1037Menetapkan `CLAUDE_CODE_FORK_SUBAGENT=1` mengaktifkan fork mode dalam sesi interaktif, [non-interactive mode](/docs/id/headless), dan Agent SDK; menetapkannya ke `0` menonaktifkan fork mode di mana-mana, termasuk peluncuran server-side apa pun. Fork tidak dapat menelurkan fork lebih lanjut.1264Claude Code mengaktifkan mode fork secara default dalam sesi interaktif dan membiarkannya dimatikan secara default dalam [mode non-interaktif](/docs/id/headless) dengan `-p` dan dalam Agent SDK. Default interaktif memerlukan Claude Code v2.1.232 atau lebih baru. Pada versi sebelumnya, atur `CLAUDE_CODE_FORK_SUBAGENT` ke `1` untuk mengaktifkan mode fork.

1265 

1266Anda dapat mengetahui mode fork diaktifkan dari cara Claude Code menangani alat Agent:

1267 

1268* Claude dapat menelurkan fork dengan meminta tipe subagent `fork`. Ketika Claude tidak meminta tipe, Claude mendapatkan subagent [general-purpose](#built-in-subagents), jika sesi masih memiliki tipe tersebut. Subagent yang di-spawn dari definisi, seperti Explore, bekerja seperti biasanya.

1269* Claude Code menjalankan subagent yang Claude spawn di latar belakang, fork dan subagent non-fork sama-sama, terlepas dari [kasus yang tetap di latar depan](#run-subagents-in-foreground-or-background). Claude Code juga menghapus parameter `run_in_background` alat Agent, sehingga Claude tidak dapat meminta latar depan.

1270 

1271Atur variabel lingkungan [`CLAUDE_CODE_FORK_SUBAGENT`](/docs/id/env-vars) untuk mengganti default:

1272 

1273* `1` mengaktifkan mode fork dalam mode non-interaktif dan Agent SDK juga

1274* `0` menonaktifkan mode fork dalam setiap jenis sesi

1275 

1276Untuk menjaga mode fork tetap aktif tetapi menghentikan Claude dari menelurkan fork, [tolak tipe subagent `fork`](#disable-specific-subagents) dengan aturan `Agent(fork)`. Claude Code masih menjalankan subagent yang Claude spawn di latar belakang, terlepas dari [kasus yang sama yang tetap di latar depan](#run-subagents-in-foreground-or-background).

1038 1277 

1039<h2 id="example-subagents">1278<h2 id="example-subagents">

1040 Contoh subagent1279 Contoh subagent


1046 **Best practices:**1285 **Best practices:**

1047 1286 

1048 * **Desain subagent yang terfokus:** setiap subagent harus unggul dalam satu tugas spesifik1287 * **Desain subagent yang terfokus:** setiap subagent harus unggul dalam satu tugas spesifik

1049 * **Tulis deskripsi terperinci:** Claude menggunakan deskripsi untuk memutuskan kapan mendelegasikan1288 * **Tulis deskripsi yang menonjolkan satu subagent:** Claude menggunakan deskripsi untuk memutuskan kapan mendelegasikan. Buat setiap deskripsi cukup spesifik untuk merutekan ke subagent yang tepat, dan pertahankan set gabungan dalam [anggaran deskripsi 15.000-token](#understand-automatic-delegation)

1050 * **Batasi akses alat:** berikan hanya izin yang diperlukan untuk keamanan dan fokus1289 * **Batasi akses alat:** berikan hanya izin yang diperlukan untuk keamanan dan fokus

1051 * **Periksa ke dalam kontrol versi:** bagikan subagent proyek dengan tim Anda1290 * **Periksa ke dalam kontrol versi:** bagikan subagent proyek dengan tim Anda

1052</Tip>1291</Tip>


1234 1473 

1235Hook menerima JSON melalui stdin dengan perintah Bash dalam `tool_input.command`. Kode keluar 2 memblokir operasi dan mengirimkan pesan kesalahan kembali ke Claude. Lihat [Hooks](/docs/id/hooks#exit-code-output) untuk detail tentang kode keluar dan [Hook input](/docs/id/hooks#pretooluse-input) untuk skema input lengkap.1474Hook menerima JSON melalui stdin dengan perintah Bash dalam `tool_input.command`. Kode keluar 2 memblokir operasi dan mengirimkan pesan kesalahan kembali ke Claude. Lihat [Hooks](/docs/id/hooks#exit-code-output) untuk detail tentang kode keluar dan [Hook input](/docs/id/hooks#pretooluse-input) untuk skema input lengkap.

1236 1475 

1476Prompt sistem memberitahu subagent untuk menolak permintaan penulisan, jadi hook adalah backstop: jika subagent mencoba penulisan bagaimanapun, Claude Code memblokir perintah dan subagent melihat pesan `Blocked: Write operations not allowed. Use SELECT queries only.`.

1477 

1237<h2 id="next-steps">1478<h2 id="next-steps">

1238 Langkah berikutnya1479 Langkah berikutnya

1239</h2>1480</h2>

Details

126 Konfigurasi tmux126 Konfigurasi tmux

127</h2>127</h2>

128 128 

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

130 130 

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

132set -g allow-passthrough on132set -g allow-passthrough on

Details

152 152 

153 <tr>153 <tr>

154 <td>Autentikasi</td>154 <td>Autentikasi</td>

155 <td>Claude.ai SSO atau email</td>155 <td>claude.ai SSO atau email</td>

156 <td>Kunci API atau [sign-in Console tanpa kunci](/docs/id/authentication#sign-in-without-an-api-key)</td>156 <td>Kunci API atau [sign-in Console tanpa kunci](/docs/id/authentication#sign-in-without-an-api-key)</td>

157 <td>Kunci API atau kredensial AWS</td>157 <td>Kunci API atau kredensial AWS</td>

158 <td>Kunci API atau kredensial AWS</td>158 <td>Kunci API atau kredensial AWS</td>

Details

47| `ScheduleWakeup` | Menjadwalkan ulang iterasi berikutnya dari [`/loop` yang berjalan sendiri](/docs/id/scheduled-tasks#let-claude-choose-the-interval). Claude memanggilnya di akhir setiap iterasi untuk memilih kapan yang berikutnya berjalan, antara satu menit dan satu jam ke depan; Anda tidak memanggilnya secara langsung. Untuk mengakhiri loop sebagai gantinya, Claude memanggilnya dengan `stop: true`, yang membatalkan wakeup yang tertunda. Bidang `stop` memerlukan Claude Code v2.1.202 atau lebih baru. Wakeup yang tertunda muncul dalam `session_crons` dalam [Input hook Stop](/docs/id/hooks#stop-input) | Tidak |47| `ScheduleWakeup` | Menjadwalkan ulang iterasi berikutnya dari [`/loop` yang berjalan sendiri](/docs/id/scheduled-tasks#let-claude-choose-the-interval). Claude memanggilnya di akhir setiap iterasi untuk memilih kapan yang berikutnya berjalan, antara satu menit dan satu jam ke depan; Anda tidak memanggilnya secara langsung. Untuk mengakhiri loop sebagai gantinya, Claude memanggilnya dengan `stop: true`, yang membatalkan wakeup yang tertunda. Bidang `stop` memerlukan Claude Code v2.1.202 atau lebih baru. Wakeup yang tertunda muncul dalam `session_crons` dalam [Input hook Stop](/docs/id/hooks#stop-input) | Tidak |

48| `SendFeedback` | Menyusun laporan umpan balik tentang Claude Code, mencakup masalah produk atau perilaku Claude sendiri dalam sesi, dan mengantreannya di mesin Anda untuk Anda tinjau. Claude Code tidak mengirim apa pun sampai Anda memilih untuk mengirim draf. Lihat [Perilaku tool SendFeedback](#sendfeedback-tool-behavior). Memerlukan Claude Code v2.1.238 atau lebih baru | Tidak |48| `SendFeedback` | Menyusun laporan umpan balik tentang Claude Code, mencakup masalah produk atau perilaku Claude sendiri dalam sesi, dan mengantreannya di mesin Anda untuk Anda tinjau. Claude Code tidak mengirim apa pun sampai Anda memilih untuk mengirim draf. Lihat [Perilaku tool SendFeedback](#sendfeedback-tool-behavior). Memerlukan Claude Code v2.1.238 atau lebih baru | Tidak |

49| `SendMessage` | Mengirim pesan ke agent lain: rekan tim [tim agent](/docs/id/agent-teams), [subagent yang dilanjutkan](/docs/id/sub-agents#resume-subagents) berdasarkan ID atau nama agent, atau salah satu sesi Claude Code Anda yang lain, di mesin ini atau di luar. Pesan ke sesi lain memerlukan Claude Code v2.1.224 atau lebih baru. [Pesan lintas-sesi](/docs/id/cross-session-messaging) mencakup sesi mana yang dapat dijangkau Claude, [seperti apa pesan ketika tiba](/docs/id/cross-session-messaging#what-a-message-looks-like), dan [bagaimana Claude mendapat pemberitahuan ketika sesi lain menjadi idle](/docs/id/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude dapat menyertakan input `summary` opsional, biasanya 5-10 kata, yang ditampilkan Claude Code sebagai pratinjau satu baris. Ketika Claude menghilangkannya pada [pesan teks biasa](/docs/id/cross-session-messaging#limitations), Claude Code menggunakan baris pertama pesan sebagai ringkasan. Claude Code memotong ringkasan lebih panjang dari 200 karakter dengan elipsis | Tidak |49| `SendMessage` | Mengirim pesan ke agent lain: rekan tim [tim agent](/docs/id/agent-teams), [subagent yang dilanjutkan](/docs/id/sub-agents#resume-subagents) berdasarkan ID atau nama agent, atau salah satu sesi Claude Code Anda yang lain, di mesin ini atau di luar. Pesan ke sesi lain memerlukan Claude Code v2.1.224 atau lebih baru. [Pesan lintas-sesi](/docs/id/cross-session-messaging) mencakup sesi mana yang dapat dijangkau Claude, [seperti apa pesan ketika tiba](/docs/id/cross-session-messaging#what-a-message-looks-like), dan [bagaimana Claude mendapat pemberitahuan ketika sesi lain menjadi idle](/docs/id/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude dapat menyertakan input `summary` opsional, biasanya 5-10 kata, yang ditampilkan Claude Code sebagai pratinjau satu baris. Ketika Claude menghilangkannya pada [pesan teks biasa](/docs/id/cross-session-messaging#limitations), Claude Code menggunakan baris pertama pesan sebagai ringkasan. Claude Code memotong ringkasan lebih panjang dari 200 karakter dengan elipsis | Tidak |

50| `SendUserFile` | Mengirim file dari sesi ke Anda dengan keterangan opsional, sehingga laporan yang dihasilkan, diagram, tangkapan layar, atau artefak yang dibangun mencapai perangkat Anda alih-alih hanya disebutkan dalam transkrip. Mulai dari v2.1.196, input `display` opsional mengontrol presentasi: `render` membuka file inline dalam klien, `attach` menampilkan kartu unduhan saja, dan ketika tidak diatur klien memutuskan berdasarkan jenis file. Tersedia ketika klien [Remote Control](/docs/id/remote-control) terhubung atau sesi berjalan di lingkungan cloud terkelola seperti [Claude Code di web](/docs/id/claude-code-on-the-web). Pengiriman berjalan melalui infrastruktur yang dihosting Anthropic, jadi tool tidak tersedia di Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry | Tidak |50| `SendUserFile` | Mengirim file dari sesi ke Anda dengan keterangan opsional, sehingga laporan yang dihasilkan, diagram, tangkapan layar, atau artefak yang dibangun mencapai perangkat Anda alih-alih hanya disebutkan dalam transkrip. Mulai dari v2.1.196, input `display` opsional mengontrol presentasi: `render` membuka file inline dalam klien, `attach` menampilkan kartu unduhan saja, dan ketika tidak diatur klien memutuskan berdasarkan jenis file. Tersedia ketika klien [Remote Control](/docs/id/remote-control) terhubung atau dalam [sesi cloud](/docs/id/claude-code-on-the-web). Pengiriman berjalan melalui infrastruktur yang dihosting Anthropic, jadi tool tidak tersedia di Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry | Tidak |

51| `ShareOnboardingGuide` | Mengunggah `ONBOARDING.md` dan mengembalikan tautan berbagi yang dapat dibuka rekan tim di Claude Code. Dipanggil dari `/team-onboarding` setelah panduan ditulis. Tersedia untuk pelanggan claude.ai pada paket Pro, Max, Team, dan Enterprise | Ya |51| `ShareOnboardingGuide` | Mengunggah `ONBOARDING.md` dan mengembalikan tautan berbagi yang dapat dibuka rekan tim di Claude Code. Dipanggil dari `/team-onboarding` setelah panduan ditulis. Tersedia untuk pelanggan claude.ai pada paket Pro, Max, Team, dan Enterprise | Ya |

52| `Skill` | Menjalankan [skill](/docs/id/skills#control-who-invokes-a-skill) dalam percakapan utama | Ya |52| `Skill` | Menjalankan [skill](/docs/id/skills#control-who-invokes-a-skill) dalam percakapan utama | Ya |

53| `SubagentHandback` | Mengirimkan laporan akhir subagent ke percakapan mana pun yang menerima hasil subagent tersebut. Disediakan hanya dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), ke subagent yang dijalankan tool Agent secara lokal selain [fork](/docs/id/sub-agents#fork-the-current-conversation), dan tersedia di CLI terminal, ekstensi IDE, sesi cloud, dan Agent SDK; pengklasifikasi meninjau laporan sebelum dikirimkan. Memerlukan Claude Code v2.1.271 atau lebih baru | Tidak |

53| `TaskCreate` | Membuat tugas baru dalam daftar tugas. Disediakan secara default hanya pada model yang tercantum di bawah [Ketersediaan tool Task](#task-tool-availability), dan pada model lain ketika Anda memilih untuk ikut serta | Tidak |54| `TaskCreate` | Membuat tugas baru dalam daftar tugas. Disediakan secara default hanya pada model yang tercantum di bawah [Ketersediaan tool Task](#task-tool-availability), dan pada model lain ketika Anda memilih untuk ikut serta | Tidak |

54| `TaskGet` | Mengambil detail lengkap untuk tugas tertentu. Disediakan secara default hanya pada model yang tercantum di bawah [Ketersediaan tool Task](#task-tool-availability), dan pada model lain ketika Anda memilih untuk ikut serta | Tidak |55| `TaskGet` | Mengambil detail lengkap untuk tugas tertentu. Disediakan secara default hanya pada model yang tercantum di bawah [Ketersediaan tool Task](#task-tool-availability), dan pada model lain ketika Anda memilih untuk ikut serta | Tidak |

55| `TaskList` | Mencantumkan semua tugas dengan status saat ini mereka. Disediakan secara default hanya pada model yang tercantum di bawah [Ketersediaan tool Task](#task-tool-availability), dan pada model lain ketika Anda memilih untuk ikut serta | Tidak |56| `TaskList` | Mencantumkan semua tugas dengan status saat ini mereka. Disediakan secara default hanya pada model yang tercantum di bawah [Ketersediaan tool Task](#task-tool-availability), dan pada model lain ketika Anda memilih untuk ikut serta | Tidak |


99 Perilaku tool Agent100 Perilaku tool Agent

100</h2>101</h2>

101 102 

102Tool Agent menjalankan subagent dalam jendela konteks terpisah. Subagent bekerja melalui tugasnya secara otonom, kemudian mengembalikan satu hasil teks ke percakapan induk. Induk tidak melihat panggilan tool perantara atau output subagent, hanya hasil akhir itu. Dengan [agent teams](/docs/id/agent-teams) diaktifkan, panggilan yang membawa `name` dapat meluncurkan [teammate](/docs/id/agent-teams#how-claude-starts-agent-teams) sebagai gantinya, yang melaporkan kembali melalui pesan tim daripada dengan mengembalikan hasil.103Tool Agent menjalankan subagent dalam jendela konteks terpisah. Subagent bekerja melalui tugasnya secara otonom, kemudian mengembalikan hasilnya ke percakapan induk. Induk tidak melihat panggilan tool perantara atau output subagent, hanya hasil akhir itu. Dengan [agent teams](/docs/id/agent-teams) diaktifkan, panggilan yang membawa `name` dapat meluncurkan [teammate](/docs/id/agent-teams#how-claude-starts-agent-teams) sebagai gantinya, yang melaporkan kembali melalui pesan tim daripada dengan mengembalikan hasil.

103 104 

104Untuk membatasi berapa banyak putaran yang dijalankan subagent, atur `maxTurns` dalam [definisi subagent](/docs/id/sub-agents#supported-frontmatter-fields). Ketika subagent mencapai batas, Claude Code menandai hasil yang dikembalikan sebagai output parsial, dan Claude dapat [melanjutkan subagent](/docs/id/sub-agents#resume-subagents) untuk melanjutkan.105Untuk membatasi berapa banyak putaran yang dijalankan subagent, atur `maxTurns` dalam [definisi subagent](/docs/id/sub-agents#supported-frontmatter-fields). Ketika subagent mencapai batas, Claude Code menandai hasil yang dikembalikan sebagai output parsial, dan Claude dapat [melanjutkan subagent](/docs/id/sub-agents#resume-subagents) untuk melanjutkan.

105 106 


112* **`disallowedTools` saja**: subagent mendapatkan setiap tool induk kecuali yang terdaftar.113* **`disallowedTools` saja**: subagent mendapatkan setiap tool induk kecuali yang terdaftar.

113* **Keduanya diatur**: `disallowedTools` memiliki prioritas. Tool yang terdaftar di keduanya dihapus.114* **Keduanya diatur**: `disallowedTools` memiliki prioritas. Tool yang terdaftar di keduanya dihapus.

114 115 

115Dalam setiap kasus, set yang diselesaikan dibatasi pada [tool yang tersedia untuk subagents](/docs/id/sub-agents#available-tools): tool yang tidak tersedia untuk subagents tidak pernah diberikan, bahkan ketika terdaftar dalam `tools`.116Dalam setiap kasus, set yang diselesaikan dibatasi pada [tool yang tersedia untuk subagents](/docs/id/sub-agents#available-tools): tool yang tidak tersedia untuk subagents tidak pernah diberikan, bahkan ketika terdaftar dalam `tools`. Di mana kondisi dalam entri tabel tool `SubagentHandback` berlaku, Claude Code juga memberikan tool itu kepada subagent, bahkan jika Anda menghilangkannya dari `tools` atau mencantumkannya dalam `disallowedTools`.

116 117 

117Jika setiap entri dalam daftar `tools` subagent gagal cocok dengan tool yang dapat digunakan, tool Agent biasanya mengembalikan kesalahan yang menamai entri daripada meluncurkan subagent; lihat [Agent would be spawned with zero tools](/docs/id/errors#agent-would-be-spawned-with-zero-tools) untuk pesan dan cara memperbaiki setiap entri.118Jika setiap entri dalam daftar `tools` subagent gagal cocok dengan tool yang dapat digunakan, tool Agent biasanya mengembalikan kesalahan yang menamai entri daripada meluncurkan subagent; lihat [Agent would be spawned with zero tools](/docs/id/errors#agent-would-be-spawned-with-zero-tools) untuk pesan dan cara memperbaiki setiap entri.

118 119 


363 364 

364Anda terus bekerja dalam sesi yang sama dan Claude menyela ketika peristiwa tiba.365Anda terus bekerja dalam sesi yang sama dan Claude menyela ketika peristiwa tiba.

365 366 

367Setiap watch yang Claude mulai memiliki tenggat waktu: 5 menit secara default, paling lama 30 menit, dan paling lama 10 menit dalam run [non-interaktif](/docs/id/headless) yang diberikan prompt tunggal dengan `-p`.

368 

369Pada tenggat waktu, watch berakhir. Claude mendapat satu pemberitahuan, sehingga dapat memulai watch lagi jika masih diperlukan.

370 

366Hentikan monitor dengan meminta Claude untuk membatalkannya atau dengan mengakhiri sesi. Ketika Anda menghentikan [subagent](/docs/id/sub-agents) yang memulai monitors, misalnya dari `/tasks`, monitors tersebut berhenti bersamanya.371Hentikan monitor dengan meminta Claude untuk membatalkannya atau dengan mengakhiri sesi. Ketika Anda menghentikan [subagent](/docs/id/sub-agents) yang memulai monitors, misalnya dari `/tasks`, monitors tersebut berhenti bersamanya.

367 372 

368Ketika Monitor menjalankan perintah, ia menggunakan [aturan izin yang sama seperti Bash](/docs/id/permissions#tool-specific-permission-rules), jadi pola `allow` dan `deny` yang Anda tetapkan untuk Bash berlaku di sini juga. Sementara [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) aktif, Claude Code menyisihkan aturan allow yang menyebutkan `Monitor` itu sendiri, bersama dengan [aturan allow luas lainnya yang dihapusnya](/docs/id/permission-modes#how-the-classifier-evaluates-actions), sehingga classifier meninjau perintah Monitor dengan cara yang sama seperti meninjau perintah Bash.373Ketika Monitor menjalankan perintah, ia menggunakan [aturan izin yang sama seperti Bash](/docs/id/permissions#tool-specific-permission-rules), jadi pola `allow` dan `deny` yang Anda tetapkan untuk Bash berlaku di sini juga. Sementara [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) aktif, Claude Code menyisihkan aturan allow yang menyebutkan `Monitor` itu sendiri, bersama dengan [aturan allow luas lainnya yang dihapusnya](/docs/id/permission-modes#how-the-classifier-evaluates-actions), sehingga classifier meninjau perintah Monitor dengan cara yang sama seperti meninjau perintah Bash.


395| `url` | Yes | Endpoint untuk terhubung. Harus berupa URL `ws://` atau `wss://` tanpa kredensial tertanam atau spasi, hanya menggunakan karakter ASCII |400| `url` | Yes | Endpoint untuk terhubung. Harus berupa URL `ws://` atau `wss://` tanpa kredensial tertanam atau spasi, hanya menggunakan karakter ASCII |

396| `protocols` | No | Nama subprotokol WebSocket untuk ditawarkan selama handshake. Setiap entri harus berupa token subprotokol yang valid, dan daftar tidak dapat berisi duplikat |401| `protocols` | No | Nama subprotokol WebSocket untuk ditawarkan selama handshake. Setiap entri harus berupa token subprotokol yang valid, dan daftar tidak dapat berisi duplikat |

397 402 

398Input `timeout_ms` dan `persistent` berperilaku sama seperti untuk perintah: watch berakhir pada tenggat waktu kecuali `persistent` diatur, dan `TaskStop` membatalkannya lebih awal.403Tenggat waktu `timeout_ms` berlaku untuk watch WebSocket juga: watch berakhir pada tenggat waktu, dan `TaskStop` membatalkannya lebih awal.

399 404 

400Membuka WebSocket meminta persetujuan; dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) classifier memutuskan sebagai gantinya. Prompt tidak menawarkan opsi untuk melewati prompt di masa depan untuk host yang sama.405Membuka WebSocket meminta persetujuan; dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) classifier memutuskan sebagai gantinya. Prompt tidak menawarkan opsi untuk melewati prompt di masa depan untuk host yang sama.

401 406 


593* Daftarkan alat-alat dalam [`--tools`](/docs/id/cli-reference#cli-flags), yang membatasi alat bawaan sesi ke yang disebutkannya. Sertakan alat yang Anda inginkan bersama dengan alat bawaan lain yang Anda gunakan598* Daftarkan alat-alat dalam [`--tools`](/docs/id/cli-reference#cli-flags), yang membatasi alat bawaan sesi ke yang disebutkannya. Sertakan alat yang Anda inginkan bersama dengan alat bawaan lain yang Anda gunakan

594* Dalam Agent SDK, opsi [`allowedTools` dan `tools`](/docs/id/agent-sdk/todo-tracking#model-availability) bekerja dengan cara yang sama seperti dua flag599* Dalam Agent SDK, opsi [`allowedTools` dan `tools`](/docs/id/agent-sdk/todo-tracking#model-availability) bekerja dengan cara yang sama seperti dua flag

595 600 

596Dalam [sesi latar belakang](/docs/id/agent-view) dan dalam [Claude Code di web](/docs/id/claude-code-on-the-web), Claude Code menyediakan alat yang sama pada setiap model, terdaftar atau tidak.601Dalam [sesi latar belakang](/docs/id/agent-view) dan dalam [sesi cloud](/docs/id/claude-code-on-the-web), Claude Code menyediakan alat yang sama pada setiap model, terdaftar atau tidak.

597 602 

598Claude Code memberikan alat kepada subagent hanya ketika sesi Anda memilikinya, bahkan ketika subagent menjalankan model yang berbeda. Anggota tim [tim agen](/docs/id/agent-teams) dalam proses mengikuti sesi Anda dengan cara yang sama, sementara anggota tim dalam [panel terpisahnya sendiri](/docs/id/agent-teams#choose-a-display-mode) berjalan sebagai proses Claude Code terpisah, jadi modelnya sendiri yang memutuskan. Tanpa alat Task, agen berkoordinasi dengan timnya melalui pesan alih-alih [daftar tugas bersama](/docs/id/agent-teams#assign-and-claim-tasks).603Claude Code memberikan alat kepada subagent hanya ketika sesi Anda memilikinya, bahkan ketika subagent menjalankan model yang berbeda. Anggota tim [tim agen](/docs/id/agent-teams) dalam proses mengikuti sesi Anda dengan cara yang sama, sementara anggota tim dalam [panel terpisahnya sendiri](/docs/id/agent-teams#choose-a-display-mode) berjalan sebagai proses Claude Code terpisah, jadi modelnya sendiri yang memutuskan. Tanpa alat Task, agen berkoordinasi dengan timnya melalui pesan alih-alih [daftar tugas bersama](/docs/id/agent-teams#assign-and-claim-tasks).

599 604 


609 614 

610Beberapa perilaku membentuk respons yang diterima Claude:615Beberapa perilaku membentuk respons yang diterima Claude:

611 616 

617* WebFetch menolak `localhost` dan nama host lainnya tanpa titik, seperti nama intranet biasa, sebelum membuat permintaan. [Kesalahan yang dikembalikannya](/docs/id/errors#webfetch-cannot-fetch-localhost) memberitahu Claude untuk menjangkau server lokal dengan `curl` melalui Bash sebagai gantinya.

612* URL HTTP secara otomatis ditingkatkan ke HTTPS.618* URL HTTP secara otomatis ditingkatkan ke HTTPS.

613* Halaman besar dipotong ke batas karakter tetap sebelum diproses.619* Halaman besar dipotong ke batas karakter tetap sebelum diproses.

614* WebFetch menyimpan cache setiap respons selama 15 menit secara default, jadi pengambilan berulang dari URL yang sama kembali dengan cepat. Pada Claude Code v2.1.233 atau lebih baru, atur [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/id/env-vars#variables) untuk mengubah berapa lama WebFetch menyimpan setiap respons.620* WebFetch menyimpan cache setiap respons selama 15 menit secara default, jadi pengambilan berulang dari URL yang sama kembali dengan cepat. Pada Claude Code v2.1.233 atau lebih baru, atur [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/id/env-vars#variables) untuk mengubah berapa lama WebFetch menyimpan setiap respons.

ultrareview.md +14 −7

Details

10 Ultrareview adalah fitur pratinjau penelitian. Fitur, harga, dan ketersediaan dapat berubah berdasarkan umpan balik. Perintah adalah `/code-review ultra`. Ketika ultrareview tersedia untuk akun Anda, `/ultrareview` adalah alias.10 Ultrareview adalah fitur pratinjau penelitian. Fitur, harga, dan ketersediaan dapat berubah berdasarkan umpan balik. Perintah adalah `/code-review ultra`. Ketika ultrareview tersedia untuk akun Anda, `/ultrareview` adalah alias.

11</Note>11</Note>

12 12 

13Ultrareview adalah tinjauan kode yang mendalam yang berjalan di Claude Code pada infrastruktur web. Ketika Anda menjalankan `/code-review ultra`, Claude Code meluncurkan armada agen peninjau dalam sandbox jarak jauh untuk menemukan bug di cabang atau pull request Anda.13Ultrareview adalah tinjauan kode yang mendalam yang berjalan sebagai [sesi cloud](/docs/id/claude-code-on-the-web) pada infrastruktur Anthropic. Ketika Anda menjalankan `/code-review ultra`, Claude Code meluncurkan armada agen peninjau dalam sandbox cloud untuk menemukan bug di cabang atau pull request Anda.

14 14 

15Dibandingkan dengan `/code-review` lokal, ultrareview menawarkan:15Dibandingkan dengan `/code-review` lokal, ultrareview menawarkan:

16 16 

17* **Sinyal yang lebih tinggi**: setiap temuan yang dilaporkan secara independen direproduksi dan diverifikasi, sehingga hasil fokus pada bug nyata daripada saran gaya17* **Sinyal yang lebih tinggi**: setiap temuan yang dilaporkan secara independen direproduksi dan diverifikasi, sehingga hasil fokus pada bug nyata daripada saran gaya

18* **Cakupan yang lebih luas**: armada agen peninjau yang lebih besar menjelajahi perubahan secara paralel, yang mengungkap masalah yang mungkin terlewatkan oleh tinjauan lokal18* **Cakupan yang lebih luas**: armada agen peninjau yang lebih besar menjelajahi perubahan secara paralel, yang mengungkap masalah yang mungkin terlewatkan oleh tinjauan lokal

19* **Tidak ada penggunaan sumber daya lokal**: tinjauan berjalan sepenuhnya dalam sandbox jarak jauh, sehingga terminal Anda tetap bebas untuk pekerjaan lain saat berjalan19* **Tidak ada penggunaan sumber daya lokal**: tinjauan berjalan sepenuhnya dalam sandbox cloud, sehingga terminal Anda tetap bebas untuk pekerjaan lain saat berjalan

20 20 

21Ultrareview memerlukan autentikasi dengan akun claude.ai karena berjalan di Claude Code pada infrastruktur web. Jika Anda masuk hanya dengan kunci API, jalankan `/login` dan autentikasi dengan claude.ai terlebih dahulu. Ultrareview tidak tersedia saat menggunakan Claude Code dengan Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry, dan tidak tersedia untuk organisasi yang telah mengaktifkan Zero Data Retention. Ketika ultrareview tidak tersedia, `/code-review ultra` menjalankan tinjauan lokal dalam sesi Anda sebagai gantinya.21Ultrareview memerlukan autentikasi dengan akun claude.ai karena berjalan sebagai sesi cloud pada infrastruktur Anthropic. Jika Anda masuk hanya dengan kunci API, jalankan `/login` dan autentikasi dengan claude.ai terlebih dahulu. Ultrareview tidak tersedia saat menggunakan Claude Code dengan Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry, dan tidak tersedia untuk organisasi yang telah mengaktifkan Zero Data Retention. Ketika ultrareview tidak tersedia, `/code-review ultra` menjalankan tinjauan lokal dalam sesi Anda sebagai gantinya.

22 22 

23<h2 id="run-ultrareview-from-the-cli">23<h2 id="run-ultrareview-from-the-cli">

24 Jalankan ultrareview dari CLI24 Jalankan ultrareview dari CLI


79* **Interaktif**: dalam dialog peluncuran, pilih **Run and post the findings to the PR as me**. Jika Anda menambahkan `--post` ke perintah, seperti `/code-review ultra 1234 --post`, Claude Code memilih sebelumnya pilihan itu dan masih bertanya sebelum meluncurkan.79* **Interaktif**: dalam dialog peluncuran, pilih **Run and post the findings to the PR as me**. Jika Anda menambahkan `--post` ke perintah, seperti `/code-review ultra 1234 --post`, Claude Code memilih sebelumnya pilihan itu dan masih bertanya sebelum meluncurkan.

80* **Non-interaktif**: jalankan [subperintah `claude ultrareview`](#run-ultrareview-non-interactively) dengan `--post`. Anda menyetujui posting dengan menjalankan subperintah dengan flag, jadi Claude Code memposting tanpa bertanya. Dalam run `claude -p '/code-review ultra'`, Claude Code keluar sebelum temuan tiba, jadi tidak memposting apa pun; gunakan subperintah sebagai gantinya.80* **Non-interaktif**: jalankan [subperintah `claude ultrareview`](#run-ultrareview-non-interactively) dengan `--post`. Anda menyetujui posting dengan menjalankan subperintah dengan flag, jadi Claude Code memposting tanpa bertanya. Dalam run `claude -p '/code-review ultra'`, Claude Code keluar sebelum temuan tiba, jadi tidak memposting apa pun; gunakan subperintah sebagai gantinya.

81 81 

82Claude Code tidak memposting dari mesin Anda. Ini mengirim temuan ke sesi di [Claude Code on the web](/docs/id/claude-code-on-the-web), yang memposting komentar melalui akun GitHub yang telah Anda hubungkan ke Claude. Posting memerlukan sign-in claude.ai yang sama seperti tinjauan itu sendiri. Karena posting berjalan melalui Claude Code on the web, tidak tersedia pada penyedia pihak ketiga atau ketika Anda menetapkan [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars).82Claude Code tidak memposting dari mesin Anda. Ini mengirim ID sesi tinjauan ke Anthropic API, yang memposting temuan tersimpan tinjauan sebagai komentar melalui akun GitHub yang telah Anda hubungkan ke Claude. Posting memerlukan sign-in claude.ai yang sama seperti tinjauan itu sendiri, dan tidak tersedia pada penyedia pihak ketiga atau ketika Anda menetapkan [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars).

83 83 

84Dalam sesi interaktif, Claude Code memulai posting ketika temuan tiba, jadi jaga sesi tetap terbuka sampai tinjauan selesai. Claude Code menyimpan pilihan posting hanya dalam sesi itu. Jika sesi berakhir sebelum tinjauan selesai, Claude Code tidak memposting apa pun, bahkan jika Anda melanjutkan percakapan nanti.84Dalam sesi interaktif, Claude Code memulai posting ketika temuan tiba, jadi jaga sesi tetap terbuka sampai tinjauan selesai. Claude Code menyimpan pilihan posting hanya dalam sesi itu. Jika sesi berakhir sebelum tinjauan selesai, Claude Code tidak memposting apa pun, bahkan jika Anda melanjutkan percakapan nanti.

85 85 

86Ketika posting tidak dapat dimulai saat sesi Anda terbuka, Claude memberi tahu Anda bahwa tidak ada yang pergi ke PR dan mengapa, dan temuan tetap di terminal Anda sehingga Anda dapat mempostingnya dengan tangan.86Ketika posting selesai, Claude memberi tahu Anda hasilnya:

87 

88* **Posted**: Claude memberi Anda tautan ke komentar.

89* **Already posted**: posting sebelumnya dari tinjauan yang sama telah menempatkan komentar di PR, jadi Claude menautkan Anda ke pull request sebagai gantinya memposting lagi.

90* **Failed**: Claude memberi tahu Anda mengapa, dan temuan tetap di terminal Anda sehingga Anda dapat mempostingnya dengan tangan.

87 91 

88<h3 id="pass-a-request-in-plain-words">92<h3 id="pass-a-request-in-plain-words">

89 Teruskan permintaan dalam kata-kata polos93 Teruskan permintaan dalam kata-kata polos


185 189 

186Jika Anda mengganggu subperintah, tinjauan jarak jauh terus berjalan; ikuti URL sesi yang dicetak ke stderr untuk menontonnya di browser.190Jika Anda mengganggu subperintah, tinjauan jarak jauh terus berjalan; ikuti URL sesi yang dicetak ke stderr untuk menontonnya di browser.

187 191 

188Dengan `--post`, subperintah memulai posting tepat setelah mencetak temuan. Jika jalankan gagal, timeout, atau Anda mengganggu, subperintah tidak memposting apa pun. Jika tinjauan selesai tetapi posting tidak dapat dimulai, Claude Code mencetak alasan ke stderr, dan temuan tetap di stdout sehingga Anda dapat mempostingnya dengan tangan.192Dengan `--post`, subperintah memulai posting tepat setelah mencetak temuan, dan mencetak tautan ke stderr.

193 

194* Jika jalankan gagal, timeout, atau Anda mengganggu, subperintah tidak memposting apa pun.

195* Jika tinjauan selesai tetapi komentar tidak diposting, Claude Code mencetak alasan ke stderr, dan temuan tetap di stdout sehingga Anda dapat mempostingnya dengan tangan.

189 196 

190Untuk tinjauan otomatis pada pull request GitHub, [Code Review](/docs/id/code-review) terintegrasi dengan repositori Anda secara langsung dan memposting temuan sebagai komentar PR inline tanpa langkah CLI.197Untuk tinjauan otomatis pada pull request GitHub, [Code Review](/docs/id/code-review) terintegrasi dengan repositori Anda secara langsung dan memposting temuan sebagai komentar PR inline tanpa langkah CLI.

191 198 


198| | `/code-review` | `/code-review ultra` |205| | `/code-review` | `/code-review ultra` |

199| ------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------- |206| ------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------- |

200| Target | diff kerja Anda, permintaan tarik, cabang, atau jalur | diff kerja Anda atau permintaan tarik |207| Target | diff kerja Anda, permintaan tarik, cabang, atau jalur | diff kerja Anda atau permintaan tarik |

201| Berjalan | secara lokal di sesi Anda | secara jarak jauh di sandbox cloud |208| Berjalan | secara lokal di sesi Anda | di sandbox cloud |

202| Kedalaman | skala dengan argumen effort | armada multi-agen dengan verifikasi independen |209| Kedalaman | skala dengan argumen effort | armada multi-agen dengan verifikasi independen |

203| Durasi | detik hingga beberapa menit | kira-kira 5 hingga 10 menit |210| Durasi | detik hingga beberapa menit | kira-kira 5 hingga 10 menit |

204| Biaya | dihitung terhadap penggunaan normal | run gratis, kemudian kira-kira \$5 hingga \$25 per tinjauan sebagai kredit penggunaan |211| Biaya | dihitung terhadap penggunaan normal | run gratis, kemudian kira-kira \$5 hingga \$25 per tinjauan sebagai kredit penggunaan |

voice-dictation.md +26 −26

Details

17Dikte suara mengalirkan audio yang direkam ke server Anthropic untuk transkripsi. Audio tidak diproses secara lokal. Layanan ini memerlukan semua hal berikut:17Dikte suara mengalirkan audio yang direkam ke server Anthropic untuk transkripsi. Audio tidak diproses secara lokal. Layanan ini memerlukan semua hal berikut:

18 18 

19* **Akun Claude.ai**: layanan ucapan-ke-teks hanya tersedia saat Anda melakukan autentikasi dengan akun Claude.ai, dan tidak tersedia saat Claude Code dikonfigurasi untuk menggunakan kunci API Anthropic secara langsung, Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry.19* **Akun Claude.ai**: layanan ucapan-ke-teks hanya tersedia saat Anda melakukan autentikasi dengan akun Claude.ai, dan tidak tersedia saat Claude Code dikonfigurasi untuk menggunakan kunci API Anthropic secara langsung, Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry.

20* **Mikrofon lokal**: dikte suara tidak berfungsi di lingkungan jarak jauh seperti [Claude Code di web](/docs/id/claude-code-on-the-web) atau sesi SSH.20* **Mikrofon lokal**: dikte suara tidak berfungsi di [sesi cloud](/docs/id/claude-code-on-the-web) atau sesi SSH.

21* **WSLg, jika Anda menjalankan Claude Code di WSL**: WSLg disertakan dengan WSL2 saat diinstal dari Microsoft Store di Windows 10 atau 11. Jika WSLg tidak tersedia, misalnya di WSL1, jalankan Claude Code di Windows asli sebagai gantinya.21* **WSLg, jika Anda menjalankan Claude Code di WSL**: WSLg disertakan dengan WSL2 saat diinstal dari Microsoft Store di Windows 10 atau 11. Jika WSLg tidak tersedia, misalnya di WSL1, jalankan Claude Code di Windows asli sebagai gantinya.

22 22 

23Transkripsi tidak menggunakan pesan Claude atau token dan tidak dihitung terhadap batas yang ditampilkan di `/usage`. Lihat [penggunaan data](/docs/id/data-usage) untuk mengetahui bagaimana Anthropic menangani data Anda.23Transkripsi tidak menggunakan pesan Claude atau token dan tidak dihitung terhadap batas yang ditampilkan di `/usage`. Lihat [penggunaan data](/docs/id/data-usage) untuk mengetahui bagaimana Anthropic menangani data Anda.


167Beberapa kunci tidak dikirimkan ke aplikasi terminal dan tidak dapat diikat sama sekali. Misalnya, `Caps Lock` menampilkan kesalahan jika Anda mencoba mengikatnya. Lihat [sesuaikan pintasan keyboard](/docs/id/keybindings) untuk sintaks keybinding lengkap dan daftar pintasan yang dicadangkan.167Beberapa kunci tidak dikirimkan ke aplikasi terminal dan tidak dapat diikat sama sekali. Misalnya, `Caps Lock` menampilkan kesalahan jika Anda mencoba mengikatnya. Lihat [sesuaikan pintasan keyboard](/docs/id/keybindings) untuk sintaks keybinding lengkap dan daftar pintasan yang dicadangkan.

168 168 

169<h2 id="troubleshooting">169<h2 id="troubleshooting">

170 Pemecahan Masalah170 Troubleshooting

171</h2>171</h2>

172 172 

173Masalah umum saat dikte suara tidak diaktifkan atau merekam:173Masalah umum ketika voice dictation tidak aktif atau merekam:

174 174 

175* **`Voice mode requires a Claude.ai account`**: Anda diautentikasi dengan kunci API atau penyedia pihak ketiga. Jalankan `/login` untuk masuk dengan akun Claude.ai.175* **`Voice mode requires a Claude.ai account`**: Anda diautentikasi dengan API key atau penyedia pihak ketiga. Jalankan `/login` untuk masuk dengan akun claude.ai.

176* **`Voice mode is disabled by your organization's policy`**: kebijakan administrator untuk organisasi Anda menonaktifkan dikte suara. Hubungi administrator organisasi Anda untuk mengonfirmasi apakah dikte suara tersedia untuk organisasi Anda.176* **`Voice mode is disabled by your organization's policy`**: kebijakan administrator untuk organisasi Anda mematikan voice dictation. Hubungi administrator organisasi Anda untuk mengonfirmasi apakah voice dictation tersedia untuk organisasi Anda.

177* **`Microphone access is denied`**: berikan izin mikrofon ke terminal Anda di pengaturan sistem. Di macOS, buka System Settings → Privacy & Security → Microphone dan aktifkan aplikasi terminal Anda, kemudian jalankan `/voice` lagi. Di Windows, buka Settings → Privacy & security → Microphone dan aktifkan akses mikrofon untuk aplikasi desktop, kemudian jalankan `/voice` lagi. Jika terminal Anda tidak terdaftar dalam pengaturan macOS, lihat [Terminal tidak terdaftar dalam pengaturan Mikrofon macOS](#terminal-not-listed-in-macos-microphone-settings).177* **`Microphone access is denied`**: berikan izin mikrofon ke terminal Anda di pengaturan sistem. Di macOS, buka System Settings → Privacy & Security → Microphone dan aktifkan aplikasi terminal Anda, kemudian jalankan `/voice` lagi. Di Windows, buka Settings → Privacy & security → Microphone dan aktifkan akses mikrofon untuk aplikasi desktop, kemudian jalankan `/voice` lagi. Jika terminal Anda tidak terdaftar dalam pengaturan macOS, lihat [Terminal not listed in macOS Microphone settings](#terminal-not-listed-in-macos-microphone-settings).

178* **`Voice mode requires SoX for audio recording` di Linux**: modul audio asli tidak dapat dimuat dan tidak ada fallback yang diinstal. Instal SoX dengan perintah yang ditampilkan dalam pesan kesalahan, misalnya `sudo apt-get install sox`.178* **`Voice mode requires SoX for audio recording` on Linux**: modul audio native tidak dapat dimuat dan tidak ada fallback yang terinstal. Instal SoX dengan perintah yang ditampilkan dalam pesan kesalahan, misalnya `sudo apt-get install sox`.

179* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**: SoX diinstal, tetapi host tidak memiliki perangkat penangkap audio, misalnya server headless atau kontainer. Jalankan Claude Code pada mesin dengan mikrofon. Mulai dari v2.1.195, Claude Code di Linux melaporkan pesan ini dalam situasi itu; versi sebelumnya meminta Anda untuk menginstal SoX bahkan ketika sudah diinstal.179* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**: SoX terinstal, tetapi host tidak memiliki perangkat penangkap audio, misalnya server headless atau container. Jalankan Claude Code di mesin yang memiliki mikrofon. Mulai dari v2.1.195, Claude Code di Linux melaporkan pesan ini dalam situasi tersebut; versi sebelumnya meminta Anda untuk menginstal SoX bahkan ketika sudah terinstal.

180* **`Voice mode could not find a working audio recorder in WSL`**: WSLg merutekan audio melalui PulseAudio daripada perangkat ALSA, jadi SoX memerlukan backend PulseAudio-nya diinstal secara eksplisit. Jalankan `sudo apt install sox libsox-fmt-pulse`. Menginstal `sox` saja menarik backend ALSA, yang tidak dapat merekam di WSL karena tidak ada perangkat `/dev/snd`.180* **`Voice mode could not find a working audio recorder in WSL`**: WSLg merutekan audio melalui PulseAudio daripada perangkat ALSA, jadi SoX memerlukan backend PulseAudio-nya terinstal secara eksplisit. Jalankan `sudo apt install sox libsox-fmt-pulse`. Menginstal `sox` saja menarik backend ALSA, yang tidak dapat merekam di WSL karena tidak ada perangkat `/dev/snd`.

181* **`Voice input is failing repeatedly and has been paused`**: dikte suara mengalami tiga kegagalan penangkapan dalam 10 detik. Claude Code menjeda dikte sampai 10 detik telah berlalu sejak yang pertama dari kegagalan tersebut. Kegagalan dihitung apakah mikrofon gagal dimulai atau perekam dimulai dan kemudian berhenti tanpa menghasilkan audio apa pun. Ini biasanya berarti mikrofon atau tumpukan audio di host ini tidak dapat menangkap audio, misalnya server headless, shell jarak jauh tanpa passthrough audio, atau izin mikrofon yang ditolak. Konfirmasi perangkat input yang berfungsi, perbaiki penyebab mendasar dari entri di atas, kemudian picu suara lagi. Sebelum v2.1.202, hanya kegagalan awal yang diperhitungkan menuju jeda.181* **`Voice input is failing repeatedly and has been paused`**: voice dictation mengalami tiga kegagalan penangkapan dalam 10 detik. Claude Code menjeda dictation hingga 10 detik telah berlalu sejak yang pertama dari kegagalan tersebut. Kegagalan dihitung apakah mikrofon gagal dimulai atau perekam dimulai dan kemudian berhenti tanpa menghasilkan audio apa pun. Ini biasanya berarti mikrofon atau audio stack di host ini tidak dapat menangkap audio, misalnya server headless, shell jarak jauh tanpa passthrough audio, atau izin mikrofon ditolak. Konfirmasi perangkat input yang berfungsi, perbaiki penyebab mendasar dari entri di atas, kemudian picu voice lagi. Sebelum v2.1.202, hanya kegagalan start-up yang diperhitungkan menuju jeda.

182* **Tidak ada yang terjadi saat menahan `Space` dalam mode tahan**: perhatikan input prompt saat Anda menahan. Jika spasi terus menumpuk, dikte suara kemungkinan mati; jalankan `/voice hold` untuk mengaktifkannya. Jika hanya satu atau dua spasi muncul dan kemudian tidak ada, dikte suara aktif tetapi deteksi tahan tidak dipicu. Deteksi tahan memerlukan terminal Anda untuk mengirim peristiwa pengulangan kunci, sehingga tidak dapat mendeteksi kunci yang ditahan jika pengulangan kunci dinonaktifkan di tingkat OS. Beralih ke mode ketuk dengan `/voice tap` untuk menghindari persyaratan pengulangan kunci.182* **Nothing happens when holding `Space` in hold mode**: perhatikan input prompt saat Anda menahan. Jika spasi terus bertambah, voice dictation kemungkinan besar mati; jalankan `/voice hold` untuk mengaktifkannya. Jika hanya satu atau dua spasi muncul dan kemudian tidak ada, voice dictation aktif tetapi deteksi hold tidak terpicu. Deteksi hold memerlukan terminal Anda untuk mengirim key-repeat events, jadi tidak dapat mendeteksi kunci yang ditahan jika key-repeat dinonaktifkan di tingkat OS. Beralih ke tap mode dengan `/voice tap` untuk menghindari persyaratan key-repeat.

183* **Mengetuk `Space` mengetik spasi alih-alih merekam dalam mode ketuk**: ketukan pertama hanya mulai merekam saat input prompt kosong. Hapus input terlebih dahulu, atau periksa bahwa Anda dalam mode ketuk dengan menjalankan `/voice tap`.183* **Tapping `Space` types a space instead of recording in tap mode**: ketukan pertama hanya memulai perekaman ketika input prompt kosong. Hapus input terlebih dahulu, atau periksa bahwa Anda dalam tap mode dengan menjalankan `/voice tap`.

184* **`No audio detected from microphone`**: perekaman dimulai tetapi menangkap keheningan. Konfirmasi perangkat input yang benar diatur sebagai default sistem dan tingkat inputnya tidak dibisukan atau mendekati nol. Di Windows, buka Settings → System → Sound → Input dan pilih mikrofon Anda. Di macOS, buka System Settings → Sound → Input.184* **`No audio detected from microphone`**: perekaman dimulai tetapi menangkap kesunyian. Konfirmasi perangkat input yang benar diatur sebagai default sistem dan tingkat inputnya tidak dibisukan atau mendekati nol. Di Windows, buka Settings → System → Sound → Input dan pilih mikrofon Anda. Di macOS, buka System Settings → Sound → Input.

185* **`Voice connection failed`**: perekaman Anda tidak pernah mencapai layanan transkripsi karena koneksi gagal. Periksa jaringan Anda dan coba lagi. Perekaman yang menangkap audio tidak melaporkan `No audio detected from microphone` alih-alih pesan ini. Sebelum v2.1.200, mikrofon senyap dapat melaporkan kegagalan koneksi, yang menyarankan masalah jaringan ketika masalah sebenarnya adalah perangkat input.185* **`Voice connection failed`**: perekaman Anda tidak pernah mencapai layanan transkripsi karena koneksi gagal. Periksa jaringan Anda dan coba lagi. Perekaman yang tidak menangkap audio melaporkan `No audio detected from microphone` alih-alih pesan ini. Sebelum v2.1.200, mikrofon senyap dapat melaporkan kegagalan koneksi, yang menyarankan masalah jaringan ketika masalah sebenarnya adalah perangkat input.

186* **`Voice stream error: WebSocket upgrade rejected with HTTP <status>`**: server menolak koneksi Anda dengan status HTTP yang ditampilkan, jadi ini bukan pemadaman jaringan. Status dalam rentang 400 biasanya berarti masuk yang sudah usang, atau layanan proxy atau perlindungan bot menjawab sebagai pengganti layanan transkripsi. Jalankan `/login` untuk menyegarkan masuk Anda, dan periksa VPN atau proxy di jalur jaringan Anda jika status terus berlanjut. Jika Anda masih merekam saat penolakan tiba, Claude Code mencoba ulang status di luar rentang 400 sekali sebelum menampilkan pesan ini; tidak mencoba ulang status dalam rentang 400. Di v2.1.229 hingga v2.1.231, build asli tidak menampilkan pesan ini: Claude Code terus merekam, footer mode tahan masih menampilkan `listening…`, dan melaporkan `Voice connection failed` setelah Anda berhenti merekam.186* **`Voice stream error: WebSocket upgrade rejected with HTTP <status>`**: server menolak koneksi Anda dengan status HTTP yang ditampilkan, jadi ini bukan pemadaman jaringan. Status dalam rentang 400 biasanya berarti sign-in basi, atau layanan proxy atau bot-protection menjawab sebagai pengganti layanan transkripsi. Jalankan `/login` untuk menyegarkan sign-in Anda, dan periksa VPN atau proxy di jalur jaringan Anda jika status berlanjut. Jika Anda masih merekam ketika penolakan tiba, Claude Code mencoba ulang status di luar rentang 400 sekali sebelum menampilkan pesan ini; tidak mencoba ulang status dalam rentang 400. Dalam v2.1.229 hingga v2.1.231, build native tidak menampilkan pesan ini: Claude Code terus merekam, footer hold-mode masih menampilkan `listening…`, dan melaporkan `Voice connection failed` setelah Anda berhenti merekam.

187* **`No speech detected`**: audio mencapai layanan transkripsi tetapi tidak ada kata yang dikenali. Berbicara lebih dekat ke mikrofon, kurangi kebisingan latar belakang, dan konfirmasi [bahasa dikte](#change-the-dictation-language) Anda cocok dengan bahasa yang Anda gunakan.187* **`No speech detected`**: audio mencapai layanan transkripsi tetapi tidak ada kata yang dikenali. Berbicara lebih dekat ke mikrofon, kurangi kebisingan latar belakang, dan konfirmasi [dictation language](#change-the-dictation-language) Anda cocok dengan bahasa yang Anda gunakan.

188* **Transkripsi berantakan atau dalam bahasa yang salah**: dikte default ke Bahasa Inggris. Jika Anda mendikte dalam bahasa lain, atur di `/config` terlebih dahulu. Lihat [Ubah bahasa dikte](#change-the-dictation-language).188* **Transcription is garbled or in the wrong language**: dictation default ke English. Jika Anda mendiktekan dalam bahasa lain, atur terlebih dahulu di `/config`. Lihat [Change the dictation language](#change-the-dictation-language).

189 189 

190<h3 id="terminal-not-listed-in-macos-microphone-settings">190<h3 id="terminal-not-listed-in-macos-microphone-settings">

191 Terminal tidak terdaftar dalam pengaturan Mikrofon macOS191 Terminal not listed in macOS Microphone settings

192</h3>192</h3>

193 193 

194Jika aplikasi terminal Anda tidak muncul di bawah System Settings → Privacy & Security → Microphone, tidak ada toggle yang dapat Anda aktifkan. Atur ulang status izin untuk terminal Anda sehingga `/voice` berikutnya menjalankan prompt izin macOS yang segar.194Jika aplikasi terminal Anda tidak muncul di bawah System Settings → Privacy & Security → Microphone, tidak ada toggle yang dapat Anda aktifkan. Atur ulang status izin untuk terminal Anda sehingga `/voice` run berikutnya memicu prompt izin macOS yang segar.

195 195 

196<Steps>196<Steps>

197 <Step title="Atur ulang izin mikrofon untuk terminal Anda">197 <Step title="Reset the microphone permission for your terminal">

198 Jalankan `tccutil reset Microphone <bundle-id>`, mengganti `<bundle-id>` dengan pengenal terminal Anda: `com.apple.Terminal` untuk Terminal bawaan, atau `com.googlecode.iterm2` untuk iTerm2. Untuk terminal lain, cari pengenal dengan `osascript -e 'id of app "AppName"'`.198 Jalankan `tccutil reset Microphone <bundle-id>`, mengganti `<bundle-id>` dengan identifier terminal Anda: `com.apple.Terminal` untuk Terminal bawaan, atau `com.googlecode.iterm2` untuk iTerm2. Untuk terminal lain, cari identifier dengan `osascript -e 'id of app "AppName"'`.

199 199 

200 <Warning>200 <Warning>

201 Anda dapat menjalankan `tccutil reset Microphone` tanpa ID bundle, tetapi ini mencabut akses mikrofon dari setiap aplikasi di Mac Anda, termasuk aplikasi seperti Zoom atau Slack. Setiap aplikasi perlu meminta akses lagi pada penggunaan berikutnya, jadi jangan jalankan selama panggilan aktif.201 Anda dapat menjalankan `tccutil reset Microphone` tanpa bundle ID, tetapi ini mencabut akses mikrofon dari setiap aplikasi di Mac Anda, termasuk aplikasi seperti Zoom atau Slack. Setiap aplikasi akan perlu meminta akses lagi pada penggunaan berikutnya, jadi jangan jalankan selama panggilan aktif.

202 </Warning>202 </Warning>

203 </Step>203 </Step>

204 204 

205 <Step title="Keluar dan luncurkan ulang terminal Anda">205 <Step title="Quit and relaunch your terminal">

206 macOS tidak akan meminta ulang proses yang sudah berjalan. Keluar dari aplikasi terminal dengan Cmd+Q, bukan hanya tutup jendelanya, kemudian buka lagi.206 macOS tidak akan meminta ulang proses yang sudah berjalan. Keluar dari aplikasi terminal dengan Cmd+Q, bukan hanya menutup jendelanya, kemudian buka lagi.

207 </Step>207 </Step>

208 208 

209 <Step title="Picu prompt segar">209 <Step title="Trigger a fresh prompt">

210 Mulai Claude Code dan jalankan `/voice`. macOS meminta akses mikrofon; izinkan.210 Mulai Claude Code dan jalankan `/voice`. macOS meminta akses mikrofon; izinkan.

211 </Step>211 </Step>

212</Steps>212</Steps>

vs-code.md +17 −4

Details

125 125 

126 Daftar tugas terbaru Claude tetap terlihat, begitu juga dengan teks pertanyaan yang tertunda dari Claude yang ditanyakan; ini memerlukan Claude Code v2.1.225 atau lebih baru. Saat Claude menjalankan [subagents](/docs/id/sub-agents), baris kemajuan langsung dengan aktivitas terbaru mereka muncul di bawah grup panggilan alat yang memulainya. Ini memerlukan Claude Code v2.1.269 atau lebih baru.126 Daftar tugas terbaru Claude tetap terlihat, begitu juga dengan teks pertanyaan yang tertunda dari Claude yang ditanyakan; ini memerlukan Claude Code v2.1.225 atau lebih baru. Saat Claude menjalankan [subagents](/docs/id/sub-agents), baris kemajuan langsung dengan aktivitas terbaru mereka muncul di bawah grup panggilan alat yang memulainya. Ini memerlukan Claude Code v2.1.269 atau lebih baru.

127 * Untuk melaporkan bug, klik **Report a problem** di bagian bawah menu, atau ketik `/bug` atau `/feedback` dengan deskripsi opsional yang mengisi laporan sebelumnya. Ketika Anda mengirimkan laporan dan Anda masuk ke Anthropic pada koneksi pihak pertama, Claude Code mengirimkannya ke Anthropic. Pada penyedia pihak ketiga, atau tanpa kredensial Anthropic, dialog masih terbuka, tetapi mengirimkan menunjukkan kesalahan dan tidak mengirim apa pun: tidak seperti `/bug` CLI, ekstensi tidak menulis arsip lokal. Memerlukan Claude Code v2.1.229 atau lebih baru.127 * Untuk melaporkan bug, klik **Report a problem** di bagian bawah menu, atau ketik `/bug` atau `/feedback` dengan deskripsi opsional yang mengisi laporan sebelumnya. Ketika Anda mengirimkan laporan dan Anda masuk ke Anthropic pada koneksi pihak pertama, Claude Code mengirimkannya ke Anthropic. Pada penyedia pihak ketiga, atau tanpa kredensial Anthropic, dialog masih terbuka, tetapi mengirimkan menunjukkan kesalahan dan tidak mengirim apa pun: tidak seperti `/bug` CLI, ekstensi tidak menulis arsip lokal. Memerlukan Claude Code v2.1.229 atau lebih baru.

128 

129 Jika kebijakan organisasi Anda mematikan umpan balik produk, **Report a problem** tidak muncul di menu, dan `/bug` serta `/feedback` menampilkan pemberitahuan `Feedback is turned off by your organization's policy or this environment's settings.` alih-alih membuka laporan.

128* **Side questions**: ketik `/btw` diikuti oleh pertanyaan untuk bertanya tentang sesi Anda [tanpa menambah percakapan](/docs/id/interactive-mode#side-questions-with-%2Fbtw). Jawaban terbuka di panel di samping obrolan, di mana Anda dapat mengajukan pertanyaan lanjutan. Thread bertahan dari muat ulang jendela. Claude Code menyimpan 20 pertukaran terbaru dan thread yang disimpan kedaluwarsa pada jadwal [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays), selama Claude Code dapat [dengan aman menentukan periode retensi](/docs/id/claude-directory#cleaned-up-automatically). Untuk menghapus thread, klik ikon tempat sampah di panel. Memerlukan Claude Code v2.1.227 atau lebih baru.130* **Side questions**: ketik `/btw` diikuti oleh pertanyaan untuk bertanya tentang sesi Anda [tanpa menambah percakapan](/docs/id/interactive-mode#side-questions-with-%2Fbtw). Jawaban terbuka di panel di samping obrolan, di mana Anda dapat mengajukan pertanyaan lanjutan. Thread bertahan dari muat ulang jendela. Claude Code menyimpan 20 pertukaran terbaru dan thread yang disimpan kedaluwarsa pada jadwal [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays), selama Claude Code dapat [dengan aman menentukan periode retensi](/docs/id/claude-directory#cleaned-up-automatically). Untuk menghapus thread, klik ikon tempat sampah di panel. Memerlukan Claude Code v2.1.227 atau lebih baru.

129* **Context indicator**: kotak prompt menunjukkan berapa banyak jendela konteks Claude yang Anda gunakan. Claude secara otomatis mengompres saat diperlukan, atau Anda dapat menjalankan `/compact` secara manual.131* **Context indicator**: kotak prompt menunjukkan berapa banyak jendela konteks Claude yang Anda gunakan. Claude secara otomatis mengompres saat diperlukan, atau Anda dapat menjalankan `/compact` secara manual.

132* **Prompt cache clock**: ikon jam di samping indikator konteks memperkirakan berapa banyak waktu [prompt cache](/docs/id/prompt-caching) percakapan yang tersisa sebelum kedaluwarsa. Ini menghitung mundur dari [lifetime](/docs/id/prompt-caching#cache-lifetime) cache lima menit atau satu jam, dan setiap respons yang menggunakan cache memulai ulang hitungan mundur. Terlepas dari pemadatan, [tindakan yang membatalkan cache](/docs/id/prompt-caching#actions-that-invalidate-the-cache) tidak mengatur ulang jam, jadi masih dapat menunjukkan menit yang tersisa setelah Anda beralih model.

133 * Sampai hitungan mundur habis, ikon menunjukkan menit yang tersisa, seperti **12m**.

134 * Ketika hitungan mundur habis, menit menghilang dan ikon berubah merah, atau warna kesalahan tema Anda, sampai respons berikutnya. Cache mungkin telah kedaluwarsa, jadi harapkan respons yang lebih lambat dan lebih mahal untuk pesan Anda berikutnya saat cache dibangun kembali. Jika lifetime lima menit terus habis di antara pesan Anda, lihat [Pilih TTL sendiri](/docs/id/prompt-caching#choose-the-ttl-yourself).

135 * Tepat setelah percakapan [dipadatkan](/docs/id/prompt-caching#compacting-the-conversation), ikon juga berubah merah tanpa menit sampai respons berikutnya, karena cache tidak mencakup percakapan yang dipadatkan namun.

130* **Agent map**: ketika percakapan mencakup [subagents](/docs/id/sub-agents), hitungan agen seperti **2 agents** muncul di bagian bawah kotak prompt. Titiknya menunjukkan apakah ada subagent yang bekerja atau menunggu izin Anda.136* **Agent map**: ketika percakapan mencakup [subagents](/docs/id/sub-agents), hitungan agen seperti **2 agents** muncul di bagian bawah kotak prompt. Titiknya menunjukkan apakah ada subagent yang bekerja atau menunggu izin Anda.

131 137 

132 Klik hitungan agen untuk membuka peta agen, yang menggambar subagent percakapan sebagai pohon di bawah agen utama, masing-masing dengan status, waktu yang telah berlalu, dan hitungan token. Klik subagent untuk melihat prompt dan panggilan alat, buka transkrip read-only, atau hentikan saat berjalan. Memerlukan Claude Code v2.1.269 atau lebih baru.138 Klik hitungan agen untuk membuka peta agen, yang menggambar subagent percakapan sebagai pohon di bawah agen utama, masing-masing dengan status, waktu yang telah berlalu, dan hitungan token. Klik subagent untuk melihat prompt dan panggilan alat, buka transkrip read-only, atau hentikan saat berjalan. Memerlukan Claude Code v2.1.269 atau lebih baru.


146 152 

147Untuk PDF besar, Anda dapat meminta Claude membaca halaman tertentu alih-alih seluruh file: satu halaman, rentang seperti halaman 1-10, atau rentang terbuka seperti halaman 3 ke depan.153Untuk PDF besar, Anda dapat meminta Claude membaca halaman tertentu alih-alih seluruh file: satu halaman, rentang seperti halaman 1-10, atau rentang terbuka seperti halaman 3 ke depan.

148 154 

149Ketika Anda memilih teks di editor, Claude dapat melihat kode yang disorot secara otomatis. Footer kotak prompt menunjukkan berapa banyak baris yang dipilih. Tekan `Option+K` (Mac) / `Alt+K` (Windows/Linux) untuk menyisipkan @-mention dengan jalur file dan nomor baris (misalnya, `@app.ts#5-10`). Klik **X** pada indikator seleksi untuk menghapusnya sehingga Claude tidak menerima seleksi. Indikator muncul kembali ketika Anda memilih teks lain atau beralih ke file yang berbeda.155Ketika Anda memilih teks di editor, Claude dapat melihat kode yang disorot secara otomatis. Footer kotak prompt menunjukkan berapa banyak baris yang dipilih. Tekan `Option+K` (Mac) / `Alt+K` (Windows/Linux) untuk menyisipkan @-mention dengan jalur file dan nomor baris (misalnya, `@app.ts#5-10`). Klik **X** pada indikator seleksi untuk menghapusnya sehingga Claude tidak menerima seleksi. Indikator muncul kembali ketika Anda memilih teks lain.

156 

157Claude juga melihat file mana yang Anda buka di editor, bahkan ketika tidak ada yang dipilih, dan kotak prompt menunjukkan namanya. Untuk menambahkan hanya teks yang dipilih, matikan [pengaturan Attach Open File](vscode://settings/claudeCode.attachOpenFile). Pengaturan memerlukan Claude Code v2.1.271 atau lebih baru.

150 158 

151Untuk melampirkan gambar, tempel dari clipboard Anda ke kotak prompt. Anda juga dapat menahan `Shift` sambil menyeret file ke kotak prompt untuk menambahkannya sebagai lampiran. Klik X pada lampiran apa pun untuk menghapusnya dari konteks.159Untuk melampirkan gambar, tempel dari clipboard Anda ke kotak prompt. Anda juga dapat menahan `Shift` sambil menyeret file ke kotak prompt untuk menambahkannya sebagai lampiran. Klik X pada lampiran apa pun untuk menghapusnya dari konteks.

152 160 


174 Lanjutkan sesi cloud dari Claude.ai182 Lanjutkan sesi cloud dari Claude.ai

175</h3>183</h3>

176 184 

177Jika Anda menggunakan [Claude Code di web](/docs/id/claude-code-on-the-web), Anda dapat melanjutkan sesi cloud tersebut langsung di VS Code. Ini memerlukan masuk dengan **Claude.ai Subscription**, bukan Anthropic Console.185Jika Anda menjalankan [sesi cloud](/docs/id/claude-code-on-the-web), Anda dapat melanjutkan sesi tersebut langsung di VS Code. Ini memerlukan masuk dengan **Claude.ai Subscription**, bukan Anthropic Console.

178 186 

179<Steps>187<Steps>

180 <Step title="Open session history">188 <Step title="Open session history">


191</Steps>199</Steps>

192 200 

193<Note>201<Note>

194 Hanya sesi web yang dimulai dengan repositori GitHub yang muncul di tab Web. Melanjutkan memuat riwayat percakapan secara lokal; perubahan tidak disinkronkan kembali ke claude.ai.202 Hanya sesi cloud yang dimulai dengan repositori GitHub yang muncul di tab Web. Melanjutkan memuat riwayat percakapan secara lokal; perubahan tidak disinkronkan kembali ke claude.ai.

195</Note>203</Note>

196 204 

197<h3 id="check-account-and-usage">205<h3 id="check-account-and-usage">


450| `initialPermissionMode` | - | Mengontrol prompt persetujuan untuk percakapan baru: `default`, `plan`, `acceptEdits`, atau `bypassPermissions`. `manual` adalah alias untuk `default` dan memilih mode yang diberi label **Manual** dalam indikator mode. Ketika Anda membiarkannya tidak diatur, ekstensi memilih mode izin awal seperti yang dijelaskan dalam [Switch permission modes](/docs/id/permission-modes#switch-permission-modes). |458| `initialPermissionMode` | - | Mengontrol prompt persetujuan untuk percakapan baru: `default`, `plan`, `acceptEdits`, atau `bypassPermissions`. `manual` adalah alias untuk `default` dan memilih mode yang diberi label **Manual** dalam indikator mode. Ketika Anda membiarkannya tidak diatur, ekstensi memilih mode izin awal seperti yang dijelaskan dalam [Switch permission modes](/docs/id/permission-modes#switch-permission-modes). |

451| `preferredLocation` | `panel` | Tempat Claude membuka: `sidebar` (kanan) atau `panel` (tab baru) |459| `preferredLocation` | `panel` | Tempat Claude membuka: `sidebar` (kanan) atau `panel` (tab baru) |

452| `autosave` | `true` | Simpan file secara otomatis sebelum Claude membaca atau menulisnya |460| `autosave` | `true` | Simpan file secara otomatis sebelum Claude membaca atau menulisnya |

461| `attachOpenFile` | `true` | Tambahkan file yang terbuka di editor ke pesan Anda dan tampilkan di kotak prompt. Ketika dimatikan, hanya teks yang dipilih yang ditambahkan. Memerlukan Claude Code v2.1.271 atau lebih baru |

453| `useCtrlEnterToSend` | `false` | Gunakan Ctrl/Cmd+Enter alih-alih Enter untuk mengirim prompt |462| `useCtrlEnterToSend` | `false` | Gunakan Ctrl/Cmd+Enter alih-alih Enter untuk mengirim prompt |

454| `enableNewConversationShortcut` | `false` | Aktifkan Cmd/Ctrl+N untuk memulai percakapan baru |463| `enableNewConversationShortcut` | `false` | Aktifkan Cmd/Ctrl+N untuk memulai percakapan baru |

455| `enableReopenClosedSessionShortcut` | `true` | Gunakan Cmd/Ctrl+Shift+T untuk membuka kembali tab sesi Claude yang paling baru ditutup. Ketika tab terakhir yang ditutup bukan sesi Claude, pintasan menjalankan perintah reopen-closed-editor normal VS Code. |464| `enableReopenClosedSessionShortcut` | `true` | Gunakan Cmd/Ctrl+Shift+T untuk membuka kembali tab sesi Claude yang paling baru ditutup. Ketika tab terakhir yang ditutup bukan sesi Claude, pintasan menjalankan perintah reopen-closed-editor normal VS Code. |


623 632 

624Server bernama `ide` dan tersembunyi dari `/mcp` karena tidak ada yang perlu dikonfigurasi. Namun, jika organisasi Anda menggunakan hook `PreToolUse` untuk membuat daftar putih alat MCP, Anda perlu mengetahui bahwa itu ada.633Server bernama `ide` dan tersembunyi dari `/mcp` karena tidak ada yang perlu dikonfigurasi. Namun, jika organisasi Anda menggunakan hook `PreToolUse` untuk membuat daftar putih alat MCP, Anda perlu mengetahui bahwa itu ada.

625 634 

626**Konteks pilihan dan file terbuka.** Saat terhubung, CLI menyertakan pilihan editor Anda saat ini dan jalur file aktif sebagai konteks pada setiap prompt yang Anda kirim. Transkrip menunjukkan baris `⧉ Selected N lines from <file>` ketika ini terjadi. Untuk mengecualikan file sensitif seperti `.env`, tambahkan [aturan deny `Read`](/docs/id/permissions#read-and-edit) untuk jalurnya. Aturan deny yang cocok mencegah baik teks yang dipilih maupun pemberitahuan file terbuka untuk file tersebut dari mencapai Claude.635**Konteks pilihan dan file terbuka.** Saat terhubung, CLI menyertakan pilihan editor Anda saat ini dan jalur file aktif sebagai konteks pada setiap prompt yang Anda kirim. Transkrip menunjukkan baris `⧉ Selected N lines from <file>` ketika ini terjadi.

636 

637Untuk mengecualikan file sensitif seperti `.env`, tambahkan [aturan deny `Read`](/docs/id/permissions#read-and-edit) untuk jalurnya. Aturan deny yang cocok mencegah baik teks yang dipilih maupun pemberitahuan file terbuka untuk file tersebut dari mencapai Claude.

638 

639Jika Anda mematikan pengaturan [Attach Open File](#extension-settings), CLI menerima jalur file aktif hanya saat Anda memiliki teks yang dipilih di dalamnya.

627 640 

628**Transportasi dan autentikasi.** Server mengikat ke `127.0.0.1` pada port acak dalam rentang 10000–65535, dan port tidak dapat dikonfigurasi. Transportasi adalah `ws://` yang tidak terenkripsi; karena soket hanya loopback, proses apa pun yang dapat menangkap lalu lintas juga dapat membaca token dari file kunci, jadi TLS tidak akan menambah perlindungan. Setiap aktivasi ekstensi menghasilkan token autentikasi acak segar, menulisnya ke file kunci di `~/.claude/ide/<port>.lock`, dan CLI harus menyajikannya sebagai header `X-Claude-Code-Ide-Authorization` untuk terhubung. File kunci memiliki izin `0600` dalam direktori `0700`, jadi hanya pengguna yang menjalankan VS Code yang dapat membacanya. Jika `CLAUDE_CONFIG_DIR` diatur, file kunci ditulis ke `$CLAUDE_CONFIG_DIR/ide/` sebagai gantinya.641**Transportasi dan autentikasi.** Server mengikat ke `127.0.0.1` pada port acak dalam rentang 10000–65535, dan port tidak dapat dikonfigurasi. Transportasi adalah `ws://` yang tidak terenkripsi; karena soket hanya loopback, proses apa pun yang dapat menangkap lalu lintas juga dapat membaca token dari file kunci, jadi TLS tidak akan menambah perlindungan. Setiap aktivasi ekstensi menghasilkan token autentikasi acak segar, menulisnya ke file kunci di `~/.claude/ide/<port>.lock`, dan CLI harus menyajikannya sebagai header `X-Claude-Code-Ide-Authorization` untuk terhubung. File kunci memiliki izin `0600` dalam direktori `0700`, jadi hanya pengguna yang menjalankan VS Code yang dapat membacanya. Jika `CLAUDE_CONFIG_DIR` diatur, file kunci ditulis ke `$CLAUDE_CONFIG_DIR/ide/` sebagai gantinya.

629 642 

web-quickstart.md +33 −27

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.3> Use this file to discover all available pages before exploring further.

4 4 

5# Mulai dengan Claude Code di web5# Mulai dengan Claude Code di cloud

6 6 

7> Jalankan Claude Code di cloud dari browser atau ponsel Anda. Hubungkan repositori GitHub, kirimkan tugas, dan tinjau PR tanpa setup lokal.7> Jalankan Claude Code di cloud dari browser atau ponsel Anda. Hubungkan repositori GitHub, kirimkan tugas, dan tinjau PR tanpa setup lokal.

8 8 

9<Note>9<Note>

10 Claude Code di web sedang dalam pratinjau penelitian untuk pengguna Pro, Max, dan Team, serta untuk pengguna Enterprise dengan kursi premium atau kursi Chat + Claude Code.10 Sesi cloud sedang dalam pratinjau penelitian untuk pengguna Pro, Max, dan Team, serta untuk pengguna Enterprise dengan kursi premium atau kursi Chat + Claude Code.

11</Note>11</Note>

12 12 

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

14 14 

15Anda memerlukan repositori GitHub untuk [memulai](#connect-github). Claude mengklonnya ke mesin virtual yang terisolasi, membuat perubahan, dan mendorong cabang untuk Anda tinjau. Sesi bertahan di seluruh perangkat, jadi tugas yang Anda mulai di laptop siap ditinjau dari ponsel Anda nanti.15Anda memerlukan repositori GitHub untuk [memulai](#connect-github). Claude mengklonnya ke mesin virtual yang terisolasi, membuat perubahan, dan mendorong cabang untuk Anda tinjau. Sesi bertahan di seluruh perangkat, jadi tugas yang Anda mulai di laptop siap ditinjau dari ponsel Anda nanti.

16 16 

17Claude Code di web bekerja dengan baik untuk:17Sesi cloud bekerja dengan baik untuk:

18 18 

19* **Tugas paralel**: jalankan beberapa tugas independen sekaligus, masing-masing dalam sesi dan cabangnya sendiri, tanpa mengelola beberapa worktrees19* **Tugas paralel**: jalankan beberapa tugas independen sekaligus, masing-masing dalam sesi dan cabangnya sendiri, tanpa mengelola beberapa worktrees

20* **Repo yang tidak Anda miliki secara lokal**: Claude mengklonkan repo segar setiap sesi, jadi Anda tidak perlu memeriksanya20* **Repo yang tidak Anda miliki secara lokal**: Claude mengklonkan repo segar setiap sesi, jadi Anda tidak perlu memeriksanya


40 Bandingkan cara menjalankan Claude Code40 Bandingkan cara menjalankan Claude Code

41</h2>41</h2>

42 42 

43Claude Code berperilaku sama di mana pun. Yang berubah adalah tempat kode dieksekusi dan apakah konfigurasi lokal Anda tersedia. Aplikasi Desktop menawarkan sesi lokal dan cloud, jadi jawaban di bawah ini tergantung pada yang Anda pilih:43Claude Code berperilaku sama di mana pun. Yang berubah adalah tempat sesi berjalan dan apakah konfigurasi lokal Anda tersedia:

44 44 

45| | Di web | Remote Control | Terminal CLI | Aplikasi Desktop |45| | Sesi cloud | Sesi lokal | Sesi lokal dengan [Remote Control](/docs/id/remote-control) |

46| :------------------------------------- | :---------------------------------------------------------------------------------------------------------------- | :---------------------------------- | :------------------ | :-------------------------------- |46| :------------------------------------- | :---------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------ |

47| **Kode berjalan di** | Cloud VM, dikelola Anthropic secara default | Mesin Anda | Mesin Anda | Mesin Anda atau cloud VM |47| **Kode berjalan di** | Cloud VM, dikelola Anthropic secara default | Mesin Anda | Mesin Anda |

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

49| **Menggunakan konfigurasi lokal Anda** | Tidak, hanya repo | Ya | Ya | Ya untuk lokal, tidak untuk cloud |49| **Anda chat dari** | claude.ai, aplikasi mobile, atau aplikasi Desktop | Tempat Anda memulainya | claude.ai atau aplikasi mobile, serta tempat Anda memulainya |

50| **Memerlukan GitHub** | Ya, atau [bundel repo lokal](/docs/id/claude-code-on-the-web#send-local-repositories-without-github) melalui `--cloud` | Tidak | Tidak | Hanya untuk sesi cloud |50| **Menggunakan konfigurasi lokal Anda** | Tidak, hanya repo | Ya | Ya |

51| **Terus berjalan jika Anda terputus** | Ya | Selama terminal tetap terbuka | Tidak | Tergantung jenis sesi |51| **Memerlukan GitHub** | Ya, atau [bundel repo lokal](/docs/id/claude-code-on-the-web#send-local-repositories-without-github) melalui `--cloud` | Tidak | Tidak |

52| **[Mode izin](/docs/id/permission-modes)** | Terima otomatis editan, Plan | Tanya, Terima otomatis editan, Plan | Semua mode | Tergantung jenis sesi |52| **Terus berjalan jika Anda terputus** | Ya | Tidak | Selama sesi tetap terbuka di mesin Anda |

53| **Akses jaringan** | Dapat dikonfigurasi per lingkungan | Jaringan mesin Anda | Jaringan mesin Anda | Tergantung jenis sesi |53| **[Mode izin](/docs/id/permission-modes)** | Terima editan, Plan, Auto | Semua mode di terminal; lihat [Beralih mode izin](/docs/id/permission-modes#switch-permission-modes) untuk IDE dan aplikasi Desktop | Manual, Terima editan, atau Plan dari claude.ai dan aplikasi mobile |

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

54 55 

55Lihat dokumentasi [terminal quickstart](/docs/id/quickstart), [Aplikasi Desktop](/docs/id/desktop), atau [Remote Control](/docs/id/remote-control) untuk mengaturnya.56Lihat dokumentasi [terminal quickstart](/docs/id/quickstart), [aplikasi Desktop](/docs/id/desktop), atau [Remote Control](/docs/id/remote-control) untuk mengatur sesi lokal.

56 57 

57<h2 id="connect-github">58<h2 id="connect-github">

58 Hubungkan GitHub59 Hubungkan GitHub


66 67 

67<Steps>68<Steps>

68 <Step title="Visit claude.ai/code">69 <Step title="Visit claude.ai/code">

69 Buka [claude.ai/code](https://claude.ai/code) dan masuk dengan akun claude.ai Anda. Di macOS atau Windows, layar pertama menawarkan aplikasi desktop Claude Code dan cara lain untuk menginstal Claude Code. Untuk tetap di browser, klik **Continue on web** di bagian bawah halaman.70 Buka [claude.ai/code](https://claude.ai/code) dan masuk dengan akun claude.ai Anda.

70 </Step>71 </Step>

71 72 

72 <Step title="Sign in with GitHub">73 <Step title="Sign in with GitHub">

73 Setelah Anda masuk, claude.ai/code meminta Anda untuk menghubungkan GitHub. Ikuti prompt, dan claude.ai/code mengirimkan Anda ke halaman otorisasi GitHub. Setujui permintaan otorisasi, dan GitHub mengembalikan Anda ke claude.ai/code. Sesi cloud bekerja dengan repositori GitHub yang ada. Untuk memulai proyek baru, [buat repositori kosong di GitHub](https://github.com/new) terlebih dahulu.74 Setelah Anda masuk, claude.ai/code meminta Anda untuk menghubungkan GitHub. Ikuti prompt, dan claude.ai/code mengirimkan Anda ke halaman otorisasi GitHub. Setujui permintaan otorisasi, dan GitHub mengembalikan Anda ke claude.ai/code. Sesi cloud bekerja dengan repositori GitHub yang ada. Untuk memulai proyek baru, [buat repositori kosong di GitHub](https://github.com/new) terlebih dahulu.

74 75 

75 Dengan koneksi ini, sesi dapat mengkloning repositori publik apa pun, tetapi dapat bekerja di repositori pribadi hanya ketika Claude GitHub App diinstal di dalamnya. [Instal Aplikasi](https://github.com/apps/claude/installations/new) di setiap akun GitHub atau organisasi yang repositori pribadinya ingin Anda gunakan. Di organisasi GitHub, pemilik organisasi mungkin perlu menyetujui instalasi. Menginstal Aplikasi juga mengaktifkan [Auto-fix](/docs/id/claude-code-on-the-web#auto-fix-pull-requests), yang memungkinkan Claude merespons kegagalan CI dan komentar review pada pull request di repositori tersebut.76 Dengan koneksi ini, sesi dapat mengkloning repositori publik apa pun, tetapi dapat bekerja di repositori pribadi hanya ketika Claude GitHub App diinstal di dalamnya. [Instal Claude GitHub App](https://github.com/apps/claude/installations/new) di setiap akun GitHub atau organisasi yang repositori pribadinya ingin Anda gunakan. Di organisasi GitHub, pemilik organisasi mungkin perlu menyetujui instalasi. Menginstal Aplikasi juga mengaktifkan [Auto-fix](/docs/id/claude-code-on-the-web#auto-fix-pull-requests), yang memungkinkan Claude merespons kegagalan CI dan komentar review pada pull request di repositori tersebut.

76 77 

77 Jika onboarding meminta Anda untuk menginstal Aplikasi pada titik ini dan Anda lebih suka melakukannya nanti, klik **Skip**.78 Jika onboarding meminta Anda untuk menginstal Claude GitHub App pada titik ini dan Anda lebih suka melakukannya nanti, klik **Skip**.

78 </Step>79 </Step>

79 80 

80 <Step title="Set up your Default environment">81 <Step title="Set up your Default environment">


93 Hubungkan dari terminal Anda94 Hubungkan dari terminal Anda

94</h3>95</h3>

95 96 

96Jika Anda sudah menggunakan GitHub CLI (`gh`), Anda dapat mengatur Claude Code di web dari terminal Anda. Ini memerlukan [Claude Code CLI](/docs/id/quickstart). Pada paket Team dan Enterprise, `/web-setup` tersedia hanya setelah Owner mengaktifkan [Quick web setup](/docs/id/claude-code-on-the-web#github-authentication-options).97Jika Anda sudah menggunakan GitHub CLI (`gh`), Anda dapat menghubungkan GitHub untuk sesi cloud dari terminal Anda. Ini memerlukan [Claude Code CLI](/docs/id/quickstart). Pada paket Team dan Enterprise, `/web-setup` tersedia hanya setelah Owner mengaktifkan [Quick web setup](/docs/id/claude-code-on-the-web#github-authentication-options).

97 98 

98Ketika Anda menjalankan `/web-setup`, Claude Code membaca token yang dicetak `gh auth token`, meminta Anda untuk mengonfirmasi, dan mengirimkan token ke Anthropic. Anthropic menyimpannya terenkripsi dengan akun claude.ai Anda, dan sesi cloud Anda menggunakannya untuk akses GitHub sampai Anda [menghapusnya](#remove-the-web-setup-token). Sesi cloud kemudian dapat mengakses repositori apa pun yang dapat diakses token tersebut, tanpa instalasi Claude GitHub App.99Ketika Anda menjalankan `/web-setup`, Claude Code membaca token yang dicetak `gh auth token`, meminta Anda untuk mengonfirmasi, dan mengirimkan token ke Anthropic. Anthropic menyimpannya terenkripsi dengan akun claude.ai Anda, dan sesi cloud Anda menggunakannya untuk akses GitHub sampai Anda [menghapusnya](#remove-the-web-setup-token). Sesi cloud yang Anda mulai sendiri kemudian dapat mengakses repositori apa pun yang dapat diakses token tersebut, tanpa instalasi Claude GitHub App. Thread dalam [proyek](/docs/id/claude-projects#set-up-github-access) masih memerlukan Claude GitHub App.

99 100 

100Jika Anda sudah menghubungkan GitHub di browser, `/web-setup` memperingatkan Anda bahwa melanjutkan menggantikan koneksi tersebut untuk sesi cloud Anda.101Jika Anda sudah menghubungkan GitHub di browser, `/web-setup` memperingatkan Anda bahwa melanjutkan menggantikan koneksi tersebut untuk sesi cloud Anda.

101 102 


104</Note>105</Note>

105 106 

106<Steps>107<Steps>

107 <Step title="Autentikasi dengan GitHub CLI">108 <Step title="Authenticate with the GitHub CLI">

108 Di shell Anda, autentikasi GitHub CLI jika Anda belum melakukannya:109 Di shell Anda, autentikasi GitHub CLI jika Anda belum melakukannya:

109 110 

110 ```bash theme={null}111 ```bash theme={null}


123 /web-setup124 /web-setup

124 ```125 ```

125 126 

126 Konfirmasi prompt untuk mengirimkan token `gh` Anda ke akun Claude Anda. Jika berhasil, Claude Code mencetak `Connected as <your-github-username>` dan membuka [claude.ai/code](https://claude.ai/code) di browser Anda. Jika Anda belum memiliki lingkungan cloud, `/web-setup` membuat satu dengan akses jaringan Trusted dan tanpa setup script. Anda dapat [mengedit lingkungan atau menambahkan variabel](/docs/id/cloud-environments#configure-your-environment) setelahnya. Setelah `/web-setup` selesai, Anda dapat memulai sesi cloud dari terminal Anda dengan [`--cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-web) atau mengatur tugas berulang dengan [`/schedule`](/docs/id/routines).127 Konfirmasi prompt untuk mengirimkan token `gh` Anda ke akun Claude Anda. Jika berhasil, Claude Code mencetak `Connected as <your-github-username>` dan membuka [claude.ai/code](https://claude.ai/code) di browser Anda. Jika Anda belum memiliki lingkungan cloud, `/web-setup` membuat satu dengan akses jaringan Trusted dan tanpa setup script. Anda dapat [mengedit lingkungan atau menambahkan variabel](/docs/id/cloud-environments#configure-your-environment) setelahnya. Setelah `/web-setup` selesai, Anda dapat memulai sesi cloud dari terminal Anda dengan [`--cloud`](/docs/id/claude-code-on-the-web#from-terminal-to-cloud) atau mengatur tugas berulang dengan [`/schedule`](/docs/id/routines).

127 </Step>128 </Step>

128</Steps>129</Steps>

129 130 


226 The page only shows a GitHub login button227 The page only shows a GitHub login button

227</h3>228</h3>

228 229 

229Cloud sessions require a connected GitHub account. Connect via the browser flow above, or run `/web-setup` from your terminal if you use the GitHub CLI. If you'd rather not connect GitHub at all, see [Remote Control](/docs/id/remote-control) to run Claude Code on your own machine and monitor it from the web.230Cloud sessions require a connected GitHub account. Connect via the browser flow above, or run `/web-setup` from your terminal if you use the GitHub CLI. If you'd rather not connect GitHub at all, see [Remote Control](/docs/id/remote-control) to run Claude Code on your own machine and monitor it from your browser or phone.

230 231 

231<h3 id="not-available-for-the-selected-organization">232<h3 id="not-available-for-the-selected-organization">

232 "Not available for the selected organization"233 "Not available for the selected organization"

233</h3>234</h3>

234 235 

235Enterprise organizations may need an Owner to enable Claude Code on the web. Contact your Anthropic account team.236Enterprise organizations may need an Owner to enable cloud sessions. Contact your Anthropic account team.

236 237 

237<h3 id="/web-setup-says-not-signed-in-to-claude">238<h3 id="/web-setup-says-not-signed-in-to-claude">

238 `/web-setup` says "Not signed in to Claude"239 `/web-setup` says "Not signed in to Claude"


254 255 

255If you typed it inside Claude Code and the command menu shows `No commands match "/web-setup"`, or submitting it returns `Unknown command: /web-setup`, the command is hidden because a requirement isn't met. The cause is usually that you're authenticated with an API key or third-party provider instead of a claude.ai subscription. Run `/login` to sign in with your claude.ai account.256If you typed it inside Claude Code and the command menu shows `No commands match "/web-setup"`, or submitting it returns `Unknown command: /web-setup`, the command is hidden because a requirement isn't met. The cause is usually that you're authenticated with an API key or third-party provider instead of a claude.ai subscription. Run `/login` to sign in with your claude.ai account.

256 257 

257On Team and Enterprise plans, the command is hidden by default: the [Quick web setup toggle](/docs/id/claude-code-on-the-web#github-authentication-options) is off until an Owner turns it on. While it's off, [connect GitHub from the browser](#connect-github) instead. The command is also hidden when an administrator has disabled Claude Code on the web for your organization, or when your Enterprise organization has [Zero Data Retention](/docs/id/zero-data-retention) enabled, which makes Claude Code on the web unavailable.258On Team and Enterprise plans, the command is hidden by default: the [Quick web setup toggle](/docs/id/claude-code-on-the-web#github-authentication-options) is off until an Owner turns it on. While it's off, [connect GitHub from the browser](#connect-github) instead.

259 

260The command is also hidden in two other cases:

261 

262* An administrator has disabled cloud sessions for your organization. In this case, submitting `/web-setup` returns [`Cloud sessions are disabled by your organization's policy`](/docs/id/errors#cloud-sessions-are-disabled-by-your-organizations-policy). Before v2.1.268, this case also returned `Unknown command: /web-setup`.

263* Your Enterprise organization has [Zero Data Retention](/docs/id/zero-data-retention) enabled, which makes cloud sessions unavailable.

258 264 

259<h3 id="could-not-create-a-cloud-environment-or-no-cloud-environment-available-when-using-cloud">265<h3 id="could-not-create-a-cloud-environment-or-no-cloud-environment-available-when-using-cloud">

260 "Could not create a cloud environment" or "No cloud environment available" when using `--cloud`266 "Could not create a cloud environment" or "No cloud environment available" when using `--cloud`

261</h3>267</h3>

262 268 

263Remote-session features create a default cloud environment automatically if you don't have one. If you see "Could not create a cloud environment", automatic creation failed. If you see "No cloud environment available", your CLI predates automatic creation. In either case, run `/web-setup` in the Claude Code CLI, or add an environment from the [environment selector](/docs/id/cloud-environments#configure-your-environment) at [claude.ai/code](https://claude.ai/code).269Cloud session features create a default cloud environment automatically if you don't have one. If you see "Could not create a cloud environment", automatic creation failed. If you see "No cloud environment available", your CLI predates automatic creation. In either case, run `/web-setup` in the Claude Code CLI, or add an environment from the [environment selector](/docs/id/cloud-environments#configure-your-environment) at [claude.ai/code](https://claude.ai/code).

264 270 

265<h3 id="setup-script-failed">271<h3 id="setup-script-failed">

266 Setup script failed272 Setup script failed


302* [Konfigurasi lingkungan cloud](/docs/id/cloud-environments): tingkat akses jaringan, variabel lingkungan, dan skrip setup untuk sesi cloud308* [Konfigurasi lingkungan cloud](/docs/id/cloud-environments): tingkat akses jaringan, variabel lingkungan, dan skrip setup untuk sesi cloud

303* [Routines](/docs/id/routines): otomatiskan pekerjaan sesuai jadwal, melalui panggilan API, atau sebagai respons terhadap peristiwa GitHub309* [Routines](/docs/id/routines): otomatiskan pekerjaan sesuai jadwal, melalui panggilan API, atau sebagai respons terhadap peristiwa GitHub

304* [CLAUDE.md](/docs/id/memory): berikan Claude instruksi dan konteks persisten yang dimuat di awal setiap sesi310* [CLAUDE.md](/docs/id/memory): berikan Claude instruksi dan konteks persisten yang dimuat di awal setiap sesi

305* Instal aplikasi mobile Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) atau [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) untuk memantau sesi dari ponsel Anda. Dari Claude Code CLI, `/mobile` menampilkan kode QR.311* Instal aplikasi mobile Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) atau [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) untuk memantau sesi dari ponsel Anda. Dari Claude Code CLI, `/mobile` menampilkan kode QR untuk [claude.ai/mobile](https://claude.ai/mobile) yang membuka toko aplikasi yang tepat untuk ponsel Anda.

whats-new.md +24 −0

Details

8 8 

9Ringkasan dev mingguan menyoroti fitur yang paling mungkin mengubah cara Anda bekerja. Setiap entri mencakup kode yang dapat dijalankan, demo singkat, dan tautan ke dokumentasi lengkap. Untuk setiap perbaikan bug dan peningkatan kecil, lihat [changelog](/docs/en/changelog).9Ringkasan dev mingguan menyoroti fitur yang paling mungkin mengubah cara Anda bekerja. Setiap entri mencakup kode yang dapat dijalankan, demo singkat, dan tautan ke dokumentasi lengkap. Untuk setiap perbaikan bug dan peningkatan kecil, lihat [changelog](/docs/en/changelog).

10 10 

11<Update label="Week 37" description="September 7–11, 2026" tags={["v2.1.263–v2.1.269"]}>

12 **`claude plugin eval`**: jalankan plugin Anda terhadap serangkaian kasus uji, beri skor hasilnya, dan bandingkan dengan baseline tanpa plugin. `claude plugin eval init` membuat draf kasus dan grader untuk Anda.

13 

14 Juga minggu ini: keluarkan **Claude Code Desktop pane** apa pun ke jendela tersendiri dan doknya kembali nanti; pengaturan **`maxEffortLevel`** membatasi tingkat upaya pada setiap penyedia; dan halaman yang **WebFetch** belum selesai mengunduh dalam lima menit gagal alih-alih menggantung.

15 

16 [Baca ringkasan Week 37 →](/docs/id/whats-new/2026-w37)

17</Update>

18 

19<Update label="Week 36" description="August 31 – September 4, 2026" tags={["v2.1.251–v2.1.261"]}>

20 **Claude Fable 5.1**: tersedia di Claude Code dengan jendela konteks 1M-token.

21 

22 Juga minggu ini: di paket Pro dan Max, **computer use di aplikasi Desktop** bekerja di latar belakang di macOS saat Anda terus bekerja; dalam rendering fullscreen, **`/diff`** membuka panel langsung di samping percakapan yang menyegarkan saat Claude mengedit; dan **`/skill-doctor`** menunjukkan apa yang setiap skill Anda biayai dalam konteks dan seberapa sering digunakan.

23 

24 [Baca ringkasan Week 36 →](/docs/id/whats-new/2026-w36)

25</Update>

26 

27<Update label="Week 35" description="August 24–28, 2026" tags={["v2.1.240–v2.1.250"]}>

28 **Lanjutkan sesi terminal di aplikasi Desktop**: ketik `/resume` di kotak prompt Claude Code Desktop untuk melanjutkan sesi apa pun yang Anda mulai dari CLI, dengan percakapan lengkap dan konteks utuh.

29 

30 Juga minggu ini: **umpan balik yang ditulis Claude** membuat Claude menulis laporan umpan balik ketika sesuatu salah dalam sesi, yang Anda tinjau dan kirim dari `/feedback`; **`--restricted`** memulai sesi tanpa alat menjalankan perintah atau pengaturan pengguna dan proyek Anda, untuk harness evaluasi pada mesin bersama; dan pengaturan **`modelPicker`** mengontrol model mana yang daftar pemilih `/model`.

31 

32 [Baca ringkasan Week 35 →](/docs/id/whats-new/2026-w35)

33</Update>

34 

11<Update label="Week 34" description="August 17–21, 2026" tags={["v2.1.234–v2.1.239"]}>35<Update label="Week 34" description="August 17–21, 2026" tags={["v2.1.234–v2.1.239"]}>

12 **`/design`**: pratinjau penelitian yang membawa alur kerja artboard Claude Design ke dalam CLI dan Claude Code Desktop, dibangun di atas artifacts, sehingga Claude membuat artboard yang dapat diedit untuk UI Anda dan mengimplementasikan yang Anda pilih.36 **`/design`**: pratinjau penelitian yang membawa alur kerja artboard Claude Design ke dalam CLI dan Claude Code Desktop, dibangun di atas artifacts, sehingga Claude membuat artboard yang dapat diedit untuk UI Anda dan mengimplementasikan yang Anda pilih.

13 37 

whats-new/2026-w35.md +98 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Minggu 35 · 24–28 Agustus 2026

6 

7> Lanjutkan sesi terminal di aplikasi Claude Code Desktop, tinjau laporan umpan balik yang Claude buat untuk Anda, dan mulai sesi dalam mode terbatas.

8 

9<div className="digest-meta">

10 <span>Rilis <a href="/docs/en/changelog#2-1-240">v2.1.240 → v2.1.250</a></span>

11 <span>3 fitur · 24–28 Agustus</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Lanjutkan sesi terminal di aplikasi Desktop</span>

17 <span className="digest-feature-pill">Desktop</span>

18 </div>

19 

20 <p className="digest-feature-lede">Ketik <code>/resume</code> di kotak prompt Claude Code Desktop untuk memilih sesi apa pun yang Anda mulai dari CLI dan melanjutkannya di aplikasi dengan percakapan lengkap dan konteks tetap utuh. Cari sesi Anda berdasarkan judul, folder, atau cabang, dan pratinjau di mana Anda berhenti sebelum melanjutkan.</p>

21 

22 <Frame>

23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/desktop-resume-cli-session.mp4?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=41e4a5fda6b9d63280589f2cbdabf44f" data-path="images/whats-new/desktop-resume-cli-session.mp4" />

24 </Frame>

25 

26 <p className="digest-feature-try">Dalam sesi Desktop, jalankan perintah untuk membuat daftar sesi terminal Anda:</p>

27 

28 ```text Claude Code theme={null}

29 > /resume

30 ```

31 

32 <p className="digest-feature-try">Pilih sesi dan tekan <code>Enter</code>. Percakapan terbuka di aplikasi di mana Anda berhenti.</p>

33 

34 <a className="digest-feature-link" href="/docs/id/desktop#coming-from-the-cli">Pindah antara CLI dan Desktop</a>

35</div>

36 

37<div className="digest-feature">

38 <div className="digest-feature-header">

39 <span className="digest-feature-title">Umpan balik yang dibuat Claude</span>

40 <span className="digest-feature-pill">CLI</span>

41 </div>

42 

43 <p className="digest-feature-lede">Ketika alat terus gagal, Claude tidak dapat membantu permintaan, atau Anda menunjukkan kesalahan, Claude sekarang membuat laporan umpan balik untuk Anda dengan alat <code>SendFeedback</code>. Kartu di atas prompt Anda menampilkan draf, dan Anda dapat meninjau, mengirim, atau menolaknya dari sana. Tidak ada yang sampai ke Anthropic sampai Anda mengirimnya. Memerlukan v2.1.238 atau lebih baru.</p>

44 

45 <Frame>

46 <img className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/claude-drafted-feedback.jpg?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=5cacb3be0dffd1cbd417381f3721637e" alt="Sesi Claude Code di mana Claude telah membuat laporan bug berjudul Sandbox image pull fails behind proxy, ditampilkan sebagai kartu di atas prompt dengan opsi untuk meninjau, mengirim, atau menolak" width="1440" height="756" data-path="images/whats-new/claude-drafted-feedback.jpg" />

47 </Frame>

48 

49 <p className="digest-feature-try">Jalankan <code>/feedback</code> tanpa argumen untuk membuka antrian draf Anda dari setiap sesi:</p>

50 

51 ```text Claude Code theme={null}

52 > /feedback

53 ```

54 

55 <p className="digest-feature-try">Pilih draf, kemudian edit, kirim, atau buang. Untuk mematikan pembuatan draf, atur <strong>Claude-drafted feedback</strong> ke <code>off</code> di <code>/config</code>.</p>

56 

57 <a className="digest-feature-link" href="/docs/id/tools-reference#sendfeedback-tool-behavior">Perilaku alat SendFeedback</a>

58</div>

59 

60<div className="digest-feature">

61 <div className="digest-feature-header">

62 <span className="digest-feature-title">Mode terbatas</span>

63 <span className="digest-feature-pill">v2.1.248</span>

64 </div>

65 

66 <p className="digest-feature-lede">Mode terbatas memulai Claude Code tanpa alat bawaan yang menjalankan perintah atau kode. Gunakan ketika harness evaluasi mendorong <code>claude</code> pada mesin bersama. Mulai dengan `--restricted` atau atur <code>CLAUDE\_CODE\_RESTRICTED=1</code>. Claude Code juga menghapus <code>WebFetch</code>, membatasi alat file ke direktori kerja, memuat hanya pengaturan terkelola dan `--settings`, dan menolak mode izin <code>bypassPermissions</code>.</p>

67 

68 <p className="digest-feature-try">Jalankan kueri non-interaktif tanpa alat yang menjalankan perintah:</p>

69 

70 ```bash terminal theme={null}

71 claude --restricted -p "review src/ for SQL injection risks"

72 ```

73 

74 <p className="digest-feature-try">Untuk memberikan Claude salah satu alat yang dihapus kembali, daftarkan di `--tools` bersama dengan alat bawaan lain yang Anda inginkan, misalnya `--tools "Bash,Read,Edit"`. `--tools` adalah daftar izin, dan preset <code>default</code> tidak mengembalikan alat yang dihapus.</p>

75 

76 <a className="digest-feature-link" href="/docs/id/cli-reference#cli-flags">Bendera CLI</a>

77</div>

78 

79<div className="digest-wins">

80 <p className="digest-wins-title">Kemenangan lainnya</p>

81 

82 <div className="digest-wins-grid">

83 <div>Atur pengaturan <a href="/docs/id/settings-reference#modelpicker"><code>modelPicker</code></a> baru untuk memperluas atau mengganti daftar bawaan pemilih <code>/model</code> dengan entri Anda sendiri yang terurut dan berlabel, termasuk ID model Amazon Bedrock atau Platform Agen Google Cloud</div>

84 <div>Atur <a href="/docs/id/prompt-caching#choose-the-ttl-yourself"><code>promptCacheTtl</code></a> ke <code>1h</code> untuk menyimpan cache prompt satu jam di percakapan utama ketika Anda menggunakan kunci API atau penyedia cloud; <code>subagentPromptCacheTtl</code> menetapkan TTL untuk subagen dan semua permintaan lain di luar percakapan utama</div>

85 <div>Di paket Pro, Max, Team, dan Enterprise, <a href="/docs/id/costs#plan-usage-breakdown"><code>/usage</code></a> menambahkan rincian Loops: jumlah run, total token, token per run, dan run terakhir untuk <code>/loop</code> dan tugas terjadwal yang menggunakan token paling banyak</div>

86 <div>Organisasi dengan tarif kontrak dapat mengatur pengaturan terkelola <a href="/docs/id/costs#report-spend-at-your-contracted-rates"><code>modelPricing</code></a> sehingga <code>/usage</code>, baris status, dan OpenTelemetry melaporkan biaya pada tarif tersebut alih-alih harga daftar</div>

87 <div><code>/login</code> menawarkan <strong>Masuk dengan akun Console Anda</strong> di bawah opsi <strong>Akun Konsol Anthropic</strong>, sehingga anggota organisasi Console yang tidak mengizinkan kunci API dapat masuk tanpa membuat satu</div>

88 <div>Jalankan <code>/permissions</code> dan buka <a href="/docs/id/auto-mode-config#edit-rules-from-permissions">tab <strong>Auto mode</strong></a> baru untuk melihat dan mengedit aturan pengklasifikasi mode otomatis tanpa membuka file pengaturan</div>

89 <div>Ketika mode otomatis tersedia, prompt izin Bash dalam mode Manual dan <code>acceptEdits</code> menawarkan opsi <a href="/docs/id/permission-modes#switch-permission-modes"><strong>Ya, dan beralih ke mode otomatis</strong></a>; pilih untuk menyetujui perintah dan beralih sesi ke mode otomatis</div>

90 <div>Setelah Anda <a href="/docs/id/permissions#move-the-session-to-another-directory">memindahkan sesi dengan <code>/cd</code></a>, pengaturan proyek direktori baru, hook, server <code>.mcp.json</code>, skill, dan subagen mulai berlaku segera alih-alih pada `--resume` berikutnya</div>

91 <div>Dalam sesi non-interaktif, termasuk run <code>-p</code>, run Agent SDK, dan sesi cloud, Claude Code <a href="/docs/id/errors#the-response-above-may-be-incomplete">melanjutkan respons</a> yang kesalahan server, koneksi terputus, atau stall potong di tengah aliran, ketika respons parsial berisi teks dan tidak ada panggilan alat</div>

92 <div>Subagen yang berhenti pada batas <code>maxTurns</code> mengembalikan output yang ditandai sebagai parsial, dengan petunjuk bahwa Claude dapat <a href="/docs/id/sub-agents#resume-subagents">melanjutkannya dengan <code>SendMessage</code></a>, alih-alih tampak selesai</div>

93 <div>Di Amazon Bedrock, Platform Agen Google Cloud, dan Microsoft Foundry, sesi pada mesin yang sama sekarang dapat <a href="/docs/id/cross-session-messaging#availability">saling berpesan</a>, <code>/loop</code> dapat <a href="/docs/id/scheduled-tasks#let-claude-choose-the-interval">memilih intervalnya sendiri</a>, dan <code>/model</code> serta <code>/effort</code> berlaku segera alih-alih setelah giliran berakhir</div>

94 <div>Penginstal asli dan pembaruan otomatis mengunduh build yang dikompres zstd, sekitar 75 MB alih-alih 340 MB di Linux x64, dan build asli memuat kode sesuai permintaan, menggunakan kira-kira 40 hingga 70 MB lebih sedikit memori per sesi</div>

95 </div>

96</div>

97 

98[Changelog lengkap untuk v2.1.240–v2.1.250 →](/docs/en/changelog#2-1-240)

whats-new/2026-w36.md +109 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Minggu 36 · 31 Agustus – 4 September 2026

6 

7> Beralih ke Claude Fable 5.1, biarkan computer use berjalan di latar belakang di Desktop, dan tonton edit Claude di panel /diff langsung.

8 

9<div className="digest-meta">

10 <span>Rilis <a href="/docs/en/changelog#2-1-251">v2.1.251 → v2.1.261</a></span>

11 <span>4 fitur · 31 Agustus – 4 September</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Claude Fable 5.1</span>

17 <span className="digest-feature-pill">model baru</span>

18 </div>

19 

20 <p className="digest-feature-lede">Claude Fable 5.1 tersedia di Claude Code dengan jendela konteks 1M-token, dan alias <code>fable</code> sekarang memilihnya. Dalam sesi gateway aplikasi Claude, <code>fable</code> masih memilih Fable 5. Jika gateway Anda melayani Fable 5.1, jalankan <code>/model claude-fable-5-1</code>. Memerlukan v2.1.257 atau lebih baru.</p>

21 

22 <p className="digest-feature-try">Beralih sesi saat ini ke Fable 5.1 dan simpan sebagai default Anda:</p>

23 

24 ```text Claude Code theme={null}

25 > /model fable

26 ```

27 

28 <p className="digest-feature-try">Di Anthropic API, pemilih mencantumkan Fable hanya setelah server melaporkan tersedia untuk organisasi Anda, tetapi mengetik <code>/model fable</code> memeriksa dengan server secara langsung.</p>

29 

30 <a className="digest-feature-link" href="/docs/id/model-config#work-with-fable">Bekerja dengan Fable</a>

31</div>

32 

33<div className="digest-feature">

34 <div className="digest-feature-header">

35 <span className="digest-feature-title">Computer use berjalan di latar belakang di Desktop</span>

36 <span className="digest-feature-pill">Desktop</span>

37 </div>

38 

39 <p className="digest-feature-lede">Di macOS, computer use di aplikasi Claude Code Desktop sekarang bekerja di latar belakang: Claude melihat dan bertindak di aplikasi yang telah Anda setujui sementara Anda terus bekerja. Computer use di latar belakang sedang dalam beta di paket Pro dan Max.</p>

40 

41 <Frame>

42 <img className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/background-computer-use.jpg?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=a599a6c6fa544cb8d1b426b93706caf4" alt="Sesi Claude Code Desktop di mana Claude meminta untuk menggunakan Xcode, dengan kartu izin Computer use yang berbunyi Biarkan Claude melihat dan bertindak di aplikasi yang Anda setujui, di latar belakang atau dengan kontrol penuh layar Anda, di sebelah tombol Enable" width="1440" height="810" data-path="images/whats-new/background-computer-use.jpg" />

43 </Frame>

44 

45 <a className="digest-feature-link" href="/docs/id/desktop#let-claude-use-your-computer">Biarkan Claude menggunakan komputer Anda</a>

46</div>

47 

48<div className="digest-feature">

49 <div className="digest-feature-header">

50 <span className="digest-feature-title">Panel diff langsung dalam rendering fullscreen</span>

51 <span className="digest-feature-pill">v2.1.260</span>

52 </div>

53 

54 <p className="digest-feature-lede">Dalam rendering fullscreen, <code>/diff</code> sekarang membuka panel di samping percakapan alih-alih penampil yang harus Anda tutup. Panel mencantumkan file yang diubah dengan jumlah baris yang ditambahkan dan dihapus serta menyegarkan setiap kali Claude mengedit file atau menjalankan perintah shell. Pilih baris di panel dengan mouse untuk melampirkannya ke prompt berikutnya Anda.</p>

55 

56 <Frame>

57 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/diff-panel.mp4?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=9d7553c19e7f227891cd95f1f59d796d" data-path="images/whats-new/diff-panel.mp4" />

58 </Frame>

59 

60 <p className="digest-feature-try">Dengan rendering fullscreen aktif, di dalam repositori git, dan di terminal setidaknya 110 kolom lebar, alihkan panel:</p>

61 

62 ```text Claude Code theme={null}

63 > /diff

64 ```

65 

66 <p className="digest-feature-try">Jalankan <code>/diff</code> lagi atau klik <code>✕</code> di headernya untuk menutupnya.</p>

67 

68 <a className="digest-feature-link" href="/docs/id/interactive-mode#diff-panel">Panel diff</a>

69</div>

70 

71<div className="digest-feature">

72 <div className="digest-feature-header">

73 <span className="digest-feature-title">Temukan skills yang tidak digunakan dengan /skill-doctor</span>

74 <span className="digest-feature-pill">CLI</span>

75 </div>

76 

77 <p className="digest-feature-lede"><code>/skill-doctor</code> menunjukkan berapa biaya setiap skill Anda dalam konteks dan seberapa sering digunakan, sehingga Anda dapat memutuskan mana yang akan dimatikan. Setiap skill dalam <a href="/docs/id/skills#skill-descriptions-are-cut-short">daftar skill</a> menambah konteks Anda di setiap giliran, terlepas dari apakah Claude pernah menggunakannya atau tidak. Memerlukan v2.1.252 atau lebih baru dan tidak tersedia dalam sesi yang melewati <a href="/docs/id/env-vars#features-that-need-feature-flag-fetching">pengambilan feature-flag</a>.</p>

78 

79 <p className="digest-feature-try">Jalankan di sesi interaktif untuk membuka laporan di tab <strong>Stats</strong> manajer <code>/plugin</code>:</p>

80 

81 ```text Claude Code theme={null}

82 > /skill-doctor

83 ```

84 

85 <p className="digest-feature-try">Dalam mode non-interaktif dengan <code>-p</code>, Claude Code mencetak laporan sebagai teks sebagai gantinya.</p>

86 

87 <a className="digest-feature-link" href="/docs/id/skills#find-unused-skills">Temukan skills yang tidak digunakan</a>

88</div>

89 

90<div className="digest-wins">

91 <p className="digest-wins-title">Kemenangan lainnya</p>

92 

93 <div className="digest-wins-grid">

94 <div>Hook <a href="/docs/id/hooks#premodelswitch"><code>PreModelSwitch</code></a> dapat memblokir peralihan model yang Anda minta, dan hook <a href="/docs/id/hooks#postmodelswitch"><code>PostModelSwitch</code></a> dapat menambahkan konteks untuk Claude setelah model sesi berubah</div>

95 <div><a href="/docs/id/costs#prompt-cache-statistics"><code>/cost</code></a> menambahkan baris <code>Prompt cache (main)</code>: bagian token input yang disajikan dari cache, cache miss, apakah cache hangat, dan kemungkinan penyebab miss terakhir ketika Claude Code dapat menamai satu. Skrip status line mendapatkan objek <code>prompt\_cache</code> yang cocok</div>

96 <div>Organisasi dapat mencantumkan server HTTP dan SSE MCP di bawah pengaturan terkelola <a href="/docs/id/managed-mcp#provide-servers-through-managed-settings"><code>managedMcpServers</code></a> untuk memberikannya kepada setiap pengguna, selain server yang ditambahkan pengguna sendiri</div>

97 <div><code>/effort</code> dan pemilih <code>/model</code> sekarang <a href="/docs/id/model-config#adjust-effort-level">menyimpan tingkat effort terpisah untuk setiap model</a>; tekan <code>s</code> alih-alih <code>Enter</code> untuk menerapkan tingkat ke sesi saat ini saja</div>

98 <div>Secara default, pengklasifikasi mode otomatis <a href="/docs/id/permission-modes#what-the-classifier-blocks-by-default">sekarang juga memblokir</a> tindakan seperti meminta kredensial dari endpoint metadata instance cloud atau terhubung ke kontainer saudara yang tidak dimulai Claude</div>

99 <div>Dalam mode otomatis, Claude Code meminta Anda sebelum Claude <a href="/docs/id/permission-modes#first-read-outside-the-working-directories">pertama kali membaca file di luar direktori kerja Anda</a>, dengan opsi untuk memblokir pembacaan tersebut sejak saat itu</div>

100 <div>Naikkan <a href="/docs/id/settings-reference#bashoutputmaxchars"><code>bashOutputMaxChars</code></a> dan <a href="/docs/id/settings-reference#taskoutputmaxchars"><code>taskOutputMaxChars</code></a>, hingga 128.000 karakter, sehingga Claude menerima lebih banyak output dari perintah yang berhasil atau tugas latar belakang secara inline</div>

101 <div>Pintasan keyboard pengeditan kata prompt <a href="/docs/id/interactive-mode#make-ctrl-w-delete-back-to-whitespace">mengikuti readline</a> untuk semua orang, dan pengaturan <code>keybindingFlavor</code> tidak lagi memiliki efek apa pun. <code>Ctrl+W</code> menghapus kembali ke spasi putih sebelumnya, dan <code>Alt+B</code>, <code>Alt+F</code>, dan <code>Alt+D</code> memperlakukan tanda baca seperti <code>/</code> dan <code>.</code> sebagai pemisah kata</div>

102 <div>Jika Anda menetapkan <code>defaultMode</code> ke <code>"bypassPermissions"</code> dalam <code>.claude/settings.json</code> atau <code>.claude/settings.local.json</code> proyek, itu <a href="/docs/id/permission-modes#which-mode-a-session-starts-in">tidak lagi berlaku</a> dan sesi dimulai dalam mode Manual; tetapkan <code>"bypassPermissions"</code> dalam pengaturan pengguna atau terkelola sebagai gantinya, atau lewati `--permission-mode`</div>

103 <div>Paket Enterprise berbasis kursi sekarang <a href="/docs/id/model-config#default-model-setting">default ke Opus 5</a></div>

104 <div>Di ekstensi VS Code, klik nama model di bagian bawah kotak prompt untuk <a href="/docs/id/vs-code#use-the-prompt-box">membuka pemilih model</a></div>

105 <div>Di ekstensi VS Code, pilih <strong>Output styles</strong> di bagian Customize menu perintah untuk <a href="/docs/id/vs-code#use-the-prompt-box">memilih gaya output</a>, termasuk yang kustom</div>

106 </div>

107</div>

108 

109[Changelog lengkap untuk v2.1.251–v2.1.261 →](/docs/en/changelog#2-1-251)

whats-new/2026-w37.md +69 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Minggu 37 · 7–11 September 2026

6 

7> Uji plugin Anda dengan claude plugin eval dan keluarkan panel Claude Code Desktop ke jendela terpisah mereka sendiri.

8 

9<div className="digest-meta">

10 <span>Rilis <a href="/docs/en/changelog#2-1-263">v2.1.263 → v2.1.269</a></span>

11 <span>2 fitur · 7–11 September</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Uji plugin dengan claude plugin eval</span>

17 <span className="digest-feature-pill">v2.1.269</span>

18 </div>

19 

20 <p className="digest-feature-lede"><code>claude plugin eval</code> menjalankan plugin Anda terhadap serangkaian kasus uji, menilai hasilnya, dan secara default menjalankan setiap kasus lagi tanpa plugin sehingga Anda dapat melihat kontribusinya. <code>claude plugin eval init</code> menanyakan kepada Anda seperti apa hasil yang baik, kemudian mengusulkan kasus uji dan pemeriksaan yang menilainya, mencoba suite sekali, dan menulis file. Setiap run, dan setiap pemeriksaan yang memiliki model judge kedua untuk membalas, adalah panggilan model nyata di akun Anda.</p>

21 

22 <Frame>

23 <img className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/plugin-eval.jpg?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=913066f6d4a2a15426e98a627802f47f" alt="Output terminal dari claude plugin eval: tabel tujuh kasus dengan skor setiap kasus dengan dan tanpa plugin, delta di antara mereka, jumlah run, dan biaya, diikuti oleh baris ringkasan dengan delta rata-rata, durasi total, dan biaya total" width="1600" height="900" data-path="images/whats-new/plugin-eval.jpg" />

24 </Frame>

25 

26 <p className="digest-feature-try">Dari direktori root plugin Anda, biarkan Claude membuat draft suite:</p>

27 

28 ```bash terminal theme={null}

29 claude plugin eval init

30 ```

31 

32 <p className="digest-feature-try">Ketika Claude memberi tahu Anda bahwa suite siap, keluar dari sesi yang dibuka <code>claude plugin eval init</code> dan jalankan <code>claude plugin eval .</code> untuk menilai setiap kasus. Tabel ringkasan dicetak di terminal Anda, dan <code>report.html</code> di bawah <code>evals/results/</code> memiliki detail per-run.</p>

33 

34 <a className="digest-feature-link" href="/docs/id/plugin-evals">Uji plugin dengan evals</a>

35</div>

36 

37<div className="digest-feature">

38 <div className="digest-feature-header">

39 <span className="digest-feature-title">Keluarkan panel Desktop ke jendela terpisah mereka sendiri</span>

40 <span className="digest-feature-pill">Desktop</span>

41 </div>

42 

43 <p className="digest-feature-lede">Di aplikasi Claude Code Desktop, Anda dapat mengeluarkan panel apa pun ke jendela terpisahnya sendiri. Seret diff atau terminal ke layar kedua sementara Claude terus bekerja di jendela utama, kemudian dock panel kembali ketika Anda selesai.</p>

44 

45 <Frame>

46 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/desktop-pop-out-panes.mp4?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=ff3770dd09bb15ed9cf17a460f3d1e23" data-path="images/whats-new/desktop-pop-out-panes.mp4" />

47 </Frame>

48 

49 <a className="digest-feature-link" href="/docs/id/desktop#arrange-your-workspace">Atur ruang kerja Anda</a>

50</div>

51 

52<div className="digest-wins">

53 <p className="digest-wins-title">Kemenangan lainnya</p>

54 

55 <div className="digest-wins-grid">

56 <div>Atur <a href="/docs/id/settings-reference#maxeffortlevel"><code>maxEffortLevel</code></a> di tingkat atas atau per model di bawah <code>modelSettings</code> untuk membatasi tingkat upaya pada setiap penyedia, termasuk Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry; tingkat yang lebih tinggi berjalan pada batas</div>

57 <div>Arahkan `--plugin-dir` ke folder plugin untuk <a href="/docs/id/plugins#test-your-plugins-locally">memuat setiap subfolder langsung yang memiliki manifest</a></div>

58 <div>Jika WebFetch belum selesai mengunduh halaman dalam lima menit, <a href="/docs/id/tools-reference#webfetch-tool-behavior">fetch gagal dengan error deadline</a> alih-alih hang; atur <code>CLAUDE\_CODE\_WEBFETCH\_DEADLINE\_MS</code> untuk mengubah deadline, atau ke <code>0</code> untuk menghapus batas</div>

59 <div>Lewatkan `--json` ke <code>claude plugin install</code>, <code>uninstall</code>, <code>update</code>, <code>enable</code>, atau <code>disable</code> untuk mencetak hasil sebagai <a href="/docs/id/plugins-reference#plugin-json-result">satu objek JSON pada baris terakhir stdout</a></div>

60 <div>Ketika classifier mode otomatis memblokir tindakan, alasan yang diterima Claude <a href="/docs/id/auto-mode-config#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry">biasanya menyebutkan aturan yang cocok</a>, seperti <code>\[Data Exfiltration]</code></div>

61 <div>Ketika Anda mengetik <code>/</code> di tengah prompt, Anda sekarang dapat memilih dari <a href="/docs/id/interactive-mode#complete-a-command-mid-prompt">daftar perintah yang cocok</a> alih-alih saran tunggal. Daftar terbuka saat Anda mengetik dalam rendering fullscreen. Skill plugin juga cocok pada namanya tanpa awalan plugin</div>

62 <div>Di ekstensi VS Code, klik jumlah agen di bagian bawah kotak prompt untuk membuka <a href="/docs/id/vs-code#use-the-prompt-box">peta agen</a>, di mana Anda dapat membuka transkrip read-only subagen atau menghentikannya</div>

63 <div>Di ekstensi VS Code, pilih <strong>Hooks</strong> atau <strong>Permissions</strong> di bagian Customize menu perintah untuk <a href="/docs/id/vs-code#use-the-prompt-box">menambah atau menghapus hooks dan aturan izin</a> di pengaturan pengguna, proyek, dan lokal Anda</div>

64 <div>Claude dapat memilih <a href="/docs/id/artifacts#create-an-artifact">ikon tab browser</a> untuk mencocokkan setiap artifact yang dipublikasikannya</div>

65 <div>Di Claude Code di web, ambil kembali pesan yang antri dalam sesi cloud sebelum Claude membacanya: hapus dari antrian, atau tekan <code>Esc</code> atau <code>Up</code>, dan teks kembali ke kotak pesan</div>

66 </div>

67</div>

68 

69[Changelog lengkap untuk v2.1.263–v2.1.269 →](/docs/en/changelog#2-1-263)

workflows.md +36 −21

Details

372Anda juga dapat mengedit [skrip dari satu run tunggal](#how-a-workflow-runs) daripada salinan yang disimpan. [Lanjutkan setelah jeda](#resume-after-a-pause) mencakup agen mana yang berjalan lagi ketika Anda meluncurkan ulang skrip yang telah diedit. Untuk input alat Workflow, lihat entrinya dalam [referensi Agent SDK](/docs/id/agent-sdk/typescript#workflow).372Anda juga dapat mengedit [skrip dari satu run tunggal](#how-a-workflow-runs) daripada salinan yang disimpan. [Lanjutkan setelah jeda](#resume-after-a-pause) mencakup agen mana yang berjalan lagi ketika Anda meluncurkan ulang skrip yang telah diedit. Untuk input alat Workflow, lihat entrinya dalam [referensi Agent SDK](/docs/id/agent-sdk/typescript#workflow).

373 373 

374<h2 id="how-a-workflow-runs">374<h2 id="how-a-workflow-runs">

375 Bagaimana alur kerja berjalan375 Bagaimana workflow berjalan

376</h2>376</h2>

377 377 

378Runtime alur kerja menjalankan skrip di lingkungan terisolasi, terpisah dari percakapan Anda. Hasil antara tetap dalam variabel skrip daripada mendarat di konteks Claude.378Runtime workflow mengeksekusi script dalam lingkungan terisolasi, terpisah dari percakapan Anda. Hasil antara tetap dalam variabel script daripada masuk ke konteks Claude.

379 379 

380Setiap run menulis skripnya ke file di bawah direktori sesi Anda di `~/.claude/projects/`. Claude menerima jalur saat run dimulai, jadi Anda dapat memintanya. Anda dapat membuka file tersebut untuk membaca orkestrasi yang ditulis Claude, membandingkannya dengan skrip run sebelumnya, atau mengeditnya dan meminta Claude untuk meluncurkan kembali dari versi yang telah diedit.380Setiap run menulis scriptnya ke file di bawah direktori sesi Anda di `~/.claude/projects/`. Claude menerima path ketika run dimulai, jadi Anda dapat memintanya. Anda dapat membuka file tersebut untuk membaca orkestrasi yang ditulis Claude, membandingkannya dengan script run sebelumnya, atau mengeditnya dan meminta Claude untuk meluncurkan kembali dari versi yang telah diedit.

381 381 

382Claude dapat memulai alur kerja hanya dari file skrip yang sudah diizinkan dibaca oleh sesi. Untuk menjalankan skrip yang disimpan di luar direktori kerja Anda, tambahkan direktorinya terlebih dahulu dengan [`/add-dir`](/docs/id/permissions#working-directories) atau [aturan izin Read](/docs/id/permissions#read-and-edit).382Claude hanya dapat memulai workflow dari file script yang sudah diizinkan dibaca oleh sesi. Untuk menjalankan script yang disimpan di luar direktori kerja Anda, tambahkan direktorinya terlebih dahulu dengan [`/add-dir`](/docs/id/permissions#working-directories) atau [aturan Read allow](/docs/id/permissions#read-and-edit).

383 383 

384Runtime melacak hasil setiap agen saat run berlangsung, yang membuat run [dapat dilanjutkan](#resume-after-a-pause) dalam sesi yang sama.384Runtime melacak hasil setiap agent saat run berlangsung, yang membuat run [dapat dilanjutkan](#resume-after-a-pause) dalam sesi yang sama.

385 385 

386<h3 id="prompt-caching-in-a-fan-out">386<h3 id="prompt-caching-in-a-fan-out">

387 Prompt caching dalam fan-out387 Prompt caching dalam fan-out

388</h3>388</h3>

389 389 

390Agen dalam run yang sama dapat membaca [prompt cache](/docs/id/prompt-caching#subagents-and-the-cache) satu sama lain. Dua agen yang berjalan dengan model yang sama, tingkat upaya yang sama, jenis agen yang sama, tools yang sama, skema output yang sama, dan direktori kerja yang sama membangun prefix prompt sistem dan tools yang sama, jadi agen yang dimulai setelah respons sibling yang cocok telah dimulai membaca cache sibling tersebut pada permintaan pertamanya.390Agent dalam run yang sama dapat membaca [prompt cache](/docs/id/prompt-caching#subagents-and-the-cache) satu sama lain. Dua agent yang berjalan dengan model yang sama, tingkat effort yang sama, tipe agent yang sama, tools yang sama, output schema yang sama, dan direktori kerja yang sama membangun prefix tools-and-system-prompt yang sama, jadi agent yang dimulai setelah respons sibling yang cocok telah dimulai membaca cache sibling tersebut pada permintaan pertamanya.

391 391 

392Permintaan agen alur kerja berada di luar [bucket TTL cache](/docs/id/prompt-caching#which-ttl-each-request-gets) percakapan utama, jadi cachenya bertahan selama lima menit secara default, termasuk pada langganan Claude. Untuk menyimpannya selama satu jam, atur [`subagentPromptCacheTtl`](/docs/id/settings-reference#subagentpromptcachettl) ke `1h`. API menagih penulisan cache 1 jam dengan tarif yang lebih tinggi.392Permintaan workflow agent jatuh di luar [cache TTL bucket](/docs/id/prompt-caching#which-ttl-each-request-gets) percakapan utama, jadi cachenya bertahan selama lima menit secara default, termasuk pada langganan Claude. Untuk menyimpannya selama satu jam, atur [`subagentPromptCacheTtl`](/docs/id/settings-reference#subagentpromptcachettl) ke `1h`. API menagih penulisan cache 1 jam dengan tarif yang lebih tinggi.

393 393 

394Ketika fan-out memulai beberapa agen yang cocok sekaligus, Claude Code menahan semua kecuali yang pertama sampai respons agen pertama dimulai, kemudian melepaskan agen yang ditahan bersama-sama sehingga permintaan pertama mereka membaca prefix bersama daripada masing-masing memproses tanpa cache. Claude Code membatasi penahan pada [`CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS`](/docs/id/env-vars) milidetik, `5000` secara default. Atur ke `0` untuk menonaktifkan penahan.394Ketika fan-out memulai beberapa agent yang cocok sekaligus, Claude Code menahan semua kecuali yang pertama sampai respons agent pertama dimulai, kemudian melepaskan agent yang ditahan bersama-sama sehingga permintaan pertama mereka membaca prefix bersama daripada masing-masing memproses tanpa cache. Claude Code membatasi penahan pada [`CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS`](/docs/id/env-vars) milidetik, `5000` secara default. Atur ke `0` untuk menonaktifkan penahan.

395 395 

396<h3 id="behavior-and-limits">396<h3 id="behavior-and-limits">

397 Perilaku dan batas397 Perilaku dan batasan

398</h3>398</h3>

399 399 

400Runtime menerapkan batasan berikut:400Runtime menerapkan batasan berikut:

401 401 

402| Batasan | Mengapa |402| Batasan | Alasan |

403| :--------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ |403| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

404| Tidak ada input pengguna di tengah run | Hanya prompt izin agen yang dapat menjeda run. Untuk persetujuan antara tahap, jalankan setiap tahap sebagai alur kerja sendiri |404| Tidak ada input pengguna di tengah run | Run dijeda dengan sendirinya hanya untuk prompt izin agent dan [tunggu batas penggunaan](#when-a-run-hits-your-usage-limit). Untuk persetujuan antar tahap, jalankan setiap tahap sebagai workflow terpisahnya |

405| Tidak ada akses filesystem atau shell langsung dari alur kerja itu sendiri | Agen membaca, menulis, dan menjalankan perintah. Skrip mengoordinasikan agen |405| Tidak ada akses filesystem atau shell langsung dari workflow itu sendiri | Agent membaca, menulis, dan menjalankan perintah. Script mengoordinasikan agent |

406| Tidak ada pemuatan modul: skrip yang berisi `import()` gagal sebelum run dimulai | Badan skrip adalah JavaScript biasa. Letakkan pekerjaan yang memerlukan library dalam tugas agen |406| Tidak ada pemuatan modul: script yang berisi `import()` gagal sebelum run dimulai | Badan script adalah JavaScript biasa. Letakkan pekerjaan yang memerlukan library dalam task agent |

407| Hingga 16 agen bersamaan, lebih sedikit ketika Claude Code memiliki lebih sedikit CPU yang tersedia, termasuk di dalam kontainer dengan CPU terbatas | Membatasi penggunaan sumber daya lokal |407| Hingga 16 agent bersamaan secara default, lebih sedikit ketika Claude Code memiliki lebih sedikit CPU yang tersedia, termasuk di dalam container yang dibatasi CPU. Untuk mengubah batas, atur [`CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS`](/docs/id/env-vars#variables) ke nilai dari 1 hingga 256, yang memerlukan Claude Code v2.1.269 atau lebih baru | Membatasi penggunaan sumber daya lokal |

408| Dalam fan-out, agen yang berbagi prefix prompt-cache agen pertama dimulai hingga 5 detik setelahnya secara default | Semua kecuali yang pertama membaca [prefix yang di-cache agen pertama](#prompt-caching-in-a-fan-out) daripada masing-masing memproses tanpa cache |408| Dalam fan-out, agent yang berbagi prefix prompt-cache agent pertama dimulai hingga 5 detik setelahnya secara default | Semua kecuali yang pertama membaca [prefix yang di-cache agent pertama](#prompt-caching-in-a-fan-out) daripada masing-masing memproses tanpa cache |

409| Hingga 4.096 item dalam satu panggilan `parallel()` atau `pipeline()`: runtime menolak daftar yang lebih panjang dengan kesalahan | Batas diam akan menghilangkan bagian dari beban kerja tanpa memberi tahu skrip |409| Hingga 4.096 item dalam satu panggilan `parallel()` atau `pipeline()`: runtime menolak daftar yang lebih panjang dengan error | Batas diam akan menghilangkan bagian dari workload tanpa memberitahu script |

410| 1.000 agen total per run | Mencegah loop yang melarikan diri |410| 1.000 agent total per run | Mencegah loop yang tidak terkontrol |

411 411 

412<h2 id="manage-runs">412<h2 id="manage-runs">

413 Kelola run413 Kelola run


440 440 

441Dalam sesi lokal dan cloud, ketika Claude meluncurkan ulang run sebelumnya dan Claude Code tidak dapat menemukan hasil run yang disimpan sama sekali, peluncuran ulang gagal dengan kesalahan `nothing to resume` alih-alih memulai run dari awal. Minta Claude untuk memulai alur kerja dari awal sebagai run baru.441Dalam sesi lokal dan cloud, ketika Claude meluncurkan ulang run sebelumnya dan Claude Code tidak dapat menemukan hasil run yang disimpan sama sekali, peluncuran ulang gagal dengan kesalahan `nothing to resume` alih-alih memulai run dari awal. Minta Claude untuk memulai alur kerja dari awal sebagai run baru.

442 442 

443<h3 id="when-a-run-hits-your-usage-limit">

444 Ketika run mencapai batas penggunaan Anda

445</h3>

446 

447Ketika agen mencapai [batas penggunaan](/docs/id/interactive-mode#wait-for-a-usage-limit-to-reset) claude.ai Anda, run dijeda daripada agen itu gagal: agen yang mencapai batas menunggu reset, dan tidak ada agen baru yang dimulai. Tidak lama setelah batas direset, agen yang menunggu berjalan lagi dan run berlanjut dengan sendirinya. Memerlukan Claude Code v2.1.271 atau lebih baru; pada versi sebelumnya, agen yang terpengaruh gagal.

448 

449Saat run menunggu, baris kemajuannya di panel tugas dan header [`/workflows`](#watch-the-run) menunjukkan kapan batas direset.

450 

451Run hanya dijeda ketika semua ini berlaku; ketika salah satu tidak, agen yang terpengaruh gagal sebagai gantinya:

452 

453* Sesi bersifat interaktif dan masuk dengan langganan claude.ai. Run tidak dijeda dalam [mode non-interaktif](/docs/id/headless) dengan `claude -p` atau [Agent SDK](/docs/id/agent-sdk/overview), dalam [sesi latar belakang](/docs/id/agent-view), atau dalam sesi rekan [Remote Control](/docs/id/remote-control) atau [agent team](/docs/id/agent-teams).

454* [`autoContinueAtUsageLimit`](/docs/id/settings-reference#autocontinueatusagelimit) aktif, pengaturan yang sama yang memungkinkan sesi itu sendiri [menunggu batas penggunaan direset](/docs/id/interactive-mode#wait-for-a-usage-limit-to-reset). Jika Anda mematikannya selama menunggu, menunggu berakhir dan agen yang menunggu gagal.

455* Batas direset dalam 24 jam. Batas mingguan dapat direset lebih jauh.

456* Run belum menunggu dua kali. Ketika mencapai batas untuk ketiga kalinya, agen gagal.

457 

443<h3 id="cost">458<h3 id="cost">

444 Biaya459 Biaya

445</h3>460</h3>

446 461 

447Alur kerja menghasilkan banyak agen, jadi satu run dapat menggunakan token yang jauh lebih bermakna daripada menyelesaikan tugas yang sama dalam percakapan. Run dihitung terhadap penggunaan paket Anda dan batas laju seperti sesi lainnya.462Alur kerja menghasilkan banyak agen, jadi satu run dapat menggunakan token yang jauh lebih bermakna daripada menyelesaikan tugas yang sama dalam percakapan. Run dihitung terhadap penggunaan paket Anda dan batas laju.

448 463 

449Untuk mengukur pengeluaran sebelum berkomitmen pada tugas besar, jalankan alur kerja pada irisan kecil terlebih dahulu: satu direktori alih-alih seluruh repo, atau pertanyaan sempit alih-alih yang luas. Tampilan `/workflows` menunjukkan penggunaan token setiap agen saat run berlangsung, dan Anda dapat menghentikan run di sana kapan saja, biasanya tanpa kehilangan pekerjaan yang selesai. [Lanjutkan setelah jeda](#resume-after-a-pause) mencakup apa yang disimpan run yang dihentikan. [Agent caps](#behavior-and-limits) runtime membatasi berapa banyak agen yang dapat dihasilkan satu run, yang membatasi biaya skrip yang lari. Untuk menjaga run tetap lebih sedikit agen, pilih panduan ukuran `small` [](#set-a-size-guideline).464Untuk mengukur pengeluaran sebelum berkomitmen pada tugas besar, jalankan alur kerja pada irisan kecil terlebih dahulu: satu direktori alih-alih seluruh repo, atau pertanyaan sempit alih-alih yang luas. Tampilan `/workflows` menunjukkan penggunaan token setiap agen saat run berlangsung, dan Anda dapat menghentikan run di sana kapan saja, biasanya tanpa kehilangan pekerjaan yang selesai. [Lanjutkan setelah jeda](#resume-after-a-pause) mencakup apa yang disimpan run yang dihentikan. [Agent caps](#behavior-and-limits) runtime membatasi berapa banyak agen yang dapat dihasilkan satu run, yang membatasi biaya skrip yang lari. Untuk menjaga run tetap lebih sedikit agen, pilih panduan ukuran `small` [](#set-a-size-guideline).

450 465 


476| :------------- | :----------------------------------------------------- |491| :------------- | :----------------------------------------------------- |

477| `unrestricted` | Tidak ada panduan: Claude mengukur alur kerja ke tugas |492| `unrestricted` | Tidak ada panduan: Claude mengukur alur kerja ke tugas |

478| `small` | Lebih sedikit dari 5 agen |493| `small` | Lebih sedikit dari 5 agen |

479| `medium` | Lebih sedikit dari 15 agen |494| `medium` | Lebih sedikit dari 10 agen |

480| `large` | Lebih sedikit dari 50 agen |495| `large` | Lebih sedikit dari 50 agen |

481 496 

482Default adalah `medium`. Sampai Anda memilih nilai, baris `/config` menampilkan `medium (default)` dan baris `Running in background` alur kerja menampilkan `medium size (/config)`. Memerlukan Claude Code v2.1.219 atau lebih baru; versi sebelumnya default ke `unrestricted`.497Default adalah `medium`, atau `small` ketika Anda masuk pada paket Pro dengan Claude Code v2.1.271 atau lebih baru. Sampai Anda memilih nilai, baris `/config` menampilkan nilai sebagai default, dan baris `Running in background` alur kerja menampilkan ukuran yang berlaku. Memerlukan Claude Code v2.1.219 atau lebih baru; versi sebelumnya default ke `unrestricted`.

483 498 

484Untuk mengubah panduan, pilih nilai untuk pengaturan Dynamic workflow size di `/config`, atau jalankan `/config workflowSizeGuideline=small`. Pada v2.1.219 dan lebih baru, Anda juga dapat mengatur kunci [`workflowSizeGuideline`](/docs/id/settings-reference#workflowsizeguideline) di file pengaturan apa pun; nilai itu mengambil prioritas atas `/config`, dan Claude Code menyembunyikan baris `/config` saat file pengaturan menyediakan satu.499Untuk mengubah panduan, pilih nilai untuk pengaturan Dynamic workflow size di `/config`, atau jalankan `/config workflowSizeGuideline=small`. Pada v2.1.219 dan lebih baru, Anda juga dapat mengatur kunci [`workflowSizeGuideline`](/docs/id/settings-reference#workflowsizeguideline) di file pengaturan apa pun; nilai itu mengambil prioritas atas `/config`, dan Claude Code menyembunyikan baris `/config` saat file pengaturan menyediakan satu.

485 500 

worktrees.md +5 −2

Details

139Saat Anda [mengirim ke latar belakang](/docs/id/agent-view#send-the-session-to-the-background) sesi `--worktree`, worktree-nya menjadi worktree sesi latar belakang yang dapat dihapus sapuan. Sapuan meninggalkan worktree di tempat dalam kasus ini:139Saat Anda [mengirim ke latar belakang](/docs/id/agent-view#send-the-session-to-the-background) sesi `--worktree`, worktree-nya menjadi worktree sesi latar belakang yang dapat dihapus sapuan. Sapuan meninggalkan worktree di tempat dalam kasus ini:

140 140 

141* Worktree masih menyimpan pekerjaan: file yang diubah atau tidak dilacak, atau commit yang belum didorong.141* Worktree masih menyimpan pekerjaan: file yang diubah atau tidak dilacak, atau commit yang belum didorong.

142* Claude Code tidak dapat menentukan driver filter mana yang didefinisikan konfigurasi repositori, dalam salah satu dari [tiga kasus yang juga memblokir pembuatan worktree](#git-lfs-content-is-missing-from-a-worktree-claude-code-created).142* Salah satu dari [empat kasus yang juga memblokir pembuatan worktree](#git-lfs-content-is-missing-from-a-worktree-claude-code-created) berlaku: Claude Code tidak dapat menentukan driver filter mana yang didefinisikan konfigurasi repositori, atau menemukan pengaturan di sana yang tidak dapat dimatikan.

143* Worktree milik sesi `--worktree` yang belum Anda kirim ke latar belakang, apa pun usianya.143* Worktree milik sesi `--worktree` yang belum Anda kirim ke latar belakang, apa pun usianya.

144* Anda membuat worktree sendiri dengan `git worktree add`, bahkan jika Anda kemudian menjalankan sesi `--worktree <name>` di dalamnya dan mengirimnya ke latar belakang.144* Anda membuat worktree sendiri dengan `git worktree add`, bahkan jika Anda kemudian menjalankan sesi `--worktree <name>` di dalamnya dan mengirimnya ke latar belakang.

145 145 


353 353 

354Untuk mendapatkan file nyata, jalankan `git lfs pull` di dalam worktree.354Untuk mendapatkan file nyata, jalankan `git lfs pull` di dalam worktree.

355 355 

356Dalam tiga kasus langka, Claude Code tidak dapat mengatakan driver filter mana yang didefinisikan konfigurasi repositori, dan tidak membuat worktree sama sekali. Cocokkan kesalahan dengan perbaikannya:356Dalam empat kasus langka, Claude Code tidak membuat worktree sama sekali: itu tidak dapat mengatakan driver filter mana yang didefinisikan konfigurasi repositori, atau itu menemukan pengaturan di sana yang tidak dapat dimatikan. Cocokkan kesalahan dengan perbaikannya:

357 357 

358* **`Could not read the repository git config to neutralize filter drivers`**: Claude Code tidak dapat membaca `.git/config` repositori, misalnya karena izinnya. Perbaiki itu dan coba lagi.358* **`Could not read the repository git config to neutralize filter drivers`**: Claude Code tidak dapat membaca `.git/config` repositori, misalnya karena izinnya. Perbaiki itu dan coba lagi.

359* **`The repository git config defines a filter driver whose name cannot be neutralized (contains "=" or a newline)`**: ganti nama atau hapus driver filter itu dalam `.git/config` dan coba lagi.359* **`The repository git config defines a filter driver whose name cannot be neutralized (contains "=" or a newline)`**: ganti nama atau hapus driver filter itu dalam `.git/config` dan coba lagi.

360* **`The repository git config has a conditional include (includeIf)`**: pindahkan pengaturan yang `includeIf` dalam `.git/config` tarik langsung ke dalam file itu, hapus `includeIf`, dan coba lagi. `includeIf` dalam konfigurasi git global Anda tidak memicu ini.360* **`The repository git config has a conditional include (includeIf)`**: pindahkan pengaturan yang `includeIf` dalam `.git/config` tarik langsung ke dalam file itu, hapus `includeIf`, dan coba lagi. `includeIf` dalam konfigurasi git global Anda tidak memicu ini.

361* **`Git was not run: the repository's own git config sets <key>`**: pesan menamai kunci yang menunjuk Git LFS ke program untuk dijalankan, seperti `lfs.customtransfer.<name>.path` atau `lfs.standalonetransferagent`. Jika pengaturan itu milik Anda, pindahkan ke konfigurasi git global Anda. Jika Anda tidak mengenalinya, hapus dari konfigurasi git repositori, karena alat atau checkout yang Anda tidak percayai mungkin telah menulisnya. Coba lagi setelah kunci hilang dari konfigurasi repositori.

361 362 

362<h3 id="claude-code-refuses-to-use-a-worktree">363<h3 id="claude-code-refuses-to-use-a-worktree">

363 Claude Code menolak untuk menggunakan worktree364 Claude Code menolak untuk menggunakan worktree


406 407 

407Akhiran penolakan yang tertanam dalam setiap kesalahan dibagikan dengan pemberitahuan interaktif, jadi itu masih cocok dengan entri-nya di bawah [Claude Code refuses to use a worktree](#claude-code-refuses-to-use-a-worktree).408Akhiran penolakan yang tertanam dalam setiap kesalahan dibagikan dengan pemberitahuan interaktif, jadi itu masih cocok dengan entri-nya di bawah [Claude Code refuses to use a worktree](#claude-code-refuses-to-use-a-worktree).

408 409 

410Dalam hasil stream-json, [`startup_failure_reason`](/docs/id/agent-sdk/typescript#startup_failure_reason) adalah `worktree_unverified` untuk kesalahan `could not verify worktree` dan `worktree_resume_refused` untuk kesalahan `cannot resume into worktree` dan `The worktree binding is kept`. Aplikasi dapat membuat cabang di atasnya daripada mencocokkan teks kesalahan. Sebelum v2.1.274, hasil tidak membawa field `startup_failure_reason`.

411 

409<h2 id="see-also">412<h2 id="see-also">

410 Lihat juga413 Lihat juga

411</h2>414</h2>

Details

64Ketika ZDR diaktifkan untuk organisasi Claude Code di Claude for Enterprise, fitur-fitur tertentu yang memerlukan penyimpanan prompt atau completion secara otomatis dinonaktifkan di tingkat backend:64Ketika ZDR diaktifkan untuk organisasi Claude Code di Claude for Enterprise, fitur-fitur tertentu yang memerlukan penyimpanan prompt atau completion secara otomatis dinonaktifkan di tingkat backend:

65 65 

66| Fitur | Alasan |66| Fitur | Alasan |

67| ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- |67| ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |

68| [Claude Code di Web](/docs/id/claude-code-on-the-web) | Memerlukan penyimpanan riwayat percakapan di sisi server. |68| [Cloud sessions](/docs/id/claude-code-on-the-web), termasuk yang dimulai dari [aplikasi Desktop](/docs/id/desktop#cloud-sessions) | Memerlukan penyimpanan data sesi di sisi server, termasuk riwayat percakapan dengan prompt dan completion. |

69| [Cloud sessions](/docs/id/desktop#cloud-sessions) dari aplikasi Desktop | Memerlukan data sesi persisten yang mencakup prompt dan completion. |

70| [Claude Tag](/docs/id/claude-tag) | Mempertahankan memori saluran dan transkrip sesi. |69| [Claude Tag](/docs/id/claude-tag) | Mempertahankan memori saluran dan transkrip sesi. |

71| [Artifacts](/docs/id/artifacts) | Memerlukan penyimpanan konten halaman yang dipublikasikan di infrastruktur yang dioperasikan Anthropic. |70| [Artifacts](/docs/id/artifacts) | Memerlukan penyimpanan konten halaman yang dipublikasikan di infrastruktur yang dioperasikan Anthropic. |

72| Pengiriman umpan balik (`/feedback`, `/bug`, `/share`) | Mengirimkan umpan balik mengirimkan data percakapan ke Anthropic. |71| Pengiriman umpan balik (`/feedback`, `/bug`, `/share`) | Mengirimkan umpan balik mengirimkan data percakapan ke Anthropic. |