Skill yang ada daripada menambahkan entri tool baru.
Dalam mode otomatis, pengklasifikasi memutuskan sebagian besar prompt izin alih-alih Anda. Kolom
Permission required menunjukkan apakah prompt tool dalam Mode Manual untuk path di dalam direktori kerja. Tools akses file yang ditandai Tidak, termasuk Read, Grep, dan Glob, masih meminta path di luar direktori kerja dan direktori tambahan. Bash ditandai Ya tetapi menjalankan set bawaan perintah read-only tanpa meminta.Konfigurasi tools dengan aturan izin dan hooks
Sebagian besar waktu, Claude memutuskan kapan menggunakan tools ini dan Anda tidak perlu menamakannya sendiri saat berinteraksi dengan Claude. Anda mereferensikan nama tools secara langsung saat menentukan izin dan konfigurasi lainnya:- dalam
permissions.allowdanpermissions.denydalam pengaturan, dan antarmuka/permissions - dalam flag CLI
--allowedToolsdan--disallowedTools - dalam opsi Agent SDK
allowedToolsdandisallowedTools - dalam frontmatter
allowed-toolsskill - dalam kondisi
ifhook
ToolName(specifier). Specifier tergantung pada tools, dan beberapa tools berbagi format:
Tools yang tidak tercantum di sini, seperti
ExitPlanMode atau ShareOnboardingGuide, hanya menerima nama tools tanpa specifier.
Aturan izin Edit(...) juga memberikan akses baca ke jalur yang sama, jadi Anda tidak perlu aturan Read(...) yang cocok. Aturan penolakan Read(...) juga memblokir tools Edit dan Write pada jalur yang sama, termasuk membuat file baru di sana, karena kedua tools mengubah konten yang harus dapat dibaca kembali oleh Claude. Pemeriksaan penolakan Read memerlukan Claude Code v2.1.208 atau lebih baru pada edit, dan v2.1.228 atau lebih baru pada write.
Field matcher Hook menggunakan nama tools tanpa format yang diparenthesiskan. Lihat pola matcher untuk aturan pencocokan. Untuk nama field yang setiap tools teruskan ke tool_input dalam hooks, lihat referensi input PreToolUse.
Perilaku tool Agent
Tool 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 diaktifkan, panggilan yang membawaname dapat meluncurkan teammate sebagai gantinya, yang melaporkan kembali melalui pesan tim daripada dengan mengembalikan hasil.
Untuk membatasi berapa banyak putaran yang dijalankan subagent, atur maxTurns dalam definisi subagent. Ketika subagent mencapai batas, Claude Code menandai hasil yang dikembalikan sebagai output parsial, dan Claude dapat melanjutkan subagent untuk melanjutkan.
Tool Agent yang sama juga meluncurkan forked subagents di mana pun fork mode aktif. Fork mewarisi percakapan induk penuh daripada memulai dari awal, berjalan di latar belakang terlepas dari kasus yang tetap di latar depan, dan masih menampilkan prompt izin di terminal Anda. Sisa bagian ini menjelaskan subagent non-fork.
Tool mana yang dapat digunakan subagent non-fork tergantung pada bidang tools dan disallowedTools dalam definisi subagent:
- Tidak ada bidang yang diatur: subagent mewarisi setiap tool yang tersedia untuk subagents.
toolssaja: subagent hanya mendapatkan tool yang terdaftar.disallowedToolssaja: subagent mendapatkan setiap tool induk kecuali yang terdaftar.- Keduanya diatur:
disallowedToolsmemiliki prioritas. Tool yang terdaftar di keduanya dihapus.
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.
Jika 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 untuk pesan dan cara memperbaiki setiap entri.
Meluncurkan subagent tidak sendiri meminta izin. Claude Code memeriksa panggilan tool subagent sendiri terhadap aturan izin Anda saat berjalan.
Di mana Anda melihat prompt izin subagent tergantung pada apakah berjalan di latar depan atau latar belakang. Claude Code menjalankan subagent di latar belakang secara default, terlepas dari kasus yang berjalan di latar depan.
- Subagent latar depan menampilkan prompt izin yang sama yang akan Anda lihat dalam percakapan utama, pada saat setiap panggilan tool terjadi.
- Subagent latar belakang menampilkan prompt izin di sesi utama Anda sejak v2.1.186. Prompt menamai subagent mana yang meminta, dan menekan Esc menolak panggilan tool itu saja tanpa menghentikan subagent. Sebelum v2.1.186, subagent latar belakang secara otomatis menolak panggilan tool apa pun yang akan meminta sebaliknya dan melanjutkan tanpa tool itu.
tools nya, misalnya dengan meninggalkan Bash dari daftar, atau atur aturan penolakan dalam pengaturan Anda.
Perilaku tool AskUserQuestion
Claude menggunakanAskUserQuestion untuk mengajukan pertanyaan pilihan ganda kepada Anda ketika memerlukan keputusan atau klarifikasi. Jawab dengan memilih opsi, atau ketik teks Anda sendiri melalui baris Other atau kolom catatan.
Ketika Anda menjawab dengan mengetik teks Anda sendiri, Claude Code menyampaikan jawaban dengan redaksi netral sehingga Claude mengikuti apa yang Anda tulis, termasuk permintaan untuk menunggu atau menjelaskan terlebih dahulu.
Timeout auto-continue pertanyaan
Pertanyaan tetap terbuka sampai Anda menjawabnya. Jika Anda ingin pertanyaan yang Anda biarkan tanpa jawaban akhirnya ditutup dan membiarkan Claude melanjutkan tanpa Anda, atur pengaturanaskUserQuestionTimeout ke 60s, 5m, atau 10m, baik di settings.json pengguna Anda atau dari baris Question auto-continue timeout di /config.
Setelah pertanyaan duduk selama itu tanpa input, dialog ditutup dengan sendirinya: ia mengirimkan opsi apa pun yang sudah Anda pilih dan memberi tahu Claude bahwa Anda mungkin jauh dari keyboard, jadi Claude melanjutkan dengan penilaian sendiri dan dapat menanyakan kembali nanti. Anda melihat hitungan mundur untuk 20 detik terakhir. Tekan tombol apa pun untuk memulai ulang timer; di terminal yang melaporkan fokus, beralih ke jendela juga memulai ulangnya.
Timeout hanya berlaku untuk pertanyaan pilihan ganda AskUserQuestion; prompt izin, termasuk persetujuan rencana, tidak pernah auto-resolve saat idle.
Perilaku alat Bash
Alat Bash menjalankan setiap perintah dalam proses terpisah.Apa yang bertahan di antara perintah
- Ketika Claude menjalankan
cddalam sesi utama, direktori kerja baru terbawa ke perintah Bash yang lebih baru selama tetap berada di dalam direktori proyek atau direktori kerja tambahan yang Anda tambahkan dengan--add-dir,/add-dir, atauadditionalDirectoriesdalam pengaturan. Ini termasuk perintah yang Claude jalankan sebagai respons terhadap pesan Anda yang lebih baru.- Sesi subagent tidak pernah membawa perubahan direktori kerja.
- Jika
cdmendarat di luar direktori tersebut, Claude Code mengatur ulang ke direktori proyek dan menambahkanShell cwd was reset to <dir>ke hasil alat. - Untuk menonaktifkan carry-over ini sehingga setiap perintah Bash dimulai di direktori proyek, atur
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1.
- Variabel lingkungan tidak bertahan.
exportdalam satu perintah tidak akan tersedia di perintah berikutnya. - Alias dan fungsi shell yang ditentukan dalam file startup shell Anda tersedia. Pada awal sesi, Claude Code bersumber dari
~/.zshrc,~/.bashrc, atau~/.profiletergantung pada shell Anda, menangkap alias, fungsi, dan opsi shell yang dihasilkan, dan menerapkannya ke setiap perintah Bash.
CLAUDE_ENV_FILE ke skrip shell sebelum meluncurkan Claude Code, atau gunakan hook SessionStart untuk mengisinya secara dinamis.
Batas waktu dan output
Setiap perintah berjalan di bawah batas waktu, dan Claude mengelolanya: ketika menginginkan lebih lama dari default untuk perintah, ia melewatkan parametertimeout dengan panggilan itu — Anda tidak pernah menetapkan batas waktu per perintah. Dua variabel lingkungan membatasi apa yang Claude dapatkan:
BASH_DEFAULT_TIMEOUT_MS— default ketika Claude tidak melewatkan batas waktu; dua menit di luar kotakBASH_MAX_TIMEOUT_MS— dengan default, menetapkan batas yang membatasi apa pun yang Claude minta: batas efektif adalah yang lebih besar dari keduanya, sepuluh menit di luar kotak
Batas output
Claude Code mengalirkan output perintah ke file kerja saat perintah berjalan; perintah yang outputnya melampaui 5 GB dibunuh. Ketika perintah selesai, Claude Code membaca output kembali dari file itu, hingga jendela read-back yang dijelaskan di bawah. Berapa banyak output yang mencapai Claude secara inline tergantung pada apakah Claude Code memperlakukan hasil sebagai kegagalan:
Perintah yang keluar 1 dihitung sebagai hasil valid untuk alat Bash hanya ketika Claude Code mengenali kode keluar 1 sebagai hasil yang jinak untuk perintah itu:
grep, rg, egrep, fgrep, find, diff, test, dan [, ditambah git diff dan git grep. Setiap perintah lain yang keluar 1 dihitung sebagai kegagalan, bahkan ketika keluar 1 adalah hasil informasional yang jinak: tidak ada kecocokan untuk pgrep dan jq -e, file yang berbeda untuk cmp.
BASH_MAX_OUTPUT_LENGTH menetapkan berapa banyak karakter output yang Claude Code baca kembali dari file kerja ke hasil perintah: 30.000 secara default, hingga batas keras 150.000. Naikkan ketika perintah Anda secara rutin melampaui jendela itu, seperti build verbose atau log test-suite lengkap. Menaikkannya memperbesar jendela read-back, yang juga merupakan jendela kutipan perintah yang gagal dipotong. Itu tidak menaikkan batas inline: hasil valid di atas batas inline tiba sebagai jalur file ditambah pratinjau terlepas dari variabel ini.
Untuk mengubah berapa banyak hasil valid yang Claude terima secara inline, atur pengaturan bashOutputMaxChars sebagai gantinya, hingga 128.000 karakter. Ini mengukur batas inline dan jendela read-back bersama-sama, dan Claude Code kemudian mengabaikan BASH_MAX_OUTPUT_LENGTH. Memerlukan Claude Code v2.1.261 atau lebih baru.
Perintah latar belakang
Untuk proses yang berjalan lama seperti server dev atau build watch, Claude dapat mengaturrun_in_background: true untuk memulai perintah sebagai tugas latar belakang dan terus bekerja saat berjalan. Daftar dan hentikan tugas latar belakang dengan /tasks. Setelah Anda menghentikan satu di sana, atau dari klien yang terhubung seperti aplikasi desktop, Claude melanjutkan alih-alih menunggu. Jika subagent memulai perintah, itu adalah subagent itu yang melanjutkan.
Perintah yang dimulai oleh subagent foreground berhenti ketika subagent itu memberikan respons finalnya. Perintah yang dimulai oleh percakapan utama atau subagent latar belakang terus berjalan setelah respons final. Dalam mode non-interaktif dengan flag -p, perintah latar belakang berakhir segera setelah hasil final run.
Ketika perintah mencapai batas waktunya tanpa selesai, Claude Code memindahkannya ke latar belakang alih-alih menghentikannya, kecuali perintah dimulai dengan sleep. Claude terus bekerja saat perintah berlanjut. Claude Code menerapkan aturan lifetime yang sama ke perintah yang dipindahkan seperti ke perintah latar belakang lainnya, jadi masih menghentikan perintah subagent foreground pada respons final subagent itu. Mengatur CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1 menonaktifkan auto-backgrounding bersama dengan sisa fungsionalitas tugas latar belakang.
Hasil perintah yang dipindahkan ke latar belakang menyatakan apa yang terjadi:
- Ketika batas waktu memicu perpindahan, hasil melaporkannya secara eksplisit:
Command did not complete within its 120s timeout and was moved to the background, dengan detik sesuai dengan batas waktu yang berlaku, diikuti oleh ID tugas dan jalur file tempat output ditulis. - Sebuah
cd,pushd,popd, atauchdirdi dalam perintah yang dipindahkan ke latar belakang tidak pernah terbawa: hasil menyatakanSession cwd remains <dir>; directory changes made by the backgrounded command do not apply to subsequent commands., jadi Claude tidak bertindak atas perubahan direktori yang tidak terjadi.
Batas memori di Linux dan WSL
Di Linux dan WSL, aturCLAUDE_CODE_TOOL_MEMORY_LIMIT ke ukuran seperti 4G untuk membatasi memori yang perintah Bash, PowerShell, dan alat Monitor dapat gunakan, sehingga satu build yang lari tidak dapat mengambil memori yang sesi lainnya butuhkan. Memerlukan Claude Code v2.1.233 atau lebih baru. Sebelum v2.1.246, perintah alat Monitor berjalan di luar batas.
- Tulis ukuran sebagai jumlah byte atau dengan akhiran
K,M,G, atauT. Atur0,off,false,no, ataunoneuntuk mematikan batas. Claude Code mengabaikan nilai apa pun yang tidak dapat dibacanya sebagai ukuran, seperti4e9. - Claude Code menghitung semua perintah Bash, PowerShell, dan Monitor sesi terhadap satu batas, bukan setiap perintah pada dirinya sendiri.
- Claude Code menerapkan batas dengan cgroup memori. Ketika tidak dapat mengatur cgroup, perintah berjalan tanpa batas, dan log debug dari
claude --debugmengatakan mengapa. - Setelah proses pertama yang Claude Code mulai telah menghidupkan batas, atau telah mematikannya karena nilai off atau setup cgroup yang gagal, Claude Code menahan hasil itu sampai Anda meluncurkan kembali. Untuk menerapkan nilai yang diubah atau dihapus, atau setup yang diperbaiki, luncurkan
claudelagi. - Ketika perintah tidak dapat tetap di bawah batas, kernel membunuh perintah, dan tidak ada dalam hasilnya yang menyebutkan batas.
CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE ke daftar yang dipisahkan koma dari jenis yang dikecualikan dari batas; Claude Code menerapkan batas ke setiap jenis yang tidak ada di daftar Anda. Atur ke none untuk membatasi setiap jenis, atau ke all-new untuk membatasi hanya perintah alat Bash, PowerShell, dan Monitor. Memerlukan Claude Code v2.1.246 atau lebih baru. Jenis yang dapat Anda namai:
mcp: server MCP lokallsp: server bahasahooks: perintah hookplugin: perintah yang plugin jalankanhelper: perintah helper Claude Code sendiri, sepertigitagent: proses Claude Code anak, seperti rekan tim agen
- Nama tidak dikenal: Claude Code mengabaikan nama yang tidak dikenalinya
- Bash, PowerShell, dan Monitor: Claude Code menjaga perintah alat Bash, PowerShell, dan Monitor di bawah batas apa pun yang Anda daftar
- Variabel tidak diatur: Claude Code mengambil set jenis yang dibatasi lainnya dari konfigurasi yang Anthropic berikan dari server, dan set itu dapat berubah seiring waktu, jadi atur variabel ketika Anda membutuhkan set yang tidak berubah
- Hook gating izin: bahkan dengan setiap jenis dibatasi, Claude Code mengecualikan dari batas hook yang dapat memblokir atau mengubah hasil tindakan, dan server MCP apa pun yang hook tersebut panggil, sehingga kernel membunuh hook gating izin tidak dapat memungkinkan tindakan yang sedang diblokir.
Perilaku alat Edit
Alat Edit melakukan penggantian string yang tepat. Alat ini mengambilold_string dan new_string dan mengganti yang pertama dengan yang kedua. Alat ini tidak menggunakan regex atau fuzzy matching.
Tiga pemeriksaan harus lulus agar edit dapat diterapkan. Sebelum salah satu dari mereka, jalur yang cocok dengan aturan deny Read ditolak, termasuk membuat file baru di sana. Penolakan memerlukan Claude Code v2.1.208 atau lebih baru.
- Read-before-edit: Claude membaca file dalam percakapan saat ini sebelum mengeditnya, dan pembacaan yang terpotong dengan pemberitahuan
PARTIAL viewtidak dihitung. Claude Opus 4.6, Claude Haiku 4.5, dan model yang lebih lama selalu memerlukan pembacaan. Model yang lebih baru dapat mengedit file yang belum dibaca ketika membacanya tidak memerlukan prompt izin dan alat Read tersedia. - Match:
old_stringharus muncul dalam file persis seperti yang ditulis. Perbedaan spasi atau indentasi satu karakter saja sudah cukup untuk tidak cocok. - Uniqueness:
old_stringharus muncul tepat satu kali. Ketika muncul lebih dari sekali, Claude baik menyediakan string yang lebih panjang dengan konteks sekitar yang cukup untuk menentukan satu kemunculan, atau menetapkanreplace_all: trueuntuk mengganti semuanya.
old_string cocok dengan konten saat ini dengan tepat dan jelas serta Claude Code dapat membaca file tanpa meminta. Pencocokan terhadap konten file saat ini menjaga keamanan ini, dan hasilnya mencatat bahwa file membawa perubahan lain sehingga Claude membacanya kembali sebelum edit yang bergantung pada konten sekitar. Dalam kasus lain, seperti old_string yang sudah usang atau yang cocok lebih dari sekali tanpa replace_all, Claude membaca file lagi sebelum mengedit. Penanganan yang santai terhadap file yang belum dibaca dan berubah memerlukan Claude Code v2.1.208 atau lebih baru; sebelum itu, Claude Code menolak edit apa pun ke file yang belum dibacanya dalam percakapan atau yang berubah di disk setelah pembacaan.
Melihat file dengan Bash juga memenuhi persyaratan read-before-edit ketika perintahnya adalah cat, nl, bat, batcat, head, tail, sed -n 'X,Yp', grep, egrep, fgrep, atau rg pada satu file tanpa pipa atau pengalihan. Output yang dipipa dan perintah Bash lainnya tidak dihitung terhadap pemeriksaan read-before-edit.
Melihat file dengan Bash mempengaruhi kelayakan edit saja, bukan izin. Lihat Aturan izin Read dan Edit untuk perintah Bash mana yang dicakup oleh aturan deny Read dan Edit Anda.
Perilaku tool EndConversation
Tool EndConversation mengakhiri sesi saat ini. Claude menggunakannya hanya dalam dua situasi:- sebagai upaya terakhir melawan input yang terus-menerus kasar, setelah upaya untuk mengalihkan percakapan telah gagal dan setelah peringatan yang jelas dalam pesan sebelumnya
- ketika Anda secara eksplisit meminta untuk melihat tool yang ditunjukkan dan mengonfirmasi bahwa Anda ingin sesi berakhir
Claude ended this conversation. Start a new session (or /clear) to continue., dan hanya /clear, /resume, /help, /exit, dan /feedback yang masih berjalan. Claude Code mencatat akhir dalam transkrip sesi, jadi melanjutkan sesi yang berakhir memulihkan kunci; riwayat sesi tidak dihapus.
Melanjutkan sesi yang berakhir dalam mode non-interaktif dengan flag -p menghasilkan error dan keluar dengan kode 1, sehingga skrip tidak membaca run yang berakhir sebagai kesuksesan.
Tool tidak pernah meminta izin, dan PreToolUse hooks tidak berjalan untuk itu. Selama tool lain tetap ada, Anda tidak dapat memblokir itu juga: aturan deny dan ask yang menyebutkan EndConversation tidak berpengaruh, dan baik --disallowedTools maupun daftar --tools dapat menghapusnya. Pengecualian ini disengaja: tool tidak melakukan apa pun kecuali mengakhiri percakapan, tidak pernah membaca atau memodifikasi file atau data, dan safeguard semacam ini hanya berlaku jika sesi yang diterapkan tidak dapat mematikannya. Ketika aturan deny Anda menghapus setiap tool lain dan juga cocok dengan EndConversation, seperti yang dilakukan "*", Claude Code menghapusnya juga daripada meninggalkannya sebagai satu-satunya tool, kecuali jika aturan allow secara eksplisit menyebutkan EndConversation. Daftar deny yang menghapus setiap tool lain tanpa cocok dengan EndConversation membiarkannya tetap ada.
Subagents tidak pernah mendapatkan tool. Tugas latar belakang yang berbagi daftar tool percakapan utama melihatnya, tetapi memanggilnya di sana tidak mengakhiri apa pun.
Tool muncul hanya ketika semua hal berikut berlaku:
- Version: Claude Code v2.1.213 atau lebih baru.
- Model: model sesi adalah Claude Opus 4.8, Claude Sonnet 5, Claude Fable 5, atau versi yang lebih baru dari salah satu keluarga tersebut.
- Surface: sesi terminal interaktif, termasuk sesi
claudedi terminal terintegrasi IDE, yang merupakan cara plugin JetBrains menjalankannya. Permukaan lain tidak menyertakan tool, seperti:- run
-pnon-interaktif - sesi melalui paket TypeScript dan Python Agent SDK
- panel VS Code extension, yang menggabungkan CLI-nya sendiri
- GitHub Actions
- Claude Code di web
- run
- Startup mode: bukan sesi
--bare. Mode bare hanya memuat shell dan file tools, jadi tool tidak pernah terdaftar di sana. - Provider: tidak tersedia di Amazon Bedrock, Claude Platform on AWS, Google Cloud’s Agent Platform, atau Microsoft Foundry, atau di sesi yang masuk melalui cloud gateway.
Perilaku Glob tool
Glob tool menemukan file berdasarkan pola nama. Di Windows, ini adalah bagian dari set tool default. Di macOS, Linux, dan WSL, Claude Code mengeluarkan Glob dan Grep dari set tool default, dan Claude mencari denganfind dan grep melalui Bash tool sebagai gantinya. Di shell Claude, kedua perintah tersebut menjalankan versi embedded dari bfs dan ugrep, dan pencarian mencapai hooks dan aturan izin Anda sebagai panggilan Bash.
Di macOS, Linux, dan WSL, Anda mendapatkan kembali Glob dan Grep tools dalam kasus-kasus ini:
- Anda menyebutkan
GlobatauGrepdalam--toolsatau--allowedToolsketika Anda memulai sesi, atau dalam opsi Agent SDK yang setara. Dengan--toolsAnda mendapatkan yang Anda daftarkan, dan menyebutkan salah satu tool dalam--allowedToolsmengembalikan keduanya. Aturan allow dalam file settings tidak memiliki efek ini. - Aturan deny izin, flag
--disallowedTools, atau--restrictedmenghapusBashdari sesi. - Subagent mencantumkan
GlobatauGrepdalam fieldtoolsdan mengeluarkanBash. Tool yang tercantum kembali untuk subagent itu saja, atau untuk seluruh sesi ketika berjalan sebagai agent sesi utama melalui--agentatau pengaturanagent.
** untuk pencocokan direktori rekursif:
**/*.jscocok dengan semua file.jspada kedalaman apa punsrc/**/*.tscocok dengan semua file.tsdi bawahsrc/*.{json,yaml}cocok dengan file.jsondan.yamldalam direktori saat ini
.gitignore secara default, jadi menemukan file gitignored bersama yang dilacak. Ini berbeda dari Grep, yang melewati file gitignored. Untuk membuat Glob menghormati .gitignore, atur CLAUDE_CODE_GLOB_NO_IGNORE=false sebelum meluncurkan Claude Code.
Claude Code memutuskan izin untuk panggilan Glob sebelum memeriksa apakah direktori pencarian ada. Ini masih menjalankan pemeriksaan izin baca untuk path yang hilang di luar direktori kerja, jadi prompt izin untuk path tidak berarti path tersebut ada.
Nilai pattern atau path yang berisi byte null mengembalikan kesalahan yang meminta Claude untuk menghapusnya.
Perilaku Grep tool
Grep tool mencari konten file untuk pola. Di mana Glob menemukan file berdasarkan nama, Grep menemukan baris di dalamnya. Pada macOS, Linux, dan WSL, Grep tidak ada secara default dalam kondisi yang sama dengan Glob. Lihat Perilaku Glob tool untuk mengetahui kapan kedua tool tersedia. Grep dibangun di atas ripgrep dan menggunakan sintaks regex ripgrep, bukan POSIX grep. Pola yang mencakup karakter metacharacter regex perlu escape. Misalnya, menemukaninterface{} dalam kode Go memerlukan pola interface\{\}.
Pola, glob, atau tipe file yang ditolak oleh ripgrep mengembalikan kesalahan yang mencakup diagnostik ripgrep, sehingga Claude dapat memperbaiki input dan mencari lagi. Sebelum v2.1.208, Claude Code melaporkan input yang ditolak sebagai No files found alih-alih kesalahan, bahkan ketika teks yang dicari ada di file target.
Tiga mode output mengontrol apa yang kembali:
files_with_matches: jalur file saja, tidak ada konten baris. Ini adalah default.content: baris yang cocok dengan file dan nomor baris. Ketika parameteroffsettool menunjuk melampaui kecocokan terakhir untuk pola yang memiliki kecocokan, Grep mengembalikanNo entries at this offset, sehingga Claude memperluas atau mengatur ulang offset alih-alih menyimpulkan pola tidak cocok.count: jumlah kecocokan per file, diikuti dengan total di semua file yang cocok. Total mencakup setiap kecocokan bahkan ketika parameterhead_limitatauoffsettool memotong entri per-file yang terdaftar. Sebelum v2.1.208, total hanya menjumlahkan entri yang terdaftar.
glob, seperti **/*.tsx, atau berdasarkan bahasa dengan parameter type, seperti py atau rust. Secara default, pola cocok dalam satu baris. Claude dapat mengatur multiline: true untuk cocok di seluruh batas baris.
Grep menghormati .gitignore, jadi file gitignored dilewati. Untuk mencari file gitignored, Claude meneruskan jalurnya secara langsung.
Claude Code memutuskan izin untuk panggilan Grep sebelum memeriksa apakah path pencarian ada. Masih menjalankan pemeriksaan izin baca untuk path yang hilang di luar direktori kerja, jadi prompt izin untuk path tidak berarti path ada.
Perilaku LSP tool
LSP tool memberikan Claude intelijen kode dari language server yang sedang berjalan. Setelah setiap pengeditan file, secara otomatis melaporkan kesalahan tipe dan peringatan sehingga Claude dapat memperbaiki masalah tanpa langkah build terpisah. Claude juga dapat memanggilnya secara langsung untuk menavigasi kode:- Lompat ke definisi simbol
- Temukan semua referensi ke simbol
- Dapatkan informasi tipe pada posisi
- Daftar simbol dalam file
- Cari simbol berdasarkan nama di seluruh workspace
- Temukan implementasi antarmuka
- Lacak hierarki panggilan
Monitor tool
Monitor tool memungkinkan Claude mengawasi sesuatu di latar belakang dan bereaksi ketika berubah, tanpa menghentikan percakapan. Minta Claude untuk:- Tail file log dan tandai kesalahan saat muncul
- Poll PR atau CI job dan laporkan ketika statusnya berubah
- Pantau direktori untuk perubahan file
- Lacak output dari skrip yang sedang berjalan lama yang Anda tunjukkan
- Terhubung ke feed WebSocket dan laporkan setiap pesan saat tiba
-p.
Pada tenggat waktu, watch berakhir. Claude mendapat satu pemberitahuan, sehingga dapat memulai watch lagi jika masih diperlukan.
Hentikan monitor dengan meminta Claude untuk membatalkannya atau dengan mengakhiri sesi. Ketika Anda menghentikan subagent yang memulai monitors, misalnya dari /tasks, monitors tersebut berhenti bersamanya.
Ketika Monitor menjalankan perintah, ia menggunakan aturan izin yang sama seperti Bash, jadi pola allow dan deny yang Anda tetapkan untuk Bash berlaku di sini juga. Sementara auto mode aktif, Claude Code menyisihkan aturan allow yang menyebutkan Monitor itu sendiri, bersama dengan aturan allow luas lainnya yang dihapusnya, sehingga classifier meninjau perintah Monitor dengan cara yang sama seperti meninjau perintah Bash.
Sumber WebSocket memiliki prompt persetujuan tersendiri, yang juga diputuskan oleh classifier dalam auto mode.
Tool ini tidak tersedia di Amazon Bedrock, Google Cloud’s Agent Platform, atau Microsoft Foundry. Ini juga tidak tersedia ketika DISABLE_TELEMETRY atau CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC diatur.
Plugin dapat mendeklarasikan monitors yang dimulai secara otomatis ketika plugin aktif, daripada meminta Claude untuk memulainya. Lihat plugin monitors.
WebSocket source
Sumber WebSocket memerlukan Claude Code v2.1.195 atau lebih baru.
- Pesan teks: masing-masing menjadi satu peristiwa, bahkan ketika pesan mencakup beberapa baris.
- Pesan biner: tidak dilewatkan. Claude menerima baris placeholder seperti
[binary frame, 512 bytes]sebagai gantinya. - Pesan lebih besar dari 1 MiB: watch berakhir, jadi berlangganan feed yang disaring jika ada.
- Penutupan soket: watch berakhir dan Claude menerima kode penutupan.
ws sebagai pengganti command, dan satu panggilan Monitor tidak dapat menggabungkan keduanya. Input ws memiliki dua bidang:
Tenggat waktu
timeout_ms berlaku untuk watch WebSocket juga: watch berakhir pada tenggat waktu, dan TaskStop membatalkannya lebih awal.
Membuka WebSocket meminta persetujuan; dalam auto mode classifier memutuskan sebagai gantinya. Prompt tidak menawarkan opsi untuk melewati prompt di masa depan untuk host yang sama.
Claude Code menolak URL yang menunjuk ke alamat pribadi, link-local, atau cloud-metadata, termasuk nama host yang menyelesaikan ke salah satu. Ini juga menolak host di sandbox.network.deniedDomains, dan ketika allowManagedDomainsOnly diatur dalam pengaturan terkelola, host apa pun di luar daftar izin terkelola.
Perilaku NotebookEdit tool
NotebookEdit memodifikasi notebook Jupyter satu sel pada satu waktu, menargetkan sel berdasarkancell_id mereka. Ini tidak melakukan penggantian string di seluruh notebook seperti yang dilakukan Edit pada file biasa.
Tiga mode edit mengontrol apa yang terjadi pada sel target:
replace: timpa sumber sel. Ini adalah default.insert: tambahkan sel baru setelah target. Tanpacell_id, sel baru masuk di awal notebook. Memerlukancell_typediatur kecodeataumarkdown.delete: hapus sel target.
Edit(...). Aturan seperti Edit(notebooks/**) mencakup panggilan NotebookEdit pada file dalam direktori itu.
Alat PowerShell
Alat PowerShell memungkinkan Claude menjalankan perintah PowerShell secara native. Di Windows, ini berarti perintah berjalan di PowerShell alih-alih melalui Git Bash. Bagaimana alat menjadi tersedia tergantung pada platform Anda:- Windows tanpa Git Bash: alat diaktifkan secara otomatis.
- Windows dengan Git Bash terinstal: alat aktif secara default untuk akun claude.ai dan Console; atur
CLAUDE_CODE_USE_POWERSHELL_TOOL=1untuk mengaktifkannya di sesi Amazon Bedrock, Google Cloud’s Agent Platform, dan Microsoft Foundry, atau0untuk mematikannya. - Linux, macOS, dan WSL: alat bersifat opt-in.
tool_input.command, dengan bidang yang sama seperti alat Bash.
Cocokkan Bash|PowerShell dalam hooks yang memeriksa perintah shell; bagian input hook PowerShell menjelaskan mengapa mencocokkan Bash saja tidak cukup.
Aktifkan alat PowerShell
AturCLAUDE_CODE_USE_POWERSHELL_TOOL=1 di lingkungan Anda atau di settings.json:
0 untuk mematikan alat. Di Linux, macOS, dan WSL, alat memerlukan PowerShell 7 atau lebih baru: instal pwsh dan pastikan itu ada di PATH Anda.
Di Windows, Claude Code secara otomatis mendeteksi pwsh.exe untuk PowerShell 7+ dengan fallback ke powershell.exe untuk PowerShell 5.1. Ketika alat diaktifkan, Claude memperlakukan PowerShell sebagai shell utama. Alat Bash tetap tersedia untuk skrip POSIX ketika Git Bash terinstal.
Claude Code menjalankan PowerShell dengan -ExecutionPolicy Bypass pada cakupan proses saja, sehingga skrip .ps1 dan impor modul bekerja pada instalasi Windows default tanpa mengubah kebijakan mesin. Bypass cakupan proses tidak mengganti Group Policy MachinePolicy atau UserPolicy, sehingga kebijakan perusahaan tetap berlaku. Untuk menghormati kebijakan eksekusi efektif mesin sebagai gantinya, atur CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1.
Pemilihan shell dalam pengaturan, hooks, dan skills
Tiga pengaturan tambahan mengontrol di mana PowerShell digunakan:"defaultShell": "powershell"dalamsettings.json: merutekan perintah!interaktif melalui PowerShell. Memerlukan alat PowerShell untuk diaktifkan."shell": "powershell"pada command hooks individual: menjalankan hook tersebut di PowerShell. Hooks menjalankan PowerShell secara langsung, sehingga ini bekerja terlepas dariCLAUDE_CODE_USE_POWERSHELL_TOOL.shell: powershelldalam skill frontmatter: menjalankan blok!`command`di PowerShell. Memerlukan alat PowerShell untuk diaktifkan.
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR.
Mulai dari v2.1.196, kode keluar 1 dari grep, rg, egrep, fgrep, findstr, dan git grep berarti tidak ada kecocokan. Kode keluar 1 dari git diff berarti perbedaan ada. Tidak ada hasil yang dilaporkan ke Claude sebagai kegagalan perintah. Untuk robocopy, kode keluar 0 hingga 7 adalah hasil informatif, seperti file yang disalin atau file ekstra yang terdeteksi. Kode keluar 8 atau lebih tinggi dihitung sebagai kegagalan.
Pengkodean Windows dan kode keluar
Di Windows, perilaku pengkodean PowerShell dan kode keluar berikut memerlukan Claude Code v2.1.214 atau lebih baru:- Pengalihan dengan
>dan>>menulis file UTF-8 di PowerShell 5.1 - Claude Code mengkodekan teks yang disalurkan ke input standar perintah native sebagai UTF-8
- Claude Code menangkap output kesalahan tanpa urutan pelarian ANSI
- Perintah yang proses anak-anaknya menunggu input standar menerima end-of-file alih-alih hang
- Kode keluar 1 dari
where.exeberarti tidak ada kecocokan, dan darifc.exedandiff.exeberarti file berbeda, jadi ketika perintah menghasilkan output, Claude Code memperlakukan kode keluar tersebut sebagai jawaban negatif yang valid daripada kesalahan perintah. Claude Code masih melaporkan bentuk yang disenyapkan, sepertiwhere.exe /Qatau pengalihan ke$null, sebagai kegagalan pada kode keluar 1
> di PowerShell 5.1 menulis file UTF-16LE, input yang disalurkan non-ASCII tiba sebagai ?, dan skrip Python bisa crash dengan UnicodeEncodeError saat mencetak karakter non-ASCII.
Keterbatasan pratinjau
Alat PowerShell memiliki keterbatasan yang diketahui berikut selama pratinjau:- Profil PowerShell tidak dimuat
- Di Windows, sandboxing tidak didukung
Perilaku alat Read
Alat Read mengambil jalur file dan mengembalikan isinya dengan nomor baris. Claude diinstruksikan untuk selalu melewatkan jalur absolut. Secara default, Read mengembalikan file dari awal. Ketika pembacaan seluruh file melebihi batas token, Read mengembalikan halaman pertama dengan pemberitahuanPARTIAL view yang memberi tahu Claude berapa banyak file yang diterima dan cara membaca lebih lanjut dengan offset dan limit. Pembacaan yang melewatkan offset atau limit eksplisit dan masih melebihi batas token mengembalikan kesalahan.
Pembacaan dengan limit eksplisit berhenti segera setelah baris yang dipilih melebihi apa yang dapat ditampung batas token dan mengembalikan kesalahan tanpa memuat sisa rentang. Kesalahan memberi tahu Claude untuk menggunakan limit yang lebih kecil, atau untuk mencari konten spesifik dengan Grep sebagai gantinya ketika satu baris sangat besar. Sebelum v2.1.208, Claude Code memuat seluruh rentang ke dalam memori sebelum menolaknya, jadi membaca file dengan satu baris yang sangat panjang dapat menghabiskan memorinya.
Membaca file kosong mengembalikan pemberitahuan bahwa file ada tetapi isinya kosong, dan offset melampaui baris terakhir mengembalikan pemberitahuan yang memberikan jumlah baris file. Sebelum v2.1.208, membaca file kosong mengembalikan pemberitahuan past-the-end sebagai gantinya.
Read menangani beberapa jenis file di luar teks biasa:
- Gambar: PNG, JPG, dan format gambar lainnya dikembalikan sebagai konten visual yang dapat dilihat Claude, bukan sebagai byte mentah. Claude Code mengubah ukuran dan mengompresi ulang gambar besar agar sesuai dengan batas ukuran gambar model sebelum mengirimkannya, jadi Claude mungkin melihat versi yang diperkecil dari tangkapan layar besar. Mulai dari v2.1.196, gambar yang masih lebih besar dari 500KB setelah pengubahan ukuran tersebut dikodekan ulang sebagai JPEG dengan kualitas berkurang dengan dimensi pikselnya tidak berubah. Jika Claude melewatkan detail tingkat piksel halus dalam gambar besar, minta untuk memotong wilayah yang diminati terlebih dahulu, misalnya dengan ImageMagick melalui Bash.
- PDFs: Claude membaca file
.pdfpendek secara keseluruhan. Untuk PDF yang lebih panjang dari 10 halaman, file tersebut dibaca dalam rentang dengan parameterpages, seperti"1-5", hingga 20 halaman sekaligus. Pembacaan rentang halaman merender halaman denganpdftoppmdari poppler-utils, jadi instal denganbrew install popplerdi macOS atauapt-get install poppler-utilsdi Debian dan Ubuntu. Di Windows dan platform lainnya, instal build poppler yang menempatkanpdftoppmdiPATHAnda. Tanpa itu, pembacaan rentang halaman gagal denganpdftoppm is not installed. - Jupyter notebooks: File
.ipynbmengembalikan semua sel dengan keluarannya, termasuk kode, markdown, dan visualisasi. Claude Code menolak untuk membaca file notebook di atas 100 MB; kesalahan memberi tahu Claude cara membaca sebagian dari notebook sebagai gantinya, seperti irisan sel, dengan perintah shell.
ls.
Perilaku alat SendFeedback
Umpan balik yang disusun Claude adalah laporan umpan balik tentang Claude Code yang ditulis Claude untuk Anda. Ini memerlukan Claude Code v2.1.238 atau lebih baru. Claude Code menyimpan setiap draf di mesin Anda di bawah~/.claude/feedback/drafts/, dan tidak ada yang sampai ke Anthropic sampai Anda mengirimnya. Claude menyusun satu dengan alat SendFeedback ketika:
- Alat atau perintah terus gagal
- Tidak dapat membantu dengan sesuatu yang Anda minta
- Anda menunjukkan kesalahan yang dibuat, atau itu menyadarinya
- Anda memintanya untuk mengajukan umpan balik
Apa yang Anda lihat ketika Claude menyusun
Setelah Claude mengantrekan draf, Anda melihat kartu di atas prompt Anda dengan judul draf. Tekan1 untuk meninjau draf, tekan 2 dua kali untuk mengirimnya seperti yang ditulis, atau tekan 0 untuk menutupnya. Draf yang ditutup tetap berada dalam antrian Anda. Setelah Anda menutup kartu, Claude Code menanyakan apakah akan mematikan umpan balik yang disusun Claude. Itu berhenti bertanya setelah Anda menolak dua kali.
Secara default, Anda melihat paling banyak tiga kartu dalam sesi; Anthropic dapat menyesuaikan batas itu dari server tanpa rilis. Setelah batas, dan kapan pun Anda menetapkan feedbackDrafts ke quiet, Anda hanya melihat hitungan draf yang antri di footer prompt.
Tinjau dan edit draf
Jalankan/feedback tanpa argumen untuk membuka antrian Anda. Ini mencantumkan setiap draf yang antri dari semua sesi Anda, termasuk draf yang kartunya Anda tutup atau tidak pernah lihat. Pilih draf untuk membukanya untuk ditinjau, di mana Anda dapat:
- Edit judul, area, dan detail
- Atur Send transcript ke
yesatauno. Ketika transkrip dari sesi tempat Claude mengantrekan draf masih tersedia, itu dimulai padayes, yang mengirim percakapan itu ke Anthropic;nomengirim laporan saja - Kirim draf, buang, atau biarkan di antrian untuk nanti
w untuk dialog umpan balik standar. /feedback dengan teks setelahnya, dan /bug, buka dialog itu secara langsung.
Kirim draf
Ketika Anda mengirim draf, Claude Code mengirimkannya dengan cara yang sama seperti laporan/feedback, dengan retensi yang sama, dan menghapus draf dari mesin Anda. Ketika Anda mengirim dari kartu, itu menunjukkan ✓ Sent; ketika Anda mengirim dari antrian, itu ditutup dengan ID tanda terima.
Laporan membawa:
- Judul, area, dan detail Anda
- Info lingkungan, seperti versi Claude Code Anda, sistem operasi, dan model
- ID permintaan API terbaru
- Transkrip percakapan, ketika Anda meninggalkan Send transcript pada
yesdi layar tinjauan. Mengirim dari kartu tidak pernah menyertakan transkrip
/feedback. Jika sesi dalam organisasi seperti itu masih menawarkan alat, draf tetap di mesin Anda, dan pengiriman gagal dengan Feedback collection is not available for organizations with custom data retention policies.
Buang atau simpan draf
Ketika Anda membuang draf, Claude Code menghapusnya dari mesin Anda. Draf yang Anda tinggalkan di antrian kedaluwarsa setelah 30 hari, atau setelahcleanupPeriodDays ketika itu lebih pendek. Antrian menyimpan 10 draf di semua sesi Anda, dan ketika Claude mengantrekan yang kesebelas, Claude Code menghapus yang tertua. Ketika Anda menjalankan /exit dengan draf dari sesi masih di antrian, Claude Code menanyakan apakah akan meninjau atau membuang sebelum keluar.
Matikan umpan balik yang disusun Claude
Atur Claude-drafted feedback keoff di /config, yang menulis pengaturan feedbackDrafts, atau atur CLAUDE_CODE_SEND_FEEDBACK=0 untuk satu sesi. Dengan salah satu, Claude tidak dapat mengantrekan draf. Untuk terus menyusun tanpa kartu, atur feedbackDrafts ke quiet sebagai gantinya. Administrator dapat mengatur feedbackDrafts dalam pengaturan terkelola, yang mengambil alih pengaturan Anda sendiri.
Sesi tanpa umpan balik yang disusun Claude
Claude Code menyertakan alat dalam sesi terminal interaktif di mesin Anda sendiri yang menggunakan Claude API daripada penyedia cloud. Itu meninggalkan alat dari:- Berjalan
-pnon-interaktif dan sesi Agent SDK, yang tidak memiliki layar untuk meninjau antrian - Sesi cloud seperti Claude Code di web, yang tidak dapat menulis ke antrian di mesin Anda
- Sesi di Amazon Bedrock, Claude Platform on AWS, Google Cloud’s Agent Platform, atau Microsoft Foundry
- Sesi di mana Anda menetapkan
CLAUDE_CODE_SEND_FEEDBACK=0atauDISABLE_FEEDBACK_COMMAND=1, aturCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICke nilai non-kosong apa pun, atau matikan pengambilan bendera fitur - Organisasi yang telah mematikan umpan balik produk, dan organisasi dengan retensi data nol
Ketersediaan alat Task
Alat-alat pelacakan tugas,TaskCreate, TaskGet, TaskUpdate, TaskList, dan TodoWrite, tersedia secara default hanya pada model Claude 3.x, Opus 4 hingga 4.7, Sonnet 4 hingga 4.6, dan Haiku 4.5. Di mana pun alat-alat tersebut tersedia, Anda mendapatkan empat alat Task, atau TodoWrite saja ketika Anda menetapkan CLAUDE_CODE_ENABLE_TASKS=0.
Pada setiap model lainnya, Claude Code menghilangkan alat-alat tersebut kecuali Anda memilih untuk menggunakannya. Hal yang sama berlaku untuk ID model yang Claude Code tidak kenali, seperti nama model khusus yang disajikan melalui gateway LLM. Pada model yang lebih baru, Claude melacak pekerjaan multi-langkah tanpa daftar periksa tertulis, dan definisi alat serta pengingat menggunakan konteks. Tanpa alat-alat tersebut, Claude tidak menambahkan apa pun ke daftar tugas saat bekerja.
Jika Anda ingin menggunakan alat-alat ini pada model yang tidak memilikinya secara default, lakukan salah satu hal berikut:
- Ekspor
CLAUDE_CODE_ENABLE_TODO_TOOLS=1sebelum Anda memulai Claude Code, misalnyaCLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude. Claude Code kemudian menyediakan alat yang sama pada setiap model dan setiap penyedia - Sebutkan salah satu alat dalam
--allowedTools, misalnyaclaude --allowedTools TaskCreate - Daftarkan alat-alat dalam
--tools, yang membatasi alat bawaan sesi ke yang disebutkannya. Sertakan alat yang Anda inginkan bersama dengan alat bawaan lain yang Anda gunakan - Dalam Agent SDK, opsi
allowedToolsdantoolsbekerja dengan cara yang sama seperti dua flag
Perilaku alat WebFetch
WebFetch mengambil URL dan prompt yang menjelaskan apa yang akan diekstrak. Alat ini mengambil halaman, mengonversi respons ke Markdown ketika server mengembalikan HTML, dan menjalankan prompt terhadap konten menggunakan model yang kecil dan cepat. Untuk sebagian besar pengambilan, Claude menerima jawaban model tersebut, bukan halaman mentah. Langkah konversi tidak dapat dikonfigurasi. Ini membuat WebFetch lossy secara desain. Prompt ekstraksi menentukan apa yang sampai ke Claude, jadi hasil yang mengatakan halaman tidak menyebutkan sesuatu mungkin hanya berarti prompt tidak menanyakannya. Minta Claude untuk mengambil lagi dengan prompt yang lebih spesifik, atau gunakancurl melalui Bash untuk halaman yang belum diproses.
Beberapa perilaku membentuk respons yang diterima Claude:
- WebFetch menolak
localhostdan nama host lainnya tanpa titik, seperti nama intranet biasa, sebelum membuat permintaan. Kesalahan yang dikembalikannya memberitahu Claude untuk menjangkau server lokal dengancurlmelalui Bash sebagai gantinya. - URL HTTP secara otomatis ditingkatkan ke HTTPS.
- Halaman besar dipotong ke batas karakter tetap sebelum diproses.
- 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_MSuntuk mengubah berapa lama WebFetch menyimpan setiap respons. - Halaman yang belum selesai diunduh dalam lima menit, termasuk pengalihan apa pun yang diikuti WebFetch, gagal dengan kesalahan batas waktu. Pada Claude Code v2.1.268 atau lebih baru, atur
CLAUDE_CODE_WEBFETCH_DEADLINE_MSuntuk mengubah batas, atau ke0untuk menghapusnya. - Ketika URL dialihkan ke host yang berbeda, WebFetch mengembalikan hasil teks yang menyebutkan URL asli dan target pengalihan alih-alih mengikutinya. Claude kemudian mengambil URL baru dengan panggilan WebFetch kedua.
- Ketika langkah ekstraksi mengalami API yang kelebihan beban, Claude Code mencoba ulang dengan backoff; pengambilan yang masih gagal mengembalikan hasil kesalahan. Sebelum v2.1.212, teks kesalahan API dapat sampai ke Claude seolah-olah itu adalah konten halaman yang diekstrak.
acceptEdits permission modes, WebFetch meminta sebelum mengambil, kecuali untuk domain yang permission rules Anda sudah izinkan atau tolak dan serangkaian domain dokumentasi pra-persetujuan bawaan yang mengambil tanpa prompt. Apa pun yang aturan Anda izinkan, pengambilan juga melewati WebFetch domain safety check terlebih dahulu; bagian itu mencakup apa yang dikirim pemeriksaan dan pengaturan yang melewatinya. Prompt menawarkan tiga opsi:
- Ya: menyetujui pengambilan ini saja. Panggilan WebFetch berikutnya meminta lagi, bahkan untuk domain yang sama.
- Ya, dan jangan tanya lagi untuk
<domain>: menyetujui pengambilan dan menyimpan aturan izinWebFetch(domain:...)untuk domain itu ke.claude/settings.local.jsonuntuk repositori itu. Lihat bagaimana persetujuan yang disimpan bertahan. Ketika organisasi Anda menetapkanallowManagedPermissionRulesOnly, Claude Code menyembunyikan opsi ini. - Tidak, dan beri tahu Claude apa yang harus dilakukan berbeda: menolak pengambilan.
WebFetch(domain:example.com); WebFetch(domain:*) mengizinkan setiap domain. Mode auto dan bypassPermissions permission modes melewati prompt, kecuali untuk domain yang cocok dengan aturan ask eksplisit.
Aturan WebFetch(domain:...) eksplisit dalam deny, ask, atau allow mengambil alih himpunan pra-persetujuan, jadi Anda dapat memblokir domain pra-persetujuan atau memerlukan prompt untuknya.
WebFetch menetapkan header User-Agent yang dimulai dengan Claude-User, dan header Accept yang lebih menyukai Markdown daripada HTML sehingga server yang mendukung negosiasi konten dapat mengembalikan Markdown secara langsung.
Perintah sandboxed tidak mewarisi himpunan domain dokumentasi pra-persetujuan bawaan WebFetch. Untuk membiarkan perintah sandboxed mencapai domain tanpa prompt, tambahkan domain ke allowedDomains atau izinkan dengan aturan WebFetch(domain:...), yang sandbox juga hormati. WebFetch tidak pernah membaca daftar allowlist sandbox sebagai gantinya, jadi menambahkan domain ke sandbox atau daftar allowlist jaringan organisasi tidak menghentikan WebFetch dari memintanya.
Perilaku alat WebSearch
WebSearch menjalankan kueri terhadap backend web search Anthropic dan mengembalikan judul hasil dan URL. Alat ini tidak mengambil halaman hasil. Untuk membaca halaman yang Claude temukan dalam hasil pencarian, alat ini diikuti dengan WebFetch. Alat ini dapat mengeluarkan hingga delapan pencarian backend per panggilan, menyempurnakan pencarian secara internal sebelum mengembalikan hasil. Claude dapat membatasi hasil denganallowed_domains untuk menyertakan hanya host tertentu, atau blocked_domains untuk mengecualikannya. Kedua daftar tidak dapat digabungkan dalam satu panggilan.
Ketika permintaan pencarian mengenai API yang kelebihan beban, Claude Code mencoba ulang dengan backoff; panggilan yang masih gagal mengembalikan hasil kesalahan. Sebelum v2.1.212, teks kesalahan API dapat mencapai Claude seolah-olah itu adalah hasil pencarian.
Aturan izin WebSearch tidak memerlukan spesifier. Entri WebSearch kosong dalam allow atau deny adalah satu-satunya bentuk.
Backend pencarian tidak dapat dikonfigurasi. Untuk mencari dengan penyedia yang berbeda, tambahkan server MCP yang mengekspos alat pencarian.
WebSearch tersedia di Claude API dan Claude Platform on AWS. Di Microsoft Foundry, alat ini memerlukan deployment yang dihosting di Anthropic: deployment yang dihosting di Azure tidak mendukung alat sisi server, jadi panggilan WebSearch gagal. Di Agent Platform Google Cloud, alat ini bekerja dengan Claude 4 dan model yang lebih baru, termasuk Opus, Sonnet, dan Haiku. Amazon Bedrock tidak mengekspos alat web search sisi server.
Batas pencarian sesi
Sesi dapat melakukan paling banyak 200 panggilan WebSearch, dihitung di seluruh percakapan utama dan setiap subagent yang dihasilkannya, jadi pencarian yang dilakukan oleh fan-out penelitian paralel dihitung terhadap batas yang sama. Batas ini memerlukan Claude Code v2.1.212 atau lebih baru. Ketika Claude mencapai batas, panggilan lebih lanjut mengembalikan pemberitahuan yang memberi tahu Claude untuk melanjutkan dengan informasi yang telah dikumpulkannya, bukan kesalahan yang akan mengundang percobaan ulang. Anda tidak melihat pemberitahuan: panggilan yang dibatasi muncul dalam percakapan sebagai pencarian yang tidak melakukan apa pun, dan jika Claude memerlukan lebih banyak pencarian, pemberitahuan memberi tahu Claude untuk meminta Anda menaikkan batas. Atur variabel lingkunganCLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION untuk mengubah batas; variabel ini menerima angka bulat positif, jadi batas dapat dinaikkan tetapi tidak dapat dimatikan. Menjalankan /clear mengatur ulang hitungan. Jika pekerjaan yang masih dapat menghasilkan subagents bertahan setelah pembersihan, seperti alur kerja yang sedang berjalan, hitungan akan dibawa ke depan.
Perilaku tool Write
Tool Write membuat file baru atau menimpa file yang sudah ada dengan konten lengkap yang disediakan. Tool ini tidak menambahkan atau menggabungkan. Apakah Claude harus membaca file yang sudah ada dalam percakapan saat ini sebelum menimpanya tergantung pada model dan file:- Claude Opus 4.6, Claude Haiku 4.5, dan model yang lebih lama selalu memerlukan pembacaan, jadi Write ke file yang sudah ada yang belum dibaca gagal dengan kesalahan.
- Model yang lebih baru dapat menimpa file yang tidak pernah mereka baca dalam sesi ini di bawah kondisi yang sama seperti read-before-edit: membacanya tidak akan memerlukan prompt izin dan tool Read tersedia.
- Jupyter notebooks, dan file yang Claude baca hanya sebagian dengan pemberitahuan
PARTIAL view, memerlukan pembacaan pada setiap model.
Periksa tools mana yang tersedia
Set tools yang tepat bergantung pada penyedia, platform, dan pengaturan Anda. Untuk memeriksa apa yang dimuat dalam sesi yang sedang berjalan, tanyakan Claude secara langsung:/mcp.
advisor tool adalah server tool yang dijalankan API, bukan tool yang diimplementasikan Claude Code. Tool ini tidak memiliki nama yang dapat Anda referensikan dalam aturan izin atau pencocokan hook.
Lihat juga
- MCP servers: tambahkan tools kustom dengan menghubungkan server eksternal
- Permissions: sistem izin, sintaks aturan, dan pola khusus tool
- Subagents: konfigurasi akses tool untuk subagent
- Hooks: jalankan perintah kustom sebelum atau sesudah eksekusi tool