SpyBara
Go Premium

Documentation 2026-10-10 23:01 UTC to 2026-10-11 22:58 UTC

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

4079 Tipe Output Tool4079 Tipe Output Tool

4080</h2>4080</h2>

4081 4081 

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

4083 4083 

4084<h3 id="tooloutputschemas">4084<h3 id="tooloutputschemas">

4085 `ToolOutputSchemas`4085 `ToolOutputSchemas`

agent-view.md +2 −0

Details

300* **Anda menghentikan giliran**: Claude Code membatalkan peralihan dan menampilkan `Backgrounding cancelled — the turn was stopped.` Misalnya, giliran berhenti ketika Anda [menginterupsi Claude dengan `Esc`](/docs/id/interactive-mode#general-controls) atau memilih **No** [tanpa komentar](/docs/id/permissions#add-a-comment-when-you-answer-a-permission-prompt) pada permintaan izin dari percakapan utama, atau menekan `Esc` pada pertanyaan yang diajukan Claude di sana. Tekan `←` lagi untuk mengirim sesi ke latar belakang.300* **Anda menghentikan giliran**: Claude Code membatalkan peralihan dan menampilkan `Backgrounding cancelled — the turn was stopped.` Misalnya, giliran berhenti ketika Anda [menginterupsi Claude dengan `Esc`](/docs/id/interactive-mode#general-controls) atau memilih **No** [tanpa komentar](/docs/id/permissions#add-a-comment-when-you-answer-a-permission-prompt) pada permintaan izin dari percakapan utama, atau menekan `Esc` pada pertanyaan yang diajukan Claude di sana. Tekan `←` lagi untuk mengirim sesi ke latar belakang.

301* **Pesan dalam antrean tidak dapat dipindahkan**: pesan yang Anda [masukkan ke antrean saat Claude sedang bekerja](/docs/id/interactive-mode#queue-messages-while-claude-works) berpindah ke sesi latar belakang bersama percakapan. Ketika salah satunya tidak dapat berpindah, sesi tetap berada di latar depan dan Claude Code menampilkan pemberitahuan seperti `Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it.`301* **Pesan dalam antrean tidak dapat dipindahkan**: pesan yang Anda [masukkan ke antrean saat Claude sedang bekerja](/docs/id/interactive-mode#queue-messages-while-claude-works) berpindah ke sesi latar belakang bersama percakapan. Ketika salah satunya tidak dapat berpindah, sesi tetap berada di latar depan dan Claude Code menampilkan pemberitahuan seperti `Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it.`

302 302 

303Ketika Claude Code mengirim sesi ke latar belakang, baik setelah sekitar sepuluh detik maupun setelah Anda menekan `←` lagi, Claude Code menghentikan perintah shell yang masih dijalankan Claude di latar depan. Claude Code tidak menampilkan dialog `Background this session?` untuk perintah tersebut. Dalam sesi latar belakang, Claude tidak memiliki catatan bahwa perintah tersebut telah dimulai, sehingga Claude mungkin menjalankan perintah itu lagi. Agar perintah tetap berjalan ketika sesi berpindah, tekan `Ctrl+B` untuk [mengubahnya menjadi perintah latar belakang](/docs/id/interactive-mode#background-bash-commands) selagi Claude Code masih menunggu.

304 

303Menekan `←` membuat baris sesi bahkan ketika percakapan belum memiliki pesan, jadi `→` tetap kembali ke sana.305Menekan `←` membuat baris sesi bahkan ketika percakapan belum memiliki pesan, jadi `→` tetap kembali ke sana.

304 306 

305Anda dapat mematikan pintasan ini untuk sesi latar depan dengan pengaturan [`leftArrowOpensAgents`](/docs/id/settings-reference#leftarrowopensagents) di `/config`.307Anda dapat mematikan pintasan ini untuk sesi latar depan dengan pengaturan [`leftArrowOpensAgents`](/docs/id/settings-reference#leftarrowopensagents) di `/config`.

costs.md +13 −0

Details

90 90 

91Ketika permintaan untuk batas paket Anda gagal, paling sering karena endpoint penggunaan dibatasi laju, `/usage` menampilkan bilah penggunaan terakhir yang dimuat di mesin ini dalam 60 menit terakhir, bersama dengan catatan `Showing last-known usage` yang menyatakan berapa lama yang lalu data tersebut diambil. Tekan `r` untuk mencoba lagi; percobaan ulang yang berhasil menggantikan bilah terakhir yang diketahui dengan data segar. Tanpa snapshot dari 60 menit terakhir, `/usage` melaporkan bahwa endpoint penggunaan dibatasi laju dan menawarkan pintasan percobaan ulang yang sama. Sebelum v2.1.208, permintaan yang dibatasi laju dalam sesi yang belum memuat penggunaan selalu menampilkan kesalahan tanpa bilah.91Ketika permintaan untuk batas paket Anda gagal, paling sering karena endpoint penggunaan dibatasi laju, `/usage` menampilkan bilah penggunaan terakhir yang dimuat di mesin ini dalam 60 menit terakhir, bersama dengan catatan `Showing last-known usage` yang menyatakan berapa lama yang lalu data tersebut diambil. Tekan `r` untuk mencoba lagi; percobaan ulang yang berhasil menggantikan bilah terakhir yang diketahui dengan data segar. Tanpa snapshot dari 60 menit terakhir, `/usage` melaporkan bahwa endpoint penggunaan dibatasi laju dan menawarkan pintasan percobaan ulang yang sama. Sebelum v2.1.208, permintaan yang dibatasi laju dalam sesi yang belum memuat penggunaan selalu menampilkan kesalahan tanpa bilah.

92 92 

93<h3 id="read-the-token-count-beside-the-spinner">

94 Baca jumlah token di samping spinner

95</h3>

96 

97Saat Claude bekerja dalam percakapan utama, baris di samping spinner dapat diakhiri dengan waktu yang telah berlalu dan jumlah token, seperti pada `Deciphering… (10m 27s · ↓ 5.5k tokens)`. Ini adalah hitungan langsung dan perkiraan dari output yang telah dihasilkan giliran saat ini sejauh ini. Panah di samping hitungan mengarah ke bawah saat output tiba atau tool berjalan.

98 

99* **Apa yang dicakup**: output yang dihasilkan giliran, seperti teks dan panggilan tool yang di-stream kembali oleh Claude, thinking-nya, dan output dari subagent yang berjalan di [foreground](/docs/id/sub-agents#run-subagents-in-foreground-or-background)

100* **Apa yang tidak dicakup**: apa yang dikirim Claude Code ke model, sehingga prompt Anda, riwayat percakapan, dan sisa konteks Anda tidak mengubahnya

101* **Kapan direset**: di awal setiap giliran, dan ketika Claude Code [melakukan compaction pada percakapan](/docs/id/prompt-caching#compacting-the-conversation)

102* **Kapan tetap tersembunyi**: sampai output mulai tiba, ketika baris terlalu sempit untuk memuatnya, dan dalam [mode pembaca layar](/docs/id/accessibility)

103 

104Hitungan ini tidak akan cocok dengan angka output `Usage by model` di blok Session `/usage`, yang menjumlahkan seluruh sesi, bukan satu giliran. Hitungan ini juga berbeda dari jumlah token yang [ditambahkan mode verbose](/docs/id/statusline#notifications-share-the-status-line-row), karena hitungan tersebut mengukur ukuran konteks Anda, bukan output satu giliran.

105 

93<h3 id="analyze-your-usage-patterns">106<h3 id="analyze-your-usage-patterns">

94 Analisis pola penggunaan Anda107 Analisis pola penggunaan Anda

95</h3>108</h3>

Details

98 98 

99Safe mode masih menerapkan hook terkelola dan kebijakan pengaturan dari organisasi Anda. Plugin, skill, `CLAUDE.md`, dan server MCP terkelola dimatikan.99Safe mode masih menerapkan hook terkelola dan kebijakan pengaturan dari organisasi Anda. Plugin, skill, `CLAUDE.md`, dan server MCP terkelola dimatikan.

100 100 

101Jika masalah berlanjut dalam safe mode, atau pengaturan Anda sendiri mencurigakan, bandingkan dengan sesi yang tidak memuat apa pun dari pengaturan biasa Anda. Arahkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars) ke direktori kosong untuk melewati semua yang ada di bawah `~/.claude`, dan luncurkan dari direktori yang tidak memiliki folder `.claude`, `.mcp.json`, atau `CLAUDE.md` sehingga konfigurasi proyek juga dilewati.101Jika masalah berlanjut dalam safe mode, atau pengaturan Anda sendiri mencurigakan, mulai sesi tanpa konfigurasi Anda sendiri sama sekali dan periksa apakah masalahnya tetap muncul.

102 102 

103```bash theme={null}103<Steps>

104cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude104 <Step title="Buat direktori kosong dan pindah ke dalamnya">

105```105 Di shell Anda, tanpa sesi Claude Code yang sedang berjalan, buat direktori tersebut dan pindah ke dalamnya:

106 106 

107Sesi bersih tidak memiliki pengaturan pengguna atau proyek, hooks, server MCP, plugins, atau memory. Pada peluncuran pertama, harapkan layar pengaturan pertama kali, dimulai dengan pemilihan tema. Jika Anda melihatnya, direktori konfigurasi bersih sedang berlaku. Peluncuran berikutnya dengan direktori yang sama melewati layar ini karena Claude Code menyimpan status onboarding di sana.107 <Tabs>

108 108 <Tab title="Bash or Zsh">

109* Pengaturan terkelola masih berlaku jika organisasi Anda menerapkannya. Claude Code membaca profil MDM, kebijakan registri, dan `managed-settings.json` dari lokasi di luar direktori konfigurasi, dan [mengambil pengaturan yang dikelola server](/docs/id/server-managed-settings#fetch-and-caching-behavior) lagi untuk sesi bersih setelah memiliki kredensial109 ```bash theme={null}

110* Anda akan diminta untuk masuk lagi110 mkdir -p ~/claude-clean/empty && cd ~/claude-clean/empty

111 111 ```

112Jika masalah hilang di sini, penyebabnya ada di suatu tempat di file `~/.claude` atau proyek `.claude` Anda yang sebenarnya. Perkenalkan kembali satu per satu, dengan menyalin file ke direktori sementara atau dengan meluncurkan dari proyek Anda, untuk menemukan mana yang menjadi penyebabnya. Jika itu bertahan dalam sesi bersih, penyebabnya ada di luar konfigurasi pengguna dan proyek Anda. Jalankan `/status` untuk memeriksa apakah pengaturan terkelola berlaku, cari [variabel lingkungan](/docs/id/env-vars) yang mempengaruhi Claude Code, kemudian lihat [Troubleshooting](/docs/id/troubleshooting).112 </Tab>

113 

114 <Tab title="PowerShell">

115 ```powershell theme={null}

116 New-Item -ItemType Directory -Force "$HOME/claude-clean/empty" | Out-Null

117 Set-Location "$HOME/claude-clean/empty"

118 ```

119 </Tab>

120 </Tabs>

121 </Step>

122 

123 <Step title="Mulai Claude Code dengan direktori konfigurasi bersih">

124 Dari shell yang sama, atur [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars) ke direktori baru sebagai pengganti `~/.claude`, dan berikan [`--setting-sources user`](/docs/id/cli-reference#cli-flags) untuk mematikan konfigurasi proyek seperti `.claude/settings.json`, `CLAUDE.md`, dan `.mcp.json`:

125 

126 <Tabs>

127 <Tab title="Bash or Zsh">

128 Variabel ini berlaku untuk satu peluncuran ini saja.

129 

130 ```bash theme={null}

131 CLAUDE_CONFIG_DIR=~/claude-clean/config claude --setting-sources user

132 ```

133 </Tab>

134 

135 <Tab title="PowerShell">

136 Variabel ini tetap diatur selama sisa sesi PowerShell ini, sehingga peluncuran `claude` berikutnya di jendela yang sama tetap menggunakan direktori bersih. Untuk kembali ke direktori biasa Anda, jalankan `Remove-Item Env:CLAUDE_CONFIG_DIR` sebelum peluncuran berikutnya.

137 

138 ```powershell theme={null}

139 $env:CLAUDE_CONFIG_DIR = "$HOME/claude-clean/config"

140 claude --setting-sources user

141 ```

142 </Tab>

143 </Tabs>

144 

145 Pada peluncuran pertama, Anda akan melalui layar pengaturan pertama kali lagi, yang menandakan bahwa direktori konfigurasi bersih sedang berlaku. Pengaturan terkelola masih berlaku, dan [konektor](/docs/id/mcp#use-mcp-servers-from-claude-ai) masih dimuat jika Anda masuk dengan akun claude.ai.

146 </Step>

147 

148 <Step title="Reproduksi masalahnya">

149 Ulangi apa yang memicu masalah di sesi bersih:

150 

151 * **Masalah hilang**: penyebabnya ada di konfigurasi pengguna atau proyek Anda. Salin `~/.claude.json` dan file-file di `~/.claude` ke `~/claude-clean/config` satu per satu. Jika tidak ada yang memunculkan kembali masalahnya, buka direktori proyek Anda di shell yang sama dan mulai Claude Code tanpa `--setting-sources user`. Di Bash atau Zsh, jalankan `CLAUDE_CONFIG_DIR=~/claude-clean/config claude`. Di PowerShell, variabelnya masih diatur, jadi jalankan `claude`.

152 * **Masalah berlanjut**: penyebabnya ada di luar konfigurasi pengguna dan proyek Anda. Jalankan `/status` di sesi untuk memeriksa pengaturan terkelola, periksa shell Anda untuk [environment variable](/docs/id/env-vars), kemudian lihat [Troubleshooting](/docs/id/troubleshooting).

153 </Step>

154</Steps>

113 155 

114<h2 id="check-common-causes">156<h2 id="check-common-causes">

115 Periksa penyebab umum157 Periksa penyebab umum


127| Nilai `settings.json` tampak diabaikan | Kunci yang sama diatur di `settings.local.json` | `settings.local.json` menggantikan `settings.json`, dan keduanya menggantikan `~/.claude/settings.json`. Lihat [preseden pengaturan](/docs/id/settings#settings-precedence). |169| Nilai `settings.json` tampak diabaikan | Kunci yang sama diatur di `settings.local.json` | `settings.local.json` menggantikan `settings.json`, dan keduanya menggantikan `~/.claude/settings.json`. Lihat [preseden pengaturan](/docs/id/settings#settings-precedence). |

128| 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`. |170| 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`. |

129| 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). |171| 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). |

130| Instruksi `CLAUDE.md` subdirektori tampak diabaikan | File subdirektori dimuat sesuai permintaan, bukan pada awal sesi | Lihat [kapan file subdirektori dimuat](/docs/id/memory#how-claude-md-files-load). Sebelum v2.1.288, hanya tool Read yang memuatnya. |172| Instruksi `CLAUDE.md` subdirektori tampak diabaikan | File subdirektori dimuat sesuai permintaan, bukan pada awal sesi | Untuk memuat `CLAUDE.md` sebuah subdirektori, minta Claude membaca file lain di subdirektori tersebut. Lihat [kapan file subdirektori dimuat](/docs/id/memory#how-claude-md-files-load). |

131| 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). |173| 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). |

132| 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). |174| 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). |

133| 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). |175| 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). |

desktop.md +53 −0

Details

913 913 

914Setiap entri memerlukan `id`, `name`, dan `sshHost`. Bidang `sshPort` dan `sshIdentityFile` bersifat opsional. Pengguna juga dapat menambahkan `sshConfigs` ke `~/.claude/settings.json` mereka sendiri.914Setiap entri memerlukan `id`, `name`, dan `sshHost`. Bidang `sshPort` dan `sshIdentityFile` bersifat opsional. Pengguna juga dapat menambahkan `sshConfigs` ke `~/.claude/settings.json` mereka sendiri.

915 915 

916Jika Anda tidak menyertakan `user@` di `sshHost`, Desktop terhubung sebagai `User` yang diatur oleh `~/.ssh/config` milik setiap developer untuk host tersebut, atau jika tidak ada, sebagai nama pengguna mereka di komputer mereka sendiri.

917 

916<h4 id="restrict-which-ssh-hosts-users-can-connect-to">918<h4 id="restrict-which-ssh-hosts-users-can-connect-to">

917 Restrict which SSH hosts users can connect to919 Restrict which SSH hosts users can connect to

918</h4>920</h4>


937 939 

938`sshHostAllowlist` dibaca dari managed settings saja; nilai dalam pengaturan pengguna atau proyek diabaikan. Hanya aplikasi Claude Desktop yang menghormati pengaturan ini; CLI Claude Code dan ekstensi IDE tidak membacanya, dan itu tidak membatasi perintah `ssh` yang dijalankan melalui alat Bash. Ini mengatur host mana yang terhubung oleh aplikasi Desktop, bukan egress jaringan, jadi pasangkan dengan kontrol jaringan organisasi Anda atau kontrol zero-trust jika Anda memerlukan batas yang keras.940`sshHostAllowlist` dibaca dari managed settings saja; nilai dalam pengaturan pengguna atau proyek diabaikan. Hanya aplikasi Claude Desktop yang menghormati pengaturan ini; CLI Claude Code dan ekstensi IDE tidak membacanya, dan itu tidak membatasi perintah `ssh` yang dijalankan melalui alat Bash. Ini mengatur host mana yang terhubung oleh aplikasi Desktop, bukan egress jaringan, jadi pasangkan dengan kontrol jaringan organisasi Anda atau kontrol zero-trust jika Anda memerlukan batas yang keras.

939 941 

942<h4 id="turn-off-local-sessions-and-distribute-ssh-connections">

943 Mematikan sesi lokal dan mendistribusikan koneksi SSH

944</h4>

945 

946Untuk mematikan sesi lokal dan membatasi sesi SSH ke host yang Anda pilih, terapkan [`disableDesktopLocalSessions`](/docs/id/settings-reference#disabledesktoplocalsessions), [`sshConfigs`](#pre-configure-ssh-connections-for-your-team), dan [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to) secara bersamaan.

947 

948<Note>

949 Penyiapan ini ditujukan bagi pengguna yang masuk dengan akun Claude. Dengan [penyedia pihak ketiga](/docs/id/third-party-integrations), sesi SSH dimatikan secara default, dan mengatur `sshHostAllowlist` dapat mengaktifkannya. Baca [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions) sebelum Anda menerapkan kunci-kunci ini.

950</Note>

951 

952Contoh berikut mematikan sesi lokal, menambahkan satu koneksi, dan membatasi sesi SSH ke host koneksi tersebut:

953 

954```json managed-settings.json theme={null}

955{

956 "disableDesktopLocalSessions": true,

957 "sshConfigs": [

958 {

959 "id": "shared-dev-vm",

960 "name": "Shared Dev VM",

961 "sshHost": "dev.example.com"

962 }

963 ],

964 "sshHostAllowlist": ["dev.example.com"]

965}

966```

967 

968Kunci-kunci ini berlaku untuk aplikasi desktop. Kunci-kunci ini tidak mengubah cara lain untuk menjalankan Claude Code, seperti CLI, Cowork, dan sesi cloud:

969 

970* **CLI**: tidak ada satu pun kunci yang mencegah developer menjalankan CLI Claude Code di komputer mereka sendiri

971* **Cowork**: tidak ada satu pun kunci yang berlaku untuk sesi [Cowork](https://claude.com/docs/cowork/overview) atau tugas terjadwal Cowork

972* **Sesi cloud**: tidak ada satu pun kunci yang mengubah ketersediaan [sesi cloud](#cloud-sessions). Untuk mematikannya, gunakan pengaturan **Cloud sessions** di bawah [Admin console controls](#admin-console-controls).

973 

974Saat Anda menyesuaikan contoh tersebut, periksa hostname dan versi Desktop:

975 

976* **Hostname**: pastikan bahwa sebuah pola di `sshHostAllowlist` cocok dengan hostname setiap entri `sshConfigs`, tanpa `user@`, atau developer tidak dapat terhubung ke host tersebut. Untuk cara Desktop mencocokkan hostname, lihat [Restrict which SSH hosts users can connect to](#restrict-which-ssh-hosts-users-can-connect-to).

977* **Versi**: `disableDesktopLocalSessions` memerlukan Claude Desktop v1.37937.0 atau yang lebih baru

978 

979Letakkan ketiga kunci tersebut dalam satu [sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources), yaitu sumber berperingkat tertinggi yang Anda kirimkan. Jika Anda mengirimkan [pengaturan yang dikelola server](/docs/id/server-managed-settings), simpan juga salinan ketiga kunci tersebut dalam kebijakan MDM atau file pengaturan terkelola berperingkat tertinggi di setiap komputer. Desktop mengambil pengaturan yang dikelola server saat diluncurkan, dan salinan di komputer berlaku sampai pengambilan berhasil.

980 

981Untuk mengonfirmasi bahwa pengaturan berlaku, periksa komputer seorang developer:

982 

983<Steps>

984 <Step title="Periksa dropdown lingkungan">

985 Keluar dan buka kembali Desktop, lalu buka dropdown lingkungan di kotak prompt. **Local** berwarna abu-abu, dan **Shared Dev VM** muncul di bawah **SSH**. Jika **Local** masih tersedia, periksa versi Desktop, apakah file tersebut merupakan JSON yang valid, dan sumber terkelola mana yang dibaca komputer tersebut.

986 </Step>

987 

988 <Step title="Tambahkan host yang tidak ada di allowlist">

989 [Tambahkan koneksi SSH](#ssh-sessions) dengan hostname yang tidak ada di allowlist, seperti `other.example.com`. Desktop menyimpan koneksi tersebut tetapi menolak untuk terhubung, dan menyatakan bahwa pengaturan organisasi Anda tidak mengizinkan koneksi tersebut.

990 </Step>

991</Steps>

992 

940<h2 id="enterprise-configuration">993<h2 id="enterprise-configuration">

941 Konfigurasi Enterprise994 Konfigurasi Enterprise

942</h2>995</h2>

env-vars.md +1 −1

Details

256| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Tetapkan ke `1` untuk menonaktifkan semua fungsionalitas tugas latar belakang, termasuk parameter `run_in_background` pada tool Bash dan subagent, pemindahan otomatis ke latar belakang, dan pintasan Ctrl+B |256| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Tetapkan ke `1` untuk menonaktifkan semua fungsionalitas tugas latar belakang, termasuk parameter `run_in_background` pada tool Bash dan subagent, pemindahan otomatis ke latar belakang, dan pintasan Ctrl+B |

257| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Tetapkan ke `1` untuk menghentikan Claude Code memperlakukan respons streaming [Amazon Bedrock](/docs/id/amazon-bedrock) dengan header `Content-Type` yang hilang atau kosong sebagai binary event stream Amazon Bedrock. Secara default, Claude Code mengasumsikan gateway membuang header dari respons yang selain itu tidak dimodifikasi, sehingga Claude Code mendekode body dan streaming tetap berfungsi. Tetapkan ini hanya untuk gateway yang juga memancarkan ulang stream sebagai server-sent events; Claude Code kemudian membaca body tanpa header sebagai server-sent events. Memerlukan Claude Code v2.1.239 atau lebih baru |257| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Tetapkan ke `1` untuk menghentikan Claude Code memperlakukan respons streaming [Amazon Bedrock](/docs/id/amazon-bedrock) dengan header `Content-Type` yang hilang atau kosong sebagai binary event stream Amazon Bedrock. Secara default, Claude Code mengasumsikan gateway membuang header dari respons yang selain itu tidak dimodifikasi, sehingga Claude Code mendekode body dan streaming tetap berfungsi. Tetapkan ini hanya untuk gateway yang juga memancarkan ulang stream sebagai server-sent events; Claude Code kemudian membaca body tanpa header sebagai server-sent events. Memerlukan Claude Code v2.1.239 atau lebih baru |

258| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Tetapkan ke `1` untuk melewati pemeriksaan bahwa respons streaming [Amazon Bedrock](/docs/id/amazon-bedrock) membawa content-type `application/vnd.amazon.eventstream`. Tanpa variabel ini, saat respons membawa content-type yang berbeda, Claude Code menggagalkan permintaan dengan error yang menyebutkan tipe tersebut, yang berarti [gateway atau proxy sedang mentransformasi respons](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Konfigurasikan gateway untuk meneruskan header `Content-Type` dan body tanpa modifikasi alih-alih menetapkan variabel ini. Memerlukan Claude Code v2.1.208 atau lebih baru |258| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Tetapkan ke `1` untuk melewati pemeriksaan bahwa respons streaming [Amazon Bedrock](/docs/id/amazon-bedrock) membawa content-type `application/vnd.amazon.eventstream`. Tanpa variabel ini, saat respons membawa content-type yang berbeda, Claude Code menggagalkan permintaan dengan error yang menyebutkan tipe tersebut, yang berarti [gateway atau proxy sedang mentransformasi respons](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Konfigurasikan gateway untuk meneruskan header `Content-Type` dan body tanpa modifikasi alih-alih menetapkan variabel ini. Memerlukan Claude Code v2.1.208 atau lebih baru |

259| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Tetapkan ke `1` untuk menghentikan perintah shell latar belakang yang sedang berjalan, workflow dinamis, dan, sejak v2.1.198, subagent latar belakang milik [sesi latar belakang](/docs/id/agent-view) saat [supervisor](/docs/id/agent-view#the-supervisor-process) menghentikan, memulai ulang, atau memperbarui proses sesi tersebut, alih-alih menyerahkannya ke proses berikutnya dari sesi tersebut. Hanya memengaruhi penyerahan tersebut: memindahkan sesi ke latar belakang dengan `←` atau [`/background`](/docs/id/agent-view#from-inside-a-session) tetap membawa pekerjaan yang sedang berlangsung, dan `CLAUDE_DISABLE_ADOPT` mematikan keduanya. Memerlukan Claude Code v2.1.196 atau lebih baru |259| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Tetapkan ke `1` untuk menghentikan perintah shell latar belakang yang sedang berjalan, workflow dinamis, dan, mulai v2.1.198, subagent latar belakang milik [sesi latar belakang](/docs/id/agent-view) saat [supervisor](/docs/id/agent-view#the-supervisor-process) menghentikan, memulai ulang, atau memperbarui proses sesi tersebut, alih-alih menyerahkannya ke proses sesi berikutnya. Hanya memengaruhi penyerahan tersebut: memindahkan sesi ke latar belakang dengan `←` atau [`/background`](/docs/id/agent-view#from-inside-a-session) tetap membawa pekerjaan latar belakang yang sedang berlangsung, dan `CLAUDE_DISABLE_ADOPT` menonaktifkan keduanya. Memerlukan Claude Code v2.1.196 atau lebih baru |

260| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Tetapkan ke `1` untuk menghentikan Claude Code menghentikan [perintah shell latar belakang](/docs/id/interactive-mode#background-bash-commands) di bawah tekanan memori. Secara default, di macOS dan Linux, Claude Code menghentikan shell latar belakang saat sistem operasi melaporkan tekanan memori kritis dan sesi telah idle selama 30 menit tanpa giliran atau subagent yang berjalan. Windows tidak memiliki sinyal tekanan memori, sehingga variabel ini tidak berpengaruh di sana. Memerlukan Claude Code v2.1.193 atau lebih baru |260| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Tetapkan ke `1` untuk menghentikan Claude Code menghentikan [perintah shell latar belakang](/docs/id/interactive-mode#background-bash-commands) di bawah tekanan memori. Secara default, di macOS dan Linux, Claude Code menghentikan shell latar belakang saat sistem operasi melaporkan tekanan memori kritis dan sesi telah idle selama 30 menit tanpa giliran atau subagent yang berjalan. Windows tidak memiliki sinyal tekanan memori, sehingga variabel ini tidak berpengaruh di sana. Memerlukan Claude Code v2.1.193 atau lebih baru |

261| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Tetapkan ke `1` untuk menonaktifkan [skills](/docs/id/skills) dan workflow yang disertakan dengan Claude Code: skill bawaan dan workflow 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. Skill dari plugin, `.claude/skills/`, dan `.claude/commands/` tidak terpengaruh. Setara dengan pengaturan [`disableBundledSkills`](/docs/id/settings-reference#disablebundledskills) |261| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Tetapkan ke `1` untuk menonaktifkan [skills](/docs/id/skills) dan workflow yang disertakan dengan Claude Code: skill bawaan dan workflow 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. Skill dari plugin, `.claude/skills/`, dan `.claude/commands/` tidak terpengaruh. Setara dengan pengaturan [`disableBundledSkills`](/docs/id/settings-reference#disablebundledskills) |

262| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Tetapkan ke `1` untuk menjaga tool browser [Claude in Chrome](/docs/id/chrome) tetap tersedia sambil menghilangkan bagian Chrome dari system prompt dan [skill bawaan](/docs/id/skills#bundled-skills) `/claude-in-chrome`. Untuk host yang menyematkan Claude Code dan menyediakan panduan browser sendiri. Memerlukan Claude Code v2.1.257 atau lebih baru |262| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Tetapkan ke `1` untuk menjaga tool browser [Claude in Chrome](/docs/id/chrome) tetap tersedia sambil menghilangkan bagian Chrome dari system prompt dan [skill bawaan](/docs/id/skills#bundled-skills) `/claude-in-chrome`. Untuk host yang menyematkan Claude Code dan menyediakan panduan browser sendiri. Memerlukan Claude Code v2.1.257 atau lebih baru |

errors.md +6 −2

Details

4039 4039 

4040**Yang harus dilakukan:**4040**Yang harus dilakukan:**

4041 4041 

4042* Jalankan `claude plugin marketplace remove <name>`. Ini juga mencopot plugin yang dipasang dari marketplace dan menghapus data tersimpannya4042* Untuk mempertahankan marketplace yang dideklarasikan secara inline oleh file pengaturan dengan `"source": "settings"`, ubah namanya sebelum Anda menghapus nama lama, karena menghapus marketplace juga menghapus entrinya dari file pengaturan Anda. Claude Code v2.1.292 atau yang lebih baru mencantumkan langkah-langkah ini dalam pesan:

4043* Untuk menyimpan marketplace sebagai gantinya, tunggu sampai pemeliharanya mengganti namanya, kemudian jalankan `claude plugin marketplace update <name>`4043 1. Di setiap file pengaturan yang mencantumkan marketplace di bawah `extraKnownMarketplaces`, berikan kunci entri dan `source.name`-nya satu nama baru berupa ASCII biasa yang tidak terlihat seperti nama resmi. Jika administrator menambahkan marketplace melalui pengaturan terkelola organisasi Anda, administrator yang melakukan langkah ini

4044 2. Jalankan `claude plugin marketplace remove <old-name>`, atau hapus nama lama di tab **Marketplaces** di `/plugin`. Ini juga mencopot plugin-pluginnya dan menghapus data, opsi, dan rahasianya

4045 3. Mulai Claude Code lagi, di folder proyek jika file tersebut adalah file pengaturan proyek. Kemudian pasang plugin dari marketplace yang telah diubah namanya

4046* Untuk mempertahankan marketplace lainnya, tunggu sampai pemeliharanya mengganti namanya, kemudian jalankan `claude plugin marketplace update <name>`

4047* Untuk menghapus marketplace, jalankan `claude plugin marketplace remove <name>`. Ini juga mencopot plugin yang dipasang dari marketplace dan menghapus data, opsi, dan rahasianya

4044* Jika Anda menerbitkan marketplace, ubah namanya di `marketplace.json` Anda; pengguna kemudian memperbarui marketplace daripada menghapusnya4048* Jika Anda menerbitkan marketplace, ubah namanya di `marketplace.json` Anda; pengguna kemudian memperbarui marketplace daripada menghapusnya

4045 4049 

4046<h3 id="marketplace-is-already-added-from-a-different-source">4050<h3 id="marketplace-is-already-added-from-a-different-source">

hooks.md +26 −4

Details

3321 WorktreeCreate3321 WorktreeCreate

3322</h3>3322</h3>

3323 3323 

3324Berjalan saat worktree sedang dibuat, baik dari `claude --worktree`, dari [subagent yang menggunakan `isolation: "worktree"`](/docs/id/sub-agents#choose-the-subagent-scope), maupun untuk [sesi latar belakang](/docs/id/agent-view#how-file-edits-are-isolated) yang diisolasi Claude Code dalam worktree-nya sendiri. Secara default, Claude Code membuat salinan kerja terisolasi dengan `git worktree`. Mengonfigurasi hook WorktreeCreate akan menggantikan perilaku git default tersebut, sehingga Anda dapat menggunakan sistem kontrol versi lain seperti SVN, Perforce, atau Mercurial.3324Berjalan ketika Claude Code membuat worktree dalam kasus seperti berikut:

3325 

3326* Anda memulai sesi dengan `claude --worktree`

3327* Claude membuat worktree selama sesi dan beralih ke dalamnya dengan tool [`EnterWorktree`](/docs/id/tools-reference)

3328* Sebuah [subagent menggunakan `isolation: "worktree"`](/docs/id/sub-agents#choose-the-subagent-scope)

3329* Sebuah [workflow](/docs/id/workflows#migrate-many-files-in-parallel) menjalankan agent di worktree-nya sendiri

3330* Claude Code mengisolasi [sesi latar belakang](/docs/id/agent-view#how-file-edits-are-isolated) di worktree-nya sendiri

3331* [`claude remote-control`](/docs/id/remote-control#start-a-remote-control-session) dalam mode `worktree` memulai sesi di worktree-nya sendiri

3332 

3333Ketika Claude menjalankan `git worktree add` melalui tool Bash alih-alih memanggil `EnterWorktree`, hook WorktreeCreate Anda tidak berjalan. Untuk memeriksa atau memblokir perintah tersebut, tambahkan hook [`PreToolUse`](#pretooluse) dengan matcher `Bash`.

3334 

3335Secara default, Claude Code membuat salinan kerja terisolasi dengan `git worktree`. Mengonfigurasi hook WorktreeCreate menggantikan perilaku git default tersebut, sehingga Anda dapat menggunakan sistem kontrol versi lain seperti SVN, Perforce, atau Mercurial.

3325 3336 

3326Karena hook menggantikan perilaku default sepenuhnya, [`.worktreeinclude`](/docs/id/worktrees#copy-gitignored-files-into-worktrees) tidak diproses. Jika Anda perlu menyalin file konfigurasi lokal seperti `.env` ke worktree baru, lakukan di dalam skrip hook Anda.3337Karena hook menggantikan perilaku default sepenuhnya, [`.worktreeinclude`](/docs/id/worktrees#copy-gitignored-files-into-worktrees) tidak diproses. Jika Anda perlu menyalin file konfigurasi lokal seperti `.env` ke worktree baru, lakukan di dalam skrip hook Anda.

3327 3338 


3390* Anda keluar dari [sesi worktree](/docs/id/worktrees#start-claude-in-a-worktree) interaktif dan memilih untuk menghapus worktree saat Claude Code meminta Anda3401* Anda keluar dari [sesi worktree](/docs/id/worktrees#start-claude-in-a-worktree) interaktif dan memilih untuk menghapus worktree saat Claude Code meminta Anda

3391* Anda keluar dari sesi worktree interaktif yang belum Anda [beri nama](/docs/id/sessions#name-your-sessions), Claude Code tidak menemukan file yang berubah atau tidak terlacak, dan menghapus worktree tanpa meminta Anda3402* Anda keluar dari sesi worktree interaktif yang belum Anda [beri nama](/docs/id/sessions#name-your-sessions), Claude Code tidak menemukan file yang berubah atau tidak terlacak, dan menghapus worktree tanpa meminta Anda

3392* Anda menghapus [sesi latar belakang](/docs/id/agent-view#what-deleting-a-session-removes) yang berjalan di worktree tersebut3403* Anda menghapus [sesi latar belakang](/docs/id/agent-view#what-deleting-a-session-removes) yang berjalan di worktree tersebut

3404* Anda meminta Claude untuk keluar dan menghapus worktree selama sesi, dan Claude menghapusnya dengan tool [`ExitWorktree`](/docs/id/tools-reference)

3405* Sesi yang dimulai oleh [`claude remote-control`](/docs/id/remote-control#start-a-remote-control-session) dalam mode `worktree` berakhir tanpa crash, dan Claude Code tidak menemukan file yang berubah atau tidak terlacak serta tidak ada commit baru di worktree-nya

3406* Anda menghentikan `claude remote-control` saat sesi yang dimulainya dalam mode `worktree` masih berjalan, dan Claude Code tidak menemukan file yang berubah atau tidak terlacak serta tidak ada commit baru di worktree-nya

3407 

3408Ketika subagent atau agent workflow selesai, Claude Code mempertahankan worktree yang dibuat hook WorktreeCreate Anda untuknya dan tidak menjalankan hook WorktreeRemove Anda. Hapus sendiri worktree tersebut ketika pekerjaan selesai.

3409 

3410Claude Code tidak meminta konfirmasi Anda sebelum hook Anda berjalan untuk panggilan `ExitWorktree` atau pembersihan `claude remote-control`. `ExitWorktree` menolak menghapus worktree yang dibuat hook kecuali panggilan tersebut meneruskan [`discard_changes: true`](/docs/id/agent-sdk/typescript#exitworktree), yang menjadikan hook Anda pemeriksaan terakhir pada jalur tersebut.

3393 3411 

3394Claude Code menggunakan git untuk mencari file yang berubah atau tidak terlacak, sehingga tidak menemukan apa pun di worktree yang bukan checkout git atau tidak berada di dalamnya, meskipun direktori tersebut berisi pekerjaan yang belum di-commit. Periksa pekerjaan tersebut di hook WorktreeRemove Anda sebelum hook menghapus apa pun.3412Claude Code menggunakan git untuk mencari file yang berubah atau tidak terlacak, sehingga tidak menemukan apa pun di worktree yang bukan checkout git atau tidak berada di dalamnya, meskipun direktori tersebut berisi pekerjaan yang belum di-commit. Periksa pekerjaan tersebut di hook WorktreeRemove Anda sebelum hook menghapus apa pun.

3395 3413 

3396Untuk worktree berbasis git, Claude Code menangani pembersihan secara otomatis dengan `git worktree remove`. Jika Anda mengonfigurasi hook WorktreeCreate, pasangkan dengan hook WorktreeRemove untuk mengontrol pembersihan worktree yang dibuatnya:3414Untuk worktree berbasis git, Claude Code menangani pembersihan secara otomatis dengan `git worktree remove`. Jika Anda mengonfigurasi hook WorktreeCreate, pasangkan dengan hook WorktreeRemove untuk mengontrol pembersihan:

3397 3415 

3398* **Tanpa hook WorktreeRemove**: saat Claude Code menghapus worktree ketika Anda keluar dari sesi worktree, Claude Code melakukan fallback ke `git worktree remove --force` pada path yang dikembalikan hook WorktreeCreate Anda, sehingga worktree yang dikenali git akan dihapus. Worktree yang tidak dikenali git, misalnya yang dibuat hook Anda dengan sistem kontrol versi non-git, tetap ada di disk. Untuk mengetahui apa yang dilakukan penghapusan [sesi latar belakang](/docs/id/agent-view#what-deleting-a-session-removes) terhadap worktree yang dibuat hook, lihat aturan penghapusan agent view.3416* **Tanpa hook WorktreeRemove**: Claude Code beralih ke git sebagai fallback untuk penghapusan saat keluar atau melalui `ExitWorktree`, dan mempertahankan worktree saat `claude remote-control` melakukan pembersihan:

3417 * **Anda keluar dari sesi worktree, atau Claude memanggil `ExitWorktree`**: Claude Code menghapus path yang dikembalikan hook WorktreeCreate Anda seperti yang dilakukan `git worktree remove --force`, sehingga worktree yang dikenali git akan dihapus. Worktree yang tidak dikenali git, misalnya yang dibuat hook Anda dengan sistem kontrol versi non-git, tetap ada di disk.

3418 * **`claude remote-control` membersihkan worktree sebuah sesi**: worktree tetap ada di disk, dan terminal yang menjalankan `claude remote-control` menampilkan `worktree removal failed, kept: <path>`.

3419 * **Anda menghapus sesi latar belakang**: lihat [Apa yang dihapus saat menghapus sesi](/docs/id/agent-view#what-deleting-a-session-removes).

3399* **Hook keluar dengan 0**: worktree dianggap telah dihapus. Claude Code tidak membaca apa pun lagi dari hook, jadi pastikan hook Anda telah menghapus direktori tersebut.3420* **Hook keluar dengan 0**: worktree dianggap telah dihapus. Claude Code tidak membaca apa pun lagi dari hook, jadi pastikan hook Anda telah menghapus direktori tersebut.

3400* **Hook keluar dengan non-zero**: penghapusan gagal jika direktori di `worktree_path` masih ada setelahnya, dan worktree tetap ada di disk tanpa fallback git. Hook yang telah menghapus direktori sebelum keluar dengan non-zero dianggap telah menghapus. Untuk cara kegagalan dilaporkan, lihat [Input WorktreeRemove](#worktreeremove-input).3421* **Hook keluar dengan non-zero**: penghapusan gagal jika direktori di `worktree_path` masih ada setelahnya, dan worktree tetap ada di disk tanpa fallback git. Hook yang telah menghapus direktori sebelum keluar dengan non-zero dianggap telah menghapus. Untuk cara kegagalan dilaporkan, lihat [Input WorktreeRemove](#worktreeremove-input).

3401 3422 


3403 3424 

3404Claude Code membuang [kolom output JSON](#json-output) dari hook WorktreeRemove, seperti `systemMessage` dan `continue`.3425Claude Code membuang [kolom output JSON](#json-output) dari hook WorktreeRemove, seperti `systemMessage` dan `continue`.

3405 3426 

3406Untuk penghapusan sesi latar belakang, Claude Code memverifikasi path worktree yang tersimpan sebelum menjalankan hook dan menolak path yang merupakan symlink atau melewati symlink di bawah root repositori. Hook berjalan untuk worktree yang masih berisi file hanya jika Anda mengonfirmasi penghapusan di [agent view](/docs/id/agent-view#what-deleting-a-session-removes); untuk worktree seperti itu, [`claude rm`](/docs/id/agent-view#manage-sessions-from-the-shell) justru mempertahankan sesi dan worktree. Sebelum v2.1.216, hook berjalan pada path yang tersimpan tanpa pemeriksaan ini.3427Untuk penghapusan sesi latar belakang, Claude Code memverifikasi path worktree yang tersimpan sebelum menjalankan hook dan menolak path yang merupakan symlink atau melewati symlink di bawah root repositori. Pada jalur tersebut, hook berjalan untuk worktree yang masih berisi file hanya ketika Anda mengonfirmasi penghapusan di [agent view](/docs/id/agent-view#what-deleting-a-session-removes); untuk worktree seperti itu, [`claude rm`](/docs/id/agent-view#manage-sessions-from-the-shell) justru mempertahankan sesi dan worktree. Sebelum v2.1.216, hook berjalan pada path yang tersimpan tanpa pemeriksaan ini.

3407 3428 

3408Claude Code meneruskan path yang dikembalikan oleh WorktreeCreate sebagai `worktree_path` dalam input hook. Contoh ini membaca path tersebut dan menghapus direktorinya:3429Claude Code meneruskan path yang dikembalikan oleh WorktreeCreate sebagai `worktree_path` dalam input hook. Contoh ini membaca path tersebut dan menghapus direktorinya:

3409 3430 


3444 3465 

3445* Worktree tetap ada di disk, dan perintah serta stderr hook dikirim ke [log debug](#debug-hooks).3466* Worktree tetap ada di disk, dan perintah serta stderr hook dikirim ke [log debug](#debug-hooks).

3446* Jika Anda sedang menghapus sesi latar belakang, sesi tersebut juga tetap ada. Pesan penolakan di [agent view](/docs/id/agent-view#what-deleting-a-session-removes) melaporkan bagaimana hook berakhir, seperti `exited 1`, mengutip awal stderr-nya, dan menyatakan apakah menghapus sesi lagi tetap akan menghapus direktori tersebut.3467* Jika Anda sedang menghapus sesi latar belakang, sesi tersebut juga tetap ada. Pesan penolakan di [agent view](/docs/id/agent-view#what-deleting-a-session-removes) melaporkan bagaimana hook berakhir, seperti `exited 1`, mengutip awal stderr-nya, dan menyatakan apakah menghapus sesi lagi tetap akan menghapus direktori tersebut.

3468* Jika `claude remote-control` sedang membersihkan worktree sebuah sesi, terminal yang menjalankannya menampilkan `worktree removal failed, kept: <path>`.

3447 3469 

3448<h3 id="precompact">3470<h3 id="precompact">

3449 PreCompact3471 PreCompact

Details

55| Anda ingin | Mulai dengan | Isolasi yang diperlukan | Catatan |55| Anda ingin | Mulai dengan | Isolasi yang diperlukan | Catatan |

56| :- | :- | :- | :- |56| :- | :- | :- | :- |

57| Tinjau setiap tindakan sendiri | Mode Manual: `claude --permission-mode default` | Tidak ada | Pekerjaan sensitif, kode yang tidak familiar |57| Tinjau setiap tindakan sendiri | Mode Manual: `claude --permission-mode default` | Tidak ada | Pekerjaan sensitif, kode yang tidak familiar |

58| Iterasi lokal dengan lebih sedikit prompt, tanpa pengklasifikasi | Mode Manual ditambah sandbox Bash dalam [mode auto-allow](/docs/id/sandboxing#sandbox-modes): `claude --permission-mode default`, kemudian jalankan `/sandbox` dan pilih auto-allow | Sandbox Bash bawaan, di macOS, Linux, dan WSL2 | Aturan deny masih berlaku, dan aturan ask yang menyebutkan perintah, seperti `Bash(git push *)`, masih meminta. Untuk mengaktifkan sandbox dari file pengaturan sebagai gantinya, atur [`sandbox.enabled`](/docs/id/settings-reference#sandbox-enabled) ke `true` |58| Iterasi lokal dengan lebih sedikit prompt, tanpa pengklasifikasi | Mode Manual ditambah sandbox Bash dalam [mode auto-allow](/docs/id/sandboxing#sandbox-modes): `claude --permission-mode default`, kemudian jalankan `/sandbox` dan pilih auto-allow | Sandbox Bash bawaan, di macOS, Linux, dan WSL2 | Aturan deny masih berlaku, dan aturan ask yang menyebutkan perintah, seperti `Bash(git push *)`, masih meminta. [Mode auto-allow](/docs/id/sandboxing#auto-allow-mode) mencakup perintah lain yang dapat meminta. Untuk mengaktifkan sandbox dari file pengaturan sebagai gantinya, atur [`sandbox.enabled`](/docs/id/settings-reference#sandbox-enabled) ke `true` |

59| Jelajahi sebelum mengubah apa pun | `claude --permission-mode plan` | Tidak ada | Claude Code memblokir pengeditan sampai Anda [menyetujui rencana](#review-and-approve-a-plan) |59| Jelajahi sebelum mengubah apa pun | `claude --permission-mode plan` | Tidak ada | Claude Code memblokir pengeditan sampai Anda [menyetujui rencana](#review-and-approve-a-plan) |

60| Bekerja hands-off dalam mode auto | `claude --permission-mode auto`, [mode izin awal bawaan](#which-mode-a-session-starts-in) dengan v2.1.283 atau lebih baru | Tidak ada; sandbox atau kontainer menambah pertahanan berlapis | Memerlukan [model yang didukung](#eliminate-prompts-with-auto-mode), dan organisasi Anda dapat [mematikan mode auto](#eliminate-prompts-with-auto-mode) |60| Bekerja hands-off dalam mode auto | `claude --permission-mode auto`, [mode izin awal bawaan](#which-mode-a-session-starts-in) dengan v2.1.283 atau lebih baru | Tidak ada; sandbox atau kontainer menambah pertahanan berlapis | Memerlukan [model yang didukung](#eliminate-prompts-with-auto-mode), dan organisasi Anda dapat [mematikan mode auto](#eliminate-prompts-with-auto-mode) |

61| Jalankan di CI dengan allowlist yang tepat | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Tidak ada di luar apa yang disediakan runner CI Anda | [Cloud sessions](/docs/id/claude-code-on-the-web) mengabaikan `dontAsk` dari file pengaturan |61| Jalankan di CI dengan allowlist yang tepat | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Tidak ada di luar apa yang disediakan runner CI Anda | [Cloud sessions](/docs/id/claude-code-on-the-web) mengabaikan `dontAsk` dari file pengaturan |

permissions.md +1 −0

Details

744* Aturan ask yang dibatasi konten seperti `Bash(git push *)` masih memaksa prompt744* Aturan ask yang dibatasi konten seperti `Bash(git push *)` masih memaksa prompt

745* Aturan deny eksplisit masih berlaku745* Aturan deny eksplisit masih berlaku

746* Perintah `rm` atau `rmdir` yang menargetkan [jalur kritis](/docs/id/permission-modes#critical-paths) masih melalui alur izin reguler746* Perintah `rm` atau `rmdir` yang menargetkan [jalur kritis](/docs/id/permission-modes#critical-paths) masih melalui alur izin reguler

747* Perintah lain yang di-sandbox juga dapat melalui alur izin reguler, sebagaimana dijelaskan dalam [mode Auto-allow](/docs/id/sandboxing#auto-allow-mode)

747 748 

748Perintah yang tidak akan berjalan di-sandbox, seperti perintah yang dikecualikan, menghormati aturan ask `Bash` biasa seperti biasanya. Lihat [sandbox modes](/docs/id/sandboxing#sandbox-modes) untuk mengubah perilaku ini.749Perintah yang tidak akan berjalan di-sandbox, seperti perintah yang dikecualikan, menghormati aturan ask `Bash` biasa seperti biasanya. Lihat [sandbox modes](/docs/id/sandboxing#sandbox-modes) untuk mengubah perilaku ini.

749 750 

Details

55* **Nama yang dimulai dengan `claudeai-`**: dicadangkan untuk marketplace yang dihosting di claude.ai. `claude plugin marketplace add` menolak marketplace lain apa pun yang menggunakannya dengan `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.55* **Nama yang dimulai dengan `claudeai-`**: dicadangkan untuk marketplace yang dihosting di claude.ai. `claude plugin marketplace add` menolak marketplace lain apa pun yang menggunakannya dengan `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.

56* **Folder unduhan dari marketplace GitHub yang terdaftar, `<owner>-<repo>`**: Claude Code mengunduh marketplace yang ditambahkan dari sumber `github` seperti `acme/x-tools` melalui folder bernama `acme-x-tools`, apa pun `name` milik marketplace tersebut. Selama marketplace tersebut terdaftar dengan nama selain `acme-x-tools`, `claude plugin marketplace add` menolak marketplace lain yang bernama `acme-x-tools` setelah mengunduhnya, dan melaporkan `Can't use the marketplace name "acme-x-tools"`. Pemeriksaan ini memerlukan Claude Code v2.1.290 atau lebih baru.56* **Folder unduhan dari marketplace GitHub yang terdaftar, `<owner>-<repo>`**: Claude Code mengunduh marketplace yang ditambahkan dari sumber `github` seperti `acme/x-tools` melalui folder bernama `acme-x-tools`, apa pun `name` milik marketplace tersebut. Selama marketplace tersebut terdaftar dengan nama selain `acme-x-tools`, `claude plugin marketplace add` menolak marketplace lain yang bernama `acme-x-tools` setelah mengunduhnya, dan melaporkan `Can't use the marketplace name "acme-x-tools"`. Pemeriksaan ini memerlukan Claude Code v2.1.290 atau lebih baru.

57 57 

58Ketika marketplace yang terdaftar berhenti dimuat karena namanya meniru nama resmi, `claude plugin list` dan `/plugin` melaporkan `Claude Code refuses the marketplace name "<name>"`. Pesan tersebut memberi tahu Anda untuk menghapus marketplace. Menghapusnya juga mencopot plugin-nya dan menghapus data yang disimpan. Pesan penolakan bernama ini memerlukan Claude Code v2.1.282 atau lebih baru.58Ketika marketplace yang terdaftar berhenti dimuat karena namanya meniru nama resmi, `claude plugin list` dan `/plugin` melaporkan `Claude Code refuses the marketplace name "<name>"`. Pesan tersebut memberi tahu Anda untuk menghapus marketplace. Menghapusnya juga mencopot plugin-nya dan menghapus data, opsi, dan secret-nya. Pesan penolakan bernama ini memerlukan Claude Code v2.1.282 atau lebih baru.

59 

60Jika file pengaturan mendeklarasikan marketplace secara inline, pesan tersebut memberi tahu Anda untuk mengganti nama entrinya sebelum Anda menghapus nama lama. Untuk langkah-langkahnya, lihat [Claude Code refuses the marketplace name](/docs/id/errors#claude-code-refuses-the-marketplace-name). Pesan tersebut mencantumkan langkah-langkah ini di Claude Code v2.1.292 atau lebih baru.

59 61 

60<h2 id="top-level-fields">62<h2 id="top-level-fields">

61 Field tingkat atas63 Field tingkat atas

Details

88| [`prompt.submit`](/docs/id/plugins/mods/events#rewrite-or-add-to-a-prompt) | Sebuah prompt dikirim | `next({ ...e, text })`, `next({ ...e, context })`, atau `{ drop: reason }` |88| [`prompt.submit`](/docs/id/plugins/mods/events#rewrite-or-add-to-a-prompt) | Sebuah prompt dikirim | `next({ ...e, text })`, `next({ ...e, context })`, atau `{ drop: reason }` |

89| `prompt.fill`, `prompt.suggest` | Teks akan dimasukkan ke kotak prompt sebagai draf, atau sebagai saran redup | `next(e)` dengan teks yang diubah |89| `prompt.fill`, `prompt.suggest` | Teks akan dimasukkan ke kotak prompt sebagai draf, atau sebagai saran redup | `next(e)` dengan teks yang diubah |

90| `prompt.edit` | Pengguna mengedit kotak prompt | `next(e)` |90| `prompt.edit` | Pengguna mengedit kotak prompt | `next(e)` |

91| `prompt.autocomplete` | Pengguna mengetik di kotak prompt dan sebuah kata berakhir di kursor. `e.token` adalah kata tersebut. Claude Code tidak menunggu hook: baris autocomplete miliknya sendiri ditampilkan lebih dulu. | `{ suggestions }`, daftar baris `{ text, label, description }` yang ditampilkan di bawah baris milik Claude Code. Memilih sebuah baris akan menulis `text`-nya menggantikan kata tersebut. |

91| `prompt.compose` | Claude Code merender system prompt | `{ sections }`, daftar `{ id, text, scope }` dalam urutan pengirimannya |92| `prompt.compose` | Claude Code merender system prompt | `{ sections }`, daftar `{ id, text, scope }` dalam urutan pengirimannya |

92| [`prompt.section`](/docs/id/plugins/mods/events#rewrite-or-add-to-a-prompt) | Sekali untuk setiap bagian bernama dari system prompt. `e.name` adalah `id` bagian tersebut di `prompt.compose`. | `{ text }`, atau `{ text: null }` untuk menghilangkan bagian tersebut |93| [`prompt.section`](/docs/id/plugins/mods/events#rewrite-or-add-to-a-prompt) | Sekali untuk setiap bagian bernama dari system prompt. `e.name` adalah `id` bagian tersebut di `prompt.compose`. | `{ text }`, atau `{ text: null }` untuk menghilangkan bagian tersebut |

93| [`prompt.context`](/docs/id/plugins/mods/events#rewrite-or-add-to-a-prompt) | Sekali untuk setiap percakapan, untuk konteks yang dikirim bersama pesan pertama | `{ blocks }` |94| [`prompt.context`](/docs/id/plugins/mods/events#rewrite-or-add-to-a-prompt) | Sekali untuk setiap percakapan, untuk konteks yang dikirim bersama pesan pertama | `{ blocks }` |

Details

64 | `--remote-control-session-name-prefix <prefix>` | Awalan untuk nama sesi yang dibuat secara otomatis ketika tidak ada nama eksplisit yang ditetapkan. Default ke nama host mesin Anda, menghasilkan nama seperti `myhost-graceful-unicorn`. Atur `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` untuk efek yang sama. |64 | `--remote-control-session-name-prefix <prefix>` | Awalan untuk nama sesi yang dibuat secara otomatis ketika tidak ada nama eksplisit yang ditetapkan. Default ke nama host mesin Anda, menghasilkan nama seperti `myhost-graceful-unicorn`. Atur `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` untuk efek yang sama. |

65 | `-c`, `--continue` | Bawa kembali sesi yang dimulai server terakhir di direktori ini, bukan membuat yang baru. Lihat [Resume sessions after stopping the server](#resume-sessions-after-stopping-the-server). Tidak dapat digabungkan dengan `--session-id`, `--spawn`, `--capacity`, atau `--create-session-in-dir`. Memerlukan Claude Code v2.1.200 atau lebih baru. |65 | `-c`, `--continue` | Bawa kembali sesi yang dimulai server terakhir di direktori ini, bukan membuat yang baru. Lihat [Resume sessions after stopping the server](#resume-sessions-after-stopping-the-server). Tidak dapat digabungkan dengan `--session-id`, `--spawn`, `--capacity`, atau `--create-session-in-dir`. Memerlukan Claude Code v2.1.200 atau lebih baru. |

66 | `--session-id <id>` | Bawa kembali satu sesi berdasarkan ID-nya. Lihat [Resume sessions after stopping the server](#resume-sessions-after-stopping-the-server). Tidak dapat digabungkan dengan `--continue`, `--spawn`, `--capacity`, atau `--create-session-in-dir`. Memerlukan Claude Code v2.1.200 atau lebih baru. |66 | `--session-id <id>` | Bawa kembali satu sesi berdasarkan ID-nya. Lihat [Resume sessions after stopping the server](#resume-sessions-after-stopping-the-server). Tidak dapat digabungkan dengan `--continue`, `--spawn`, `--capacity`, atau `--create-session-in-dir`. Memerlukan Claude Code v2.1.200 atau lebih baru. |

67 | `--spawn <mode>` | Bagaimana server membuat sesi.<br />• `same-dir` (default): semua sesi berbagi direktori kerja saat ini, sehingga dapat bertentangan jika mengedit file yang sama.<br />• `worktree`: setiap sesi sesuai permintaan mendapatkan [git worktree](/docs/id/worktrees) miliknya sendiri. Memerlukan repositori git.<br />• `session`: mode sesi tunggal. Melayani tepat satu sesi dan menolak koneksi tambahan. Atur saat startup saja.<br />Tekan `w` saat runtime untuk beralih antara `same-dir` dan `worktree`. |67 | `--spawn <mode>` | Bagaimana server membuat sesi.<br />• `same-dir` (default): semua sesi berbagi direktori kerja saat ini, sehingga dapat bertentangan jika mengedit file yang sama.<br />• `worktree`: setiap sesi sesuai permintaan mendapatkan [git worktree](/docs/id/worktrees) miliknya sendiri. Memerlukan repositori git atau [hook `WorktreeCreate`](/docs/id/hooks#worktreecreate).<br />• `session`: mode sesi tunggal. Melayani tepat satu sesi dan menolak koneksi tambahan. Atur saat startup saja.<br />Tekan `w` saat runtime untuk beralih antara `same-dir` dan `worktree`. |

68 | `--capacity <N>` | Jumlah maksimum sesi bersamaan. Default adalah 32. Tidak dapat digunakan dengan `--spawn=session`. |68 | `--capacity <N>` | Jumlah maksimum sesi bersamaan. Default adalah 32. Tidak dapat digunakan dengan `--spawn=session`. |

69 | `--[no-]create-session-in-dir` | Buat sesi di direktori saat ini ketika server dimulai, sehingga Anda memiliki tempat untuk mengetik segera. Dalam mode `worktree` sesi ini tetap berada di direktori saat ini sementara sesi sesuai permintaan mendapatkan worktree terisolasi. Aktif secara default. Jika Anda melewatkan `--no-create-session-in-dir` untuk memulai tanpa sesi, Claude Code mengarsipkan sesi server saat Anda menghentikannya, sehingga tidak ada yang dapat [dilanjutkan](#resume-sessions-after-stopping-the-server). |69 | `--[no-]create-session-in-dir` | Buat sesi di direktori saat ini ketika server dimulai, sehingga Anda memiliki tempat untuk mengetik segera. Dalam mode `worktree` sesi ini tetap berada di direktori saat ini sementara sesi sesuai permintaan mendapatkan worktree terisolasi. Aktif secara default. Jika Anda melewatkan `--no-create-session-in-dir` untuk memulai tanpa sesi, Claude Code mengarsipkan sesi server saat Anda menghentikannya, sehingga tidak ada yang dapat [dilanjutkan](#resume-sessions-after-stopping-the-server). |

70 | `--permission-mode <mode>` | Atur [mode izin](/docs/id/permission-modes) awal untuk sesi server, seperti `acceptEdits`. Menerima `manual` sebagai alias untuk `default`; mode yang tidak dikenali menghentikan server saat startup dan mencantumkan mode yang valid. |70 | `--permission-mode <mode>` | Atur [mode izin](/docs/id/permission-modes) awal untuk sesi server, seperti `acceptEdits`. Menerima `manual` sebagai alias untuk `default`; mode yang tidak dikenali menghentikan server saat startup dan mencantumkan mode yang valid. |

sandboxing.md +11 −1

Details

202* [Aturan deny](/docs/id/permissions) eksplisit selalu dipatuhi202* [Aturan deny](/docs/id/permissions) eksplisit selalu dipatuhi

203* Perintah `rm` atau `rmdir` yang menargetkan [jalur kritis](/docs/id/permission-modes#critical-paths) tetap melalui alur izin biasa203* Perintah `rm` atau `rmdir` yang menargetkan [jalur kritis](/docs/id/permission-modes#critical-paths) tetap melalui alur izin biasa

204* [Aturan ask](/docs/id/permissions) yang dibatasi konten seperti `Bash(git push *)` tetap memaksa munculnya permintaan izin bahkan untuk perintah yang di-sandbox204* [Aturan ask](/docs/id/permissions) yang dibatasi konten seperti `Bash(git push *)` tetap memaksa munculnya permintaan izin bahkan untuk perintah yang di-sandbox

205* Aturan ask `Bash` polos, atau bentuk setaranya `Bash(*)`, dilewati untuk perintah yang berjalan di-sandbox; aturan ini tetap berlaku untuk perintah yang kembali ke alur izin biasa. Dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), aturan ini tidak dilewati: aturan ini memunculkan permintaan izin untuk perintah yang di-sandbox juga, termasuk yang read-only205* Aturan ask `Bash` polos, atau bentuk setaranya `Bash(*)`, dilewati untuk perintah yang berjalan di-sandbox; aturan ini tetap berlaku untuk perintah yang berjalan di luar sandbox. Dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), aturan ini tidak dilewati: aturan ini memunculkan permintaan izin untuk perintah yang di-sandbox juga, termasuk yang read-only

206* Perintah [tool Monitor](/docs/id/tools-reference#monitor-tool) tidak disetujui secara otomatis, meskipun tetap berjalan di dalam sandbox. Untuk melewati permintaan izin, tambahkan [aturan allow](/docs/id/permissions#bash) yang cocok dengan perintah tersebut, seperti `Bash(npm run *)`206* Perintah [tool Monitor](/docs/id/tools-reference#monitor-tool) tidak disetujui secara otomatis, meskipun tetap berjalan di dalam sandbox. Untuk melewati permintaan izin, tambahkan [aturan allow](/docs/id/permissions#bash) yang cocok dengan perintah tersebut, seperti `Bash(npm run *)`

207 207 

208Beberapa perintah yang di-sandbox juga melalui [alur izin](/docs/id/permissions) biasa alih-alih disetujui secara otomatis. Hal ini terjadi pada perintah seperti `FOO=bar npm test`, di mana variabel yang diatur di depan perintah dapat mengubah program mana yang dijalankan, serta pada `make CC=clang` atau `eval "ls"`. Aturan allow dan mode izin Anda kemudian menentukan apakah Anda melihat permintaan izin, dan perintah tetap berjalan di dalam sandbox.

209 

210Untuk ketiga perintah ini, [aturan allow](/docs/id/permissions#bash) yang cocok dengan perintah tersebut menghentikan permintaan izin yang berulang. Aturan-aturan berikut menunjukkan polanya:

211 

212* `Bash(make *)` menyetujui `make CC=clang`

213* `Bash(FOO=bar npm *)` menyetujui `FOO=bar npm test`. Ketika perintah diawali dengan penetapan variabel, sertakan penetapan tersebut dalam aturan

214* `Bash(eval "ls")` menyetujui `eval "ls"`. Aturan wildcard seperti `Bash(eval *)` tidak menghentikan permintaan izin ini, jadi tulis aturan yang cocok dengan seluruh perintah

215 

216Aturan allow yang cocok dengan sebuah perintah juga menyetujui [retry tanpa sandbox](#the-unsandboxed-retry-escape-hatch) dari perintah tersebut, sehingga perintah dapat berjalan di luar sandbox tanpa permintaan izin.

217 

208<Info>218<Info>

209 Mode auto-allow bekerja secara independen dari pengaturan mode izin Anda, dengan tiga pengecualian: [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), perintah auto mode yang membawa [domain yang diizinkan per perintah](#per-command-allowed-domains-in-auto-mode), dan [peninjauan pengklasifikasi sisi server](/docs/id/permission-modes#how-the-classifier-evaluates-actions) terhadap perintah yang di-sandbox dalam auto mode. Meskipun Anda tidak berada dalam mode "accept edits", perintah Bash yang di-sandbox berjalan secara otomatis ketika auto-allow diaktifkan. Ini berarti perintah Bash yang memodifikasi file di dalam batas sandbox dieksekusi tanpa permintaan izin, bahkan dalam mode Manual, di mana tool pengeditan file akan memunculkan permintaan izin.219 Mode auto-allow bekerja secara independen dari pengaturan mode izin Anda, dengan tiga pengecualian: [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), perintah auto mode yang membawa [domain yang diizinkan per perintah](#per-command-allowed-domains-in-auto-mode), dan [peninjauan pengklasifikasi sisi server](/docs/id/permission-modes#how-the-classifier-evaluates-actions) terhadap perintah yang di-sandbox dalam auto mode. Meskipun Anda tidak berada dalam mode "accept edits", perintah Bash yang di-sandbox berjalan secara otomatis ketika auto-allow diaktifkan. Ini berarti perintah Bash yang memodifikasi file di dalam batas sandbox dieksekusi tanpa permintaan izin, bahkan dalam mode Manual, di mana tool pengeditan file akan memunculkan permintaan izin.

210 220 

Details

191 Jitter191 Jitter

192</h3>192</h3>

193 193 

194Tugas terjadwal dapat berjalan pada waktu yang berbeda dari yang tertera pada jadwalnya. Jika tugas setiap sesi berjalan tepat sesuai jadwal, banyak di antaranya akan memanggil API pada saat yang sama, sehingga Claude Code menggeser waktu berjalan setiap tugas. Tugas berulang berjalan terlambat, dan tugas sekali jalan yang dijadwalkan tepat pada jam atau setengah jam berjalan sedikit lebih awal.194Tugas terjadwal dapat berjalan pada waktu yang berbeda dari yang tertera pada jadwalnya. Jika tugas setiap sesi berjalan tepat sesuai jadwal, banyak di antaranya akan memanggil API pada saat yang sama, sehingga Claude Code menggeser waktu berjalan setiap tugas. Tugas berulang berjalan terlambat, kecuali tugas yang berjalan setiap lima menit, yang ditulis `*/5 * * * *`. Tugas sekali jalan yang dijadwalkan tepat pada jam atau setengah jam berjalan sedikit lebih awal.

195 195 

196<h4 id="how-late-a-recurring-task-runs">196<h4 id="how-late-a-recurring-task-runs">

197 Seberapa terlambat tugas berulang berjalan197 Seberapa terlambat tugas berulang berjalan

198</h4>198</h4>

199 199 

200Saat Anda membuat tugas berulang, Claude Code memberinya penundaan tetap dan menambahkan penundaan tersebut ke setiap kali tugas berjalan. Penundaan dihitung dari ID tugas, sehingga tugas yang sama berjalan terlambat dengan jumlah menit yang sama setiap kali, termasuk saat sesi sedang idle dan tidak ada hal lain yang berjalan.200Kecuali jika berjalan setiap lima menit, tugas berulang memulai setiap kali berjalan dengan keterlambatan hingga setengah dari jarak ke waktu berjalan berikutnya, dan paling lama 30 menit. Tugas Anda termasuk salah satu dari tiga kasus berikut:

201 201 

202Tugas yang berjalan lebih sering mendapatkan penundaan yang lebih singkat, dan 30 menit adalah penundaan terlama yang dapat diperoleh suatu tugas. Berikut adalah rentang penundaan untuk beberapa jadwal umum:202* **Waktu berjalan dengan jarak merata**: tugas dengan jarak yang sama, seperti setiap jam, harian, atau setiap 10 menit, berjalan terlambat dengan jumlah menit yang sama setiap kali, termasuk saat sesi sedang idle.

203* **Waktu berjalan dengan jarak tidak merata**: tugas dengan jarak yang tidak sama, seperti tugas yang dijadwalkan pada `:00` dan `:15` setiap jam, dapat berjalan terlambat dengan jumlah menit yang berbeda pada masing-masing waktu.

204* **Setiap lima menit**: tugas yang ditulis `*/5 * * * *` tidak ditunda. Waktu berjalan yang tepat lima menit setelah waktu berjalan terakhir akan dimulai setelah [prompt cache](/docs/id/prompt-caching#which-ttl-each-request-gets) lima menit kedaluwarsa, sehingga setiap kali berjalan dimulai 15 detik lebih awal.

203 205 

204| Tugas berjalan | Penundaan berada di antara |206Temukan jadwal Anda di kolom pertama tabel ini untuk melihat kapan setiap waktu berjalannya dimulai.

207 

208| Jadwal | Kapan setiap waktu berjalan dimulai |

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

206| Setiap 10 menit | 0 dan 5 menit |210| Setiap 5 menit, ditulis `*/5 * * * *`, yang dibuat oleh `/loop 5m` | 4 menit 45 detik setelah waktu berjalan sebelumnya |

207| Setiap 30 menit | 0 dan 15 menit |211| Setiap 10 menit | Terlambat 0 hingga 5 menit |

208| Setiap jam, atau lebih jarang seperti harian | 0 dan 30 menit |212| Setiap 30 menit | Terlambat 0 hingga 15 menit |

213| Setiap jam, atau lebih jarang seperti harian | Terlambat 0 hingga 30 menit |

209 214 

210Misalnya, `7,37 * * * *` menjadwalkan tugas pada `:07` dan `:37`, yang berjarak 30 menit, sehingga penundaannya berada di antara 0 dan 15 menit. Jika penundaan tugas ini adalah 14 menit, tugas berjalan pada `:21` dan `:51` setiap jam. Mengubah jadwal ke menit yang berbeda akan memindahkan waktu berjalan, dan penundaan tetap ditambahkan di atasnya.215Misalnya, `7,37 * * * *` menjadwalkan tugas pada `:07` dan `:37`, yang berjarak 30 menit, sehingga penundaannya berada di antara 0 dan 15 menit. Jika penundaan tugas ini adalah 14 menit, tugas berjalan pada `:21` dan `:51` setiap jam. Mengubah jadwal ke menit yang berbeda akan memindahkan waktu berjalan, dan penundaan tetap ditambahkan di atasnya.

211 216 

Details

1931 1931 

1932* **Scope**: [`Any file`](#scopes)1932* **Scope**: [`Any file`](#scopes)

1933* **Type**: Boolean1933* **Type**: Boolean

1934 * `true`: Claude Code menjalankan perintah Bash bersandbox tanpa permintaan izin, tunduk pada aturan `deny` dan aturan `ask` yang dibatasi konten; `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` mematikan auto-allow1934 * `true`: Claude Code menjalankan perintah Bash bersandbox tanpa permintaan izin, kecuali dalam kasus yang dijelaskan di [Auto-allow mode](/docs/id/sandboxing#auto-allow-mode); `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` mematikan auto-allow

1935 * `false`: perintah bersandbox melalui alur izin reguler, jadi aturan allow dan mode izin Anda yang memutuskan. Tab **Mode** `/sandbox` menyebut ini mode izin reguler1935 * `false`: perintah bersandbox melalui alur izin reguler, jadi aturan allow dan mode izin Anda yang memutuskan. Tab **Mode** `/sandbox` menyebut ini mode izin reguler

1936* **Default**: `true`1936* **Default**: `true`

1937 1937 


1946}1946}

1947```1947```

1948 1948 

1949Lihat [Sandbox modes](/docs/id/sandboxing#sandbox-modes) untuk hal yang masih dimintakan izin dalam auto-allow mode dan cara kerjanya dalam plan mode.1949Lihat [Auto-allow mode](/docs/id/sandboxing#auto-allow-mode) untuk hal yang masih dimintakan izin dalam auto-allow mode dan cara kerjanya dalam plan mode.

1950 1950 

1951<h3 id="sandbox-excludedcommands">1951<h3 id="sandbox-excludedcommands">

1952 `sandbox.excludedCommands`1952 `sandbox.excludedCommands`

statusline.md +1 −1

Details

1308Di luar [rendering fullscreen](/docs/id/fullscreen), Claude Code menampilkan notifikasi pada baris yang sama dengan baris status Anda. Dalam rendering fullscreen, Claude Code memberikan notifikasi baris mereka sendiri.1308Di luar [rendering fullscreen](/docs/id/fullscreen), Claude Code menampilkan notifikasi pada baris yang sama dengan baris status Anda. Dalam rendering fullscreen, Claude Code memberikan notifikasi baris mereka sendiri.

1309 1309 

1310* Notifikasi sistem seperti kesalahan server MCP dan pembaruan otomatis ditampilkan di sisi kanan baris. Notifikasi sementara seperti peringatan konteks-rendah juga bersiklus melalui area ini.1310* Notifikasi sistem seperti kesalahan server MCP dan pembaruan otomatis ditampilkan di sisi kanan baris. Notifikasi sementara seperti peringatan konteks-rendah juga bersiklus melalui area ini.

1311* Mengaktifkan mode verbose menambahkan penghitung token ke area ini1311* Mengaktifkan mode verbose menambahkan penghitung token ke area ini, yang menampilkan ukuran konteks Anda sebagaimana dilaporkan oleh respons API terakhir, bukan [hitungan per giliran di samping spinner](/docs/id/costs#read-the-token-count-beside-the-spinner)

1312* Di terminal sempit, notifikasi ini mungkin memotong output baris status Anda1312* Di terminal sempit, notifikasi ini mungkin memotong output baris status Anda

workflows.md +10 −0

Details

431 431 

432Lanjutkan run yang dijeda dari `/workflows` dengan memilihnya dan menekan `p`. Untuk run yang Anda hentikan, minta Claude untuk meluncurkan kembali alur kerja dengan skrip yang sama. Jika agen dari run yang dihentikan belum keluar, Claude Code menolak peluncuran ulang sampai mereka keluar, jadi salinan kedua dari agen tersebut tidak dapat berjalan bersama mereka.432Lanjutkan run yang dijeda dari `/workflows` dengan memilihnya dan menekan `p`. Untuk run yang Anda hentikan, minta Claude untuk meluncurkan kembali alur kerja dengan skrip yang sama. Jika agen dari run yang dihentikan belum keluar, Claude Code menolak peluncuran ulang sampai mereka keluar, jadi salinan kedua dari agen tersebut tidak dapat berjalan bersama mereka.

433 433 

434<h4 id="which-agents-run-again">

435 Agent mana yang berjalan lagi

436</h4>

437 

434Claude Code memutar ulang run dalam urutan agen dimulai, dan setiap agen baik mengembalikan hasil yang disimpannya atau berjalan lagi:438Claude Code memutar ulang run dalam urutan agen dimulai, dan setiap agen baik mengembalikan hasil yang disimpannya atau berjalan lagi:

435 439 

436* **Selesai**: mengembalikan hasil yang disimpannya. Agen pertama yang promptnya berbeda dari run sebelumnya, karena Anda mengedit skrip atau agen sebelumnya mengembalikan sesuatu yang berbeda, berjalan lagi, begitu juga setiap agen setelahnya, bahkan yang sudah selesai.440* **Selesai**: mengembalikan hasil yang disimpannya. Agen pertama yang promptnya berbeda dari run sebelumnya, karena Anda mengedit skrip atau agen sebelumnya mengembalikan sesuatu yang berbeda, berjalan lagi, begitu juga setiap agen setelahnya, bahkan yang sudah selesai.


439 443 

440Kasus terakhir berarti kegagalan di tengah fan-out yang menjalankan ulang pekerjaan yang sudah selesai. Jika skrip memulai A, B, C, dan D dalam urutan itu dan B gagal, meluncurkan ulang mengembalikan A dari cache dan menjalankan B, C, dan D lagi.444Kasus terakhir berarti kegagalan di tengah fan-out yang menjalankan ulang pekerjaan yang sudah selesai. Jika skrip memulai A, B, C, dan D dalam urutan itu dan B gagal, meluncurkan ulang mengembalikan A dari cache dan menjalankan B, C, dan D lagi.

441 445 

446Jika Anda mengedit skrip yang memulai A, B, C, dan D sehingga skrip tersebut memulai A, C, B, dan D, agent kedua yang dimulai sekarang adalah C, sedangkan run sebelumnya memulai B. Peluncuran ulang mengembalikan A dari cache dan menjalankan C, B, dan D lagi.

447 

448<h4 id="resume-after-you-leave-the-session">

449 Lanjutkan setelah Anda meninggalkan sesi

450</h4>

451 

442Anda dapat melanjutkan run dalam sesi Claude Code yang sama. Apa yang terjadi pada alur kerja yang berjalan saat Anda meninggalkan sesi tergantung pada cara Anda pergi:452Anda dapat melanjutkan run dalam sesi Claude Code yang sama. Apa yang terjadi pada alur kerja yang berjalan saat Anda meninggalkan sesi tergantung pada cara Anda pergi:

443 453 

444* Jika Anda [menempatkan sesi di latar belakang](/docs/id/agent-view#what-carries-over-when-you-background), Claude Code memutar ulang run dengan cara yang sama di sesi latar belakang dan melanjutkannya.454* Jika Anda [menempatkan sesi di latar belakang](/docs/id/agent-view#what-carries-over-when-you-background), Claude Code memutar ulang run dengan cara yang sama di sesi latar belakang dan melanjutkannya.

worktrees.md +1 −1

Details

129and report the results.129and report the results.

130```130```

131 131 

132Setiap subagent mendapatkan worktree sementara yang Claude Code hapus secara otomatis saat subagent selesai tanpa perubahan; worktree dengan perubahan tetap berada di disk sampai [sapuan berkala di bawah](#clean-up-subagent-and-background-session-worktrees) dapat menghapusnya tanpa kehilangan pekerjaan.132Setiap subagent mendapatkan worktree sementara yang Claude Code hapus secara otomatis saat subagent selesai tanpa perubahan; worktree dengan perubahan tetap berada di disk sampai [sapuan berkala di bawah](#clean-up-subagent-and-background-session-worktrees) dapat menghapusnya tanpa kehilangan pekerjaan. Untuk worktree yang dibuat oleh [hook WorktreeCreate](/docs/id/hooks#worktreecreate) Anda, lihat [WorktreeRemove](/docs/id/hooks#worktreeremove) sebagai gantinya.

133 133 

134Worktrees subagent menggunakan [cabang dasar](#choose-the-base-branch) yang sama dengan `--worktree`, jadi mereka membuat cabang dari cabang default repositori Anda kecuali `worktree.baseRef` diatur ke `"head"`.134Worktrees subagent menggunakan [cabang dasar](#choose-the-base-branch) yang sama dengan `--worktree`, jadi mereka membuat cabang dari cabang default repositori Anda kecuali `worktree.baseRef` diatur ke `"head"`.

135 135