close
Langsung ke konten utama
Claude Code memiliki akses ke serangkaian tools bawaan yang membantu memahami dan memodifikasi codebase Anda. Nama tools adalah string yang tepat yang Anda gunakan dalam aturan izin, daftar tools subagent, dan matcher hook. Untuk mengontrol tools mana yang dapat digunakan Claude dan kapan diminta terlebih dahulu, konfigurasikan aturan izin dalam pengaturan Anda, hooks, atau daftar tools subagent. Lihat Konfigurasi tools dengan aturan izin dan hooks untuk setiap tempat yang menerima nama tool. Untuk menambahkan tools kustom, hubungkan server MCP. Untuk memperluas Claude dengan alur kerja berbasis prompt yang dapat digunakan kembali, tulis skill, yang berjalan melalui tool Skill yang ada daripada menambahkan entri tool baru.
Dalam auto mode, pengklasifikasi memutuskan sebagian besar permintaan izin alih-alih Anda. Kolom Permission required menunjukkan apakah tool meminta izin dalam Mode Manual untuk path di dalam direktori kerja. Tools akses file yang ditandai Tidak, termasuk Read, Grep, dan Glob, masih meminta izin untuk path di luar direktori kerja dan direktori tambahan. Bash ditandai Ya tetapi menjalankan set bawaan perintah read-only tanpa meminta izin.

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: Semua ini menerima format aturan yang sama, 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. Untuk tool Write, pemeriksaan penolakan Read memerlukan Claude Code v2.1.228 atau lebih baru. 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 context window 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. Tool yang sama juga dapat meluncurkan teammate atau fork:
  • Teammate: dengan tim agent diaktifkan, panggilan yang membawa name dapat meluncurkan teammate sebagai gantinya, yang melaporkan kembali melalui pesan tim daripada dengan mengembalikan hasil
  • Fork: di mana pun fork mode aktif, tool ini dapat meluncurkan forked subagent, yang mewarisi percakapan induk penuh daripada memulai dari awal
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 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.
  • tools saja: subagent hanya mendapatkan tool yang terdaftar.
  • disallowedTools saja: subagent mendapatkan setiap tool induk kecuali yang terdaftar.
  • Keduanya diatur: disallowedTools memiliki prioritas. Tool yang terdaftar di keduanya dihapus.
Dalam setiap kasus, set yang diselesaikan dibatasi pada tool yang tersedia untuk subagents: tool yang tidak tersedia untuk subagents tidak pernah diberikan, bahkan ketika terdaftar dalam tools. Di mana kondisi dalam entri tabel tool SubagentHandback berlaku, Claude Code juga memberikan tool itu kepada subagent, bahkan jika Anda menghilangkannya dari tools atau mencantumkannya dalam disallowedTools. 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, kecuali 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 permintaan izin di sesi utama Anda. Permintaan tersebut menamai subagent mana yang meminta, dan menekan Esc menolak panggilan tool itu saja tanpa menghentikan subagent.
Untuk membatasi apa yang dapat dijangkau subagent di tempat pertama, persempit bidang tools nya, misalnya dengan meninggalkan Bash dari daftar, atau atur aturan penolakan dalam pengaturan Anda.

Perilaku tool AskUserQuestion

Claude menggunakan AskUserQuestion 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 pengaturan askUserQuestionTimeout 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. Selama terminal Anda melaporkan bahwa jendelanya sedang dalam fokus, timer tidak menghitung mundur. Timer tidak pernah dimulai untuk pertanyaan yang diajukan Claude di sesi latar belakang, dalam mode pembaca layar, atau saat sesi terhubung ke Remote Control. Pertanyaan-pertanyaan tersebut menunggu sampai Anda menjawabnya. Timeout hanya berlaku untuk pertanyaan pilihan ganda AskUserQuestion; permintaan izin, termasuk persetujuan rencana, tidak pernah auto-resolve saat idle.

Perilaku tool Bash

Tool Bash menjalankan setiap perintah dalam proses terpisah.

Apa yang bertahan di antara perintah

  • Ketika Claude menjalankan cd di sesi utama, direktori kerja yang baru terbawa ke perintah Bash berikutnya selama direktori tersebut tetap berada di dalam direktori proyek atau direktori kerja tambahan yang Anda tambahkan dengan --add-dir, /add-dir, atau additionalDirectories di pengaturan. Ini termasuk perintah yang dijalankan Claude sebagai respons terhadap pesan Anda berikutnya.
    • Sesi subagent tidak pernah membawa perubahan direktori kerja.
    • Jika cd berakhir di luar direktori tersebut, Claude Code mengatur ulang ke direktori proyek dan menambahkan Shell cwd was reset to <dir> ke hasil tool.
    • Untuk menonaktifkan perilaku terbawa ini sehingga setiap perintah Bash dimulai di direktori proyek, atur CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1.
  • Environment variable tidak bertahan. Sebuah export dalam satu perintah tidak akan tersedia di perintah berikutnya.
  • Alias dan fungsi shell yang didefinisikan dalam file startup shell Anda tersedia. Saat sesi dimulai, Claude Code memuat ~/.zshrc, ~/.bashrc, atau ~/.profile tergantung shell Anda, menangkap alias, fungsi, dan opsi shell yang dihasilkan, lalu menerapkannya ke setiap perintah Bash.
Aktifkan virtualenv atau environment conda Anda sebelum menjalankan Claude Code. Agar environment variable bertahan di seluruh perintah Bash, atur CLAUDE_ENV_FILE ke sebuah skrip shell sebelum menjalankan Claude Code, atau gunakan hook SessionStart untuk mengisinya secara dinamis.

Timeout dan batas output

Setiap perintah berjalan dengan timeout, dan Claude yang mengelolanya: ketika Claude menginginkan waktu lebih lama dari default untuk suatu perintah, Claude meneruskan parameter timeout bersama panggilan tersebut. Anda tidak pernah mengatur timeout per perintah. Dua environment variable mengontrol apa yang didapat Claude untuk perintah yang berjalan di latar depan:
  • BASH_DEFAULT_TIMEOUT_MS — default ketika Claude tidak meneruskan timeout; dua menit secara bawaan
  • BASH_MAX_TIMEOUT_MS — bersama default, menetapkan batas atas yang membatasi apa pun yang diminta Claude: batas atas efektif adalah yang lebih besar dari keduanya, sepuluh menit secara bawaan
Dalam sesi yang memiliki batas waktu untuk perintah latar belakang, timeout pada perintah yang dimulai Claude di latar belakang justru menetapkan berapa lama perintah tersebut boleh berjalan di sana, dengan default dan maksimum tersendiri dari batas tersebut. Tool PowerShell mengikuti aturan timeout yang sama dan membaca dua variabel yang sama.

Batas output

Claude Code mengalirkan output perintah ke file kerja selama perintah berjalan; perintah yang outputnya melebihi 5 GB akan dihentikan paksa. Ketika perintah selesai, Claude Code membaca kembali output dari file tersebut, hingga jendela pembacaan kembali yang dijelaskan di bawah. Seberapa banyak output yang sampai ke Claude secara inline bergantung pada apakah Claude Code memperlakukan hasilnya sebagai kegagalan: Perintah yang keluar dengan 1 dihitung sebagai hasil valid untuk tool Bash hanya jika Claude Code mengenali exit code 1 sebagai hasil yang wajar untuk perintah tersebut: grep, rg, egrep, fgrep, find, diff, test, dan [, ditambah git diff dan git grep. Setiap perintah lain yang keluar dengan 1 dihitung sebagai kegagalan, bahkan ketika exit 1 merupakan hasil informasional yang wajar: tidak ada kecocokan untuk pgrep dan jq -e, file yang berbeda untuk cmp. BASH_MAX_OUTPUT_LENGTH menetapkan berapa banyak karakter output yang dibaca kembali Claude Code dari file kerja ke dalam hasil perintah: 30.000 secara default, hingga batas mutlak 150.000. Naikkan nilainya ketika perintah Anda secara rutin melampaui jendela tersebut, seperti build yang verbose atau log test suite lengkap. Menaikkannya memperbesar jendela pembacaan kembali, yang juga merupakan jendela tempat cuplikan perintah yang gagal diambil. Variabel ini tidak menaikkan batas inline: hasil valid yang melebihi batas inline tetap tiba sebagai path file ditambah pratinjau, terlepas dari variabel ini. Untuk mengubah seberapa banyak hasil valid yang diterima Claude secara inline, atur pengaturan bashOutputMaxChars sebagai gantinya, hingga 128.000 karakter. Pengaturan ini menentukan ukuran batas inline dan jendela pembacaan kembali sekaligus, 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 dev server atau watch build, Claude dapat mengatur run_in_background: true untuk memulai perintah sebagai tugas latar belakang dan terus bekerja selama perintah tersebut berjalan. Tampilkan daftar dan hentikan tugas latar belakang dengan /tasks. Setelah Anda menghentikan salah satunya di sana, atau dari klien yang terhubung seperti aplikasi desktop, Claude melanjutkan pekerjaan alih-alih menunggunya. Jika subagent yang memulai perintah tersebut, subagent itulah yang melanjutkan pekerjaan.

Kapan perintah latar belakang berhenti

Perintah yang dimulai oleh subagent latar depan berhenti ketika run subagent tersebut berakhir, baik karena selesai, gagal, maupun diinterupsi. Perintah yang dimulai oleh percakapan utama atau subagent latar belakang tetap berjalan setelah respons akhir, hingga perintah tersebut keluar, dihentikan, atau mencapai batas waktunya. Selama perintah yang dimulai oleh percakapan utama masih berjalan, run dalam mode non-interaktif dengan flag -p tetap terbuka setelah hasilnya hingga perintah tersebut keluar atau mencapai batas waktunya. Perintah yang dimulai oleh subagent latar belakang dihentikan ketika run tersebut keluar.

Batas waktu untuk perintah latar belakang

Dalam sesi yang berjalan tanpa pengawasan, seperti run dengan flag -p, aplikasi Agent SDK, job CI, atau sesi cloud, perintah Bash dan PowerShell latar belakang memiliki batas waktu. Sesi lokal yang Anda gunakan dari terminal, aplikasi desktop, atau ekstensi VS Code tidak memiliki batas waktu untuk perintah latar belakang. Batas waktu ini memerlukan Claude Code v2.1.285 atau lebih baru. Sebelum v2.1.288, batas waktu ini berlaku di setiap sesi. Batas waktu dihitung sejak perintah masuk ke latar belakang:
  • Perintah yang dimulai Claude di latar belakang mendapatkan 30 menit, atau timeout yang diteruskan Claude bersama run_in_background, hingga maksimum 2 jam
  • Perintah yang dimulai di latar depan lalu berpindah ke latar belakang, misalnya saat mencapai timeout-nya, mendapatkan 30 menit sejak perpindahan tersebut
Dalam run dengan flag -p yang prompt-nya Anda berikan sebagai teks alih-alih dengan --input-format stream-json, kedua default tersebut adalah 10 menit, bukan 30, karena run tersebut menunggu perintah latar belakang setelah hasilnya. Ketika perintah latar belakang mencapai batas waktunya, Claude Code menghentikannya dan memberi tahu Claude alasannya, dan Claude dapat memulai perintah tersebut lagi dengan timeout yang lebih lama jika pekerjaan masih membutuhkannya. Pemberitahuan penghentian berbunyi Background command "<description>" was stopped after reaching its background time limit.

Menaikkan batas waktu untuk perintah latar belakang

Dua environment variable menaikkan batas-batas ini, untuk perintah Bash maupun PowerShell. Keduanya menggunakan milidetik, dan tidak satu pun dapat memperpendek batas: nilai yang lebih rendah membiarkan default dan maksimum 2 jam tetap berlaku.
  • Atur BASH_DEFAULT_TIMEOUT_MS di atas 1800000 untuk mengganti default 30 menit dengan nilai tersebut, baik untuk perintah yang dimulai Claude tanpa timeout maupun untuk perintah yang dipindahkan. Dalam run -p yang prompt-nya Anda berikan sebagai teks, nilai apa pun di atas 600000 menggantikan default 10 menitnya
  • Atur BASH_MAX_TIMEOUT_MS di atas 7200000 untuk menaikkan maksimum 2 jam ke nilai tersebut. Mengatur BASH_DEFAULT_TIMEOUT_MS di atas 7200000 menaikkan maksimum dengan cara yang sama

Perintah latar depan yang berpindah ke latar belakang

Ketika perintah latar depan mencapai timeout-nya tanpa selesai, Claude Code memindahkannya ke latar belakang alih-alih menghentikannya, kecuali perintah tersebut dimulai dengan sleep. Batas waktu perintah yang dipindahkan dihitung sejak perpindahan, dan perintah yang dipindahkan milik subagent latar depan tetap berhenti ketika run subagent tersebut berakhir. Mengatur CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1 atau menjalankan dalam bare mode menonaktifkan pemindahan otomatis ke latar belakang, sehingga perintah yang mencapai timeout-nya akan berhenti. Hasil dari perintah yang dipindahkan ke latar belakang menyatakan apa yang terjadi:
  • Ketika timeout memicu perpindahan, hasilnya melaporkannya secara eksplisit: Command did not complete within its 120s timeout and was moved to the background, dengan jumlah detik yang sesuai dengan timeout yang berlaku, diikuti ID tugas dan path file tempat output sedang ditulis.
  • cd, pushd, popd, atau chdir di dalam perintah yang dipindahkan ke latar belakang tidak pernah terbawa: hasilnya menyatakan Session cwd remains <dir>; directory changes made by the backgrounded command do not apply to subsequent commands., sehingga Claude tidak bertindak berdasarkan perubahan direktori yang tidak terjadi.

Batas memori di Linux dan WSL

Di Linux dan WSL, atur CLAUDE_CODE_TOOL_MEMORY_LIMIT ke suatu ukuran seperti 4G untuk membatasi memori yang dapat digunakan oleh perintah tool Bash, PowerShell, dan Monitor, sehingga satu build yang tidak terkendali tidak dapat menghabiskan memori yang dibutuhkan bagian sesi lainnya. Memerlukan Claude Code v2.1.233 atau lebih baru. Sebelum v2.1.246, perintah tool Monitor berjalan di luar batas tersebut.
  • Tulis ukuran sebagai jumlah byte atau dengan akhiran K, M, G, atau T. Atur 0, off, false, no, atau none untuk mematikan batas. Claude Code mengabaikan nilai lain yang tidak dapat dibacanya sebagai ukuran, seperti 4e9.
  • Claude Code menghitung semua perintah Bash, PowerShell, dan Monitor dalam satu sesi terhadap satu batas tersebut, bukan setiap perintah secara terpisah.
  • Claude Code menerapkan batas dengan cgroup memori. Ketika tidak dapat menyiapkan cgroup, perintah berjalan tanpa batas, dan log debug dari claude --debug menjelaskan alasannya.
  • Setelah proses pertama yang dimulai Claude Code telah mengaktifkan batas, atau telah mematikannya karena nilai off atau penyiapan cgroup yang gagal, Claude Code mempertahankan hasil tersebut hingga Anda menjalankan ulang. Untuk menerapkan nilai yang diubah atau dihapus, atau penyiapan yang sudah diperbaiki, jalankan claude lagi.
  • Ketika perintah tidak dapat tetap berada di bawah batas, kernel menghentikan paksa sebuah perintah, dan tidak ada apa pun dalam hasilnya yang menyebutkan batas tersebut.
Claude Code juga dapat menghitung jenis proses lain yang dimulainya terhadap batas yang sama. Atur CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE ke daftar jenis yang dipisahkan koma untuk dikecualikan dari batas; Claude Code menerapkan batas ke setiap jenis yang tidak ada dalam daftar Anda. Atur ke none untuk membatasi setiap jenis, atau ke all-new untuk hanya membatasi perintah tool Bash, PowerShell, dan Monitor. Memerlukan Claude Code v2.1.246 atau lebih baru. Jenis yang dapat Anda sebutkan: Apa pun yang Anda cantumkan, aturan berikut berlaku:
  • Nama tidak dikenal: Claude Code mengabaikan nama yang tidak dikenalinya
  • Variabel tidak diatur: Claude Code mengambil kumpulan jenis lain yang dibatasi dari konfigurasi yang dikirimkan Anthropic dari server, dan kumpulan tersebut dapat berubah seiring waktu, jadi atur variabel ini ketika Anda membutuhkan kumpulan yang tidak berubah
  • Hook yang mengontrol izin: bahkan ketika setiap jenis dibatasi, Claude Code mengecualikan dari batas hook yang dapat memblokir atau mengubah hasil suatu tindakan, serta server MCP mana pun yang dipanggil oleh hook tersebut, sehingga penghentian paksa hook pengontrol izin oleh kernel tidak dapat mengakibatkan tindakan yang sedang diblokir oleh hook tersebut menjadi diizinkan

Perilaku alat Edit

Alat Edit melakukan penggantian string yang tepat. Alat ini mengambil old_string dan new_string dan mengganti yang pertama dengan yang kedua. Alat ini tidak menggunakan regex atau fuzzy matching. Pemeriksaan berikut 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.
  • Read-before-edit: Claude membaca file dalam percakapan saat ini sebelum mengeditnya, dan pembacaan yang terpotong dengan pemberitahuan PARTIAL view tidak 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_string harus muncul dalam file persis seperti yang ditulis. Perbedaan spasi atau indentasi satu karakter saja sudah cukup untuk tidak cocok.
  • Uniqueness: old_string harus 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 menetapkan replace_all: true untuk mengganti semuanya.
File yang berubah di disk setelah Claude terakhir membacanya masih dapat diedit ketika 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. Claude juga dapat mengedit file tanpa Read terpisah setelah melihat file tersebut dengan perintah Bash seperti cat atau grep. Perintah-perintah tersebut adalah cat, nl, bat, batcat, head, tail, sed -n 'X,Yp', grep, egrep, fgrep, dan rg, masing-masing dijalankan pada satu file tanpa pipa atau pengalihan. Jika perintah tidak menampilkan teks apa pun dari file tersebut, seperti ketika pencarian tidak menemukan kecocokan, pemeriksaan read-before-edit tetap berlaku. Ketika Claude melihat file dengan cara ini, Claude Code juga memuat CLAUDE.md subdirektori dan aturan dengan cakupan jalur apa pun yang berlaku untuk file tersebut. Lihat Aturan izin Read dan Edit untuk perintah Bash mana yang dicakup oleh aturan deny Read dan Edit Anda.

File non-UTF-8

Claude tidak dapat menggunakan NotebookEdit pada file yang bukan UTF-8 yang valid. Hal yang sama berlaku untuk Edit, kecuali file diawali dengan byte-order mark UTF-16 little-endian. Ketika Claude mencoba, tool tersebut menolak perubahan dan membiarkan file tidak tersentuh. File yang ditolak mencakup teks non-ASCII yang disimpan dalam encoding lama seperti Windows-1252 atau Shift-JIS, file biner, dan UTF-8 dengan urutan byte yang tidak valid. Tool tersebut menolak karena mereka menyimpan kembali seluruh file sebagai UTF-8, yang akan mengganti setiap byte yang tidak dapat didekode dengan karakter pengganti U+FFFD. Sebagai gantinya, error yang diterima Claude memintanya untuk melakukan perubahan dengan perintah shell yang mempertahankan encoding file, atau menanyakan kepada Anda tentang mengonversinya ke UTF-8 terlebih dahulu. Claude masih dapat mengganti file semacam itu dengan Write, kecuali konten baru mengandung U+FFFD, karakter yang ditampilkan Read kepada Claude sebagai pengganti byte yang tidak dapat didekodenya. Pengaman tersebut mencegah Claude menulis kembali teks rusak yang dibacanya. Ketika Write memang mengganti file, Write menyimpan konten baru sebagai UTF-8, sehingga encoding asli file tersebut hilang.

Perilaku tool EndConversation

Tool EndConversation mengakhiri sesi saat ini. Claude menggunakannya hanya dalam dua situasi:
  • Ketika Anda terus mengirim pesan yang kasar setelah Claude memberikan peringatan yang jelas dan gagal mengalihkan percakapan
  • Ketika Anda secara eksplisit meminta Claude untuk mengakhiri sesi, lalu mengonfirmasi saat Claude menanyakan apakah Anda masih ingin melanjutkan
Rasa frustrasi secara umum, kata-kata kasar, atau tugas yang berjalan buruk tidak memenuhi syarat, begitu pula permintaan konten berbahaya, yang akan ditolak oleh Claude alih-alih mengakhiri sesi. Claude Code mengikuti pendekatan yang sama dengan claude.ai, yang dapat mengakhiri sebagian kecil obrolan. Setelah Claude mengakhiri sesi interaktif, sesi tersebut terkunci. Prompt baru dan sebagian besar perintah akan mengembalikan 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 pengakhiran tersebut di transkrip sesi, sehingga melanjutkan sesi yang telah diakhiri akan memulihkan kunci tersebut; riwayat sesi tidak dihapus. Melanjutkan sesi yang telah diakhiri dalam mode non-interaktif dengan flag -p akan menghasilkan error dan keluar dengan kode 1, sehingga skrip tidak membaca proses yang telah diakhiri sebagai keberhasilan. Tool ini tidak pernah meminta izin, dan hook PreToolUse tidak berjalan untuknya. Selama masih ada tool lain, Anda juga tidak dapat memblokirnya: aturan deny dan ask yang menyebut EndConversation tidak berpengaruh, dan baik --disallowedTools maupun daftar --tools tidak dapat menghapusnya. Pengecualian ini disengaja: tool ini tidak melakukan apa pun selain mengakhiri percakapan, tidak pernah membaca atau memodifikasi file atau data, dan perlindungan semacam ini hanya efektif jika sesi yang dikenainya tidak dapat mematikannya. Ketika aturan deny Anda menghapus semua tool lain dan juga cocok dengan EndConversation, seperti "*", Claude Code juga menghapusnya alih-alih membiarkannya sebagai satu-satunya tool, kecuali ada aturan allow yang menyebut EndConversation secara eksplisit. Daftar deny yang menghapus semua tool lain tanpa cocok dengan EndConversation akan membiarkannya tetap ada. Subagent tidak pernah mendapatkan tool ini. Tugas latar belakang yang berbagi daftar tool dengan percakapan utama dapat melihatnya, tetapi memanggilnya di sana tidak mengakhiri apa pun. Tool ini hanya muncul ketika semua kondisi berikut terpenuhi:

Perilaku tool EnterWorktree

Tool EnterWorktree membuat git worktree yang terisolasi dan beralih ke dalamnya. Jika diberikan path, tool ini beralih ke worktree yang sudah ada alih-alih membuat worktree baru.
  • Worktree mana yang dapat dirujuk oleh path: pada saat masuk pertama kali, target dapat berupa worktree dari repositori saat ini. Dalam repositori yang menampung repositori lain, target juga dapat berupa worktree dari repositori yang bersarang di dalamnya.
  • Kapan Anda diminta persetujuan: path di luar .claude/worktrees/ meminta persetujuan Anda sebelum masuk, karena hal ini memindahkan direktori kerja sesi dan akses tulis ke lokasi tersebut. Pembuatan worktree baru dan path di bawah .claude/worktrees/ tidak memunculkan permintaan. Sebelum v2.1.206, Claude masuk ke path di luar .claude/worktrees/ tanpa permintaan persetujuan.
  • Dari dalam worktree: dari dalam sesi worktree, hanya bentuk path yang tersedia dan target harus berada di bawah .claude/worktrees/ dari repositori sesi tersebut. Hal yang sama berlaku untuk subagent dengan direktori kerja yang disematkan, seperti isolation: worktree.
  • Saat tool tidak tersedia: setelah permissions.blockWritesOutsideWorkingDirectories diaktifkan, Claude Code menghapus EnterWorktree dan ExitWorktree atau menolak panggilan ke keduanya. Untuk tetap bekerja di worktree, lihat Claude tidak memiliki tool EnterWorktree.

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 dengan find dan grep melalui Bash tool sebagai gantinya. Di shell Claude, kedua perintah tersebut menjalankan versi embedded dari bfs dan ugrep, dan pencarian mencapai hook 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 Glob atau Grep dalam --tools atau --allowedTools ketika Anda memulai sesi, atau dalam opsi Agent SDK yang setara. Dengan --tools Anda mendapatkan yang Anda daftarkan, dan menyebutkan salah satu tool dalam --allowedTools mengembalikan keduanya. Aturan allow dalam file settings tidak memiliki efek ini.
  • Aturan deny izin, flag --disallowedTools, atau --restricted menghapus Bash dari sesi.
  • Subagent mencantumkan Glob atau Grep dalam field tools dan mengeluarkan Bash. Tool yang tercantum kembali untuk subagent itu saja, atau untuk seluruh sesi ketika berjalan sebagai agent sesi utama melalui --agent atau pengaturan agent.
Glob mendukung sintaks glob standar termasuk ** untuk pencocokan direktori rekursif:
  • **/*.js cocok dengan semua file .js pada kedalaman apa pun
  • src/**/*.ts cocok dengan semua file .ts di bawah src/
  • *.{json,yaml} cocok dengan file .json dan .yaml dalam direktori saat ini
Hasil diurutkan berdasarkan waktu modifikasi dan dibatasi pada 100 file. Jika batas tercapai, Claude melihat flag truncation dalam hasil dan dapat mempersempit pola. Glob tidak menghormati .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 permintaan 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, menemukan interface{} 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 parameter offset tool menunjuk melampaui kecocokan terakhir untuk pola yang memiliki kecocokan, Grep mengembalikan No 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 parameter head_limit atau offset tool memotong entri per-file yang terdaftar.
Claude dapat membatasi hasil berdasarkan file dengan parameter 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
Claude Code menjaga tool tetap tidak aktif sampai Anda menginstal plugin intelijen kode untuk bahasa Anda. Dalam sesi cloud, Claude Code tidak memulai language server plugin, jadi LSP tool tetap tidak aktif di sana. Claude Code mengambil konfigurasi language server dari plugin, dan Anda menginstal binary server sendiri. Claude Code mengembalikan hasil kesalahan untuk setiap panggilan LSP pada file yang language server-nya tidak dapat dimulai.

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
Untuk sebagian besar watch, Claude menulis skrip kecil, menjalankannya di latar belakang, dan menerima setiap baris output saat tiba. Untuk server yang sudah mendorong peristiwa, Claude dapat membuka WebSocket daripada menjalankan skrip. Anda terus bekerja dalam sesi yang sama dan Claude menyela ketika peristiwa tiba. Setiap watch yang Claude mulai memiliki tenggat waktu: 5 menit secara default, paling lama 30 menit, dan paling lama 10 menit dalam run non-interaktif yang diberikan prompt tunggal dengan -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 pengklasifikasi meninjau perintah Monitor dengan cara yang sama seperti meninjau perintah Bash. Monitor memerlukan versi minimum atau Git Bash dalam kasus-kasus berikut:
  • Versi minimum: di Amazon Bedrock, Claude Platform on AWS, Google Cloud’s Agent Platform, atau Microsoft Foundry, atau ketika DISABLE_TELEMETRY atau CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC diatur, Monitor memerlukan Claude Code v2.1.310 atau yang lebih baru. Persyaratan ini berlaku ketika pengambilan feature flag dinonaktifkan
  • Windows: tool ini hanya tersedia ketika Git Bash terinstal
Plugin dapat mendeklarasikan monitors yang dimulai secara otomatis ketika plugin aktif, daripada meminta Claude untuk memulainya. Lihat plugin monitors.

WebSocket source

Ketika server sudah mendorong peristiwa melalui WebSocket, Claude dapat terhubung langsung ke dalamnya daripada menulis skrip polling. Setiap jenis aktivitas soket menjadi peristiwa atau mengakhiri watch:
  • 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.
Watch WebSocket mengambil input 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. Tanpa aturan allow Monitor, Anda akan dimintai persetujuan sebelum Claude membuka WebSocket; dalam auto mode pengklasifikasi memutuskan sebagai gantinya, kecuali jika aturan ask berlaku. Prompt tidak menawarkan opsi untuk melewati prompt di masa depan untuk host yang sama.

Alamat dan host yang ditolak untuk watch WebSocket

Claude Code menolak URL yang menunjuk ke alamat pribadi, link-local, atau cloud-metadata, termasuk nama host yang di-resolve oleh mesin Anda ke salah satunya. Di balik proxy, watch dapat menjangkau alamat pribadi, link-local, atau cloud-metadata kecuali proxy memblokirnya, karena Claude Code tidak memeriksa alamat yang ditemukan oleh proxy. Claude Code juga menolak host di sandbox.network.deniedDomains, dan ketika allowManagedDomainsOnly diatur dalam pengaturan terkelola, host apa pun di luar allowlist terkelola. Jika watch di balik proxy gagal dengan could not resolve <host>, mulai ulang Claude Code v2.1.319 atau yang lebih baru dengan CLAUDE_CODE_PROXY_RESOLVES_HOSTS diatur ke 1 sehingga proxy yang mencari nama host tersebut.

Aturan Bash yang menolak atau meminta persetujuan untuk watch WebSocket

Jika Claude Code menolak panggilan Monitor yang membuka WebSocket, cari aturan deny atau ask yang ditulis Bash atau Bash(*). Lakukan hal yang sama jika Claude Code meminta persetujuan untuk panggilan tersebut meskipun ada aturan allow Monitor Anda. Aturan yang berlaku untuk setiap perintah Bash juga mencakup watch WebSocket ini:
  • Aturan deny: jika aturan sudah ada saat sesi dimulai, Claude tidak memiliki Monitor tool, sehingga tidak dapat memulai watch. Jika Anda menambahkan aturan selama sesi, panggilan Monitor berikutnya dari Claude akan ditolak. Penolakan tersebut berbunyi Permission to use Monitor has been denied: it runs code as Bash does, and a rule denies Bash.
  • Aturan ask: Anda diminta untuk menyetujui watch. Aturan allow, hook PreToolUse, mode bypassPermissions, maupun pengklasifikasi auto mode tidak dapat menyetujuinya untuk Anda. Anda dapat menyetujuinya dari hook PermissionRequest. Ketika tidak ada yang dapat menjawab, seperti dalam mode dontAsk, Claude Code menolak watch tersebut.
Untuk mengizinkan watch ini berjalan, persempit aturan ke perintah yang Anda maksud, seperti Bash(rm *). Aturan ask, dan aturan deny yang Anda tambahkan selama sesi, mencakup watch ini di Claude Code v2.1.319 atau yang lebih baru.

Perilaku NotebookEdit tool

NotebookEdit memodifikasi notebook Jupyter satu sel pada satu waktu, menargetkan sel berdasarkan cell_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. Tanpa cell_id, sel baru masuk di awal notebook. Memerlukan cell_type diatur ke code atau markdown.
  • delete: hapus sel target.
NotebookEdit menolak file notebook yang tidak dapat didekode sebagai UTF-8, berdasarkan aturan yang sama dengan Edit, dan tidak menulis apa pun. Aturan izin menggunakan format path 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=1 untuk mengaktifkannya di sesi Amazon Bedrock, Google Cloud’s Agent Platform, dan Microsoft Foundry, atau 0 untuk mematikannya.
  • Linux, macOS, dan WSL: alat bersifat opt-in.
PreToolUse hooks Anda menerima string perintah alat dalam 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

Atur CLAUDE_CODE_USE_POWERSHELL_TOOL=1 di lingkungan Anda atau di settings.json:
Di Windows, atur variabel ke 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.

Aturan deny Bash juga mematikan tool PowerShell

Di Windows dengan Git Bash terinstal, menolak Bash juga mematikan tool PowerShell untuk sesi tersebut. Ini berlaku untuk aturan bercakupan seperti Bash(git push *) maupun Bash tanpa argumen, dan untuk aturan dari salah satu file pengaturan Anda atau --disallowedTools. Claude Code melakukan ini karena aturan Bash tidak membatasi tool PowerShell, yang memiliki aturan izinnya sendiri. Jika PowerShell dibiarkan aktif, Claude dapat menjalankan di sana apa yang ditolak oleh aturan Anda di Bash. Untuk tetap mengaktifkan tool PowerShell bersama aturan deny Bash, lakukan salah satu dari berikut ini:
  • Atur CLAUDE_CODE_USE_POWERSHELL_TOOL=1 di lingkungan Anda atau di blok env dari file pengaturan, seperti yang ditunjukkan di Aktifkan tool PowerShell.
  • Tambahkan aturan izin PowerShell bercakupan ke file pengaturan, seperti aturan deny PowerShell(git push *).
Tanpa salah satu dari ini, aturan deny Bash bercakupan membiarkan tool Bash tetap tersedia, dan Claude Code mematikan PowerShell tanpa peringatan. Aturan yang menghapus seluruh tool Bash membuat Claude tidak memiliki tool shell sama sekali untuk sesi tersebut.

Pemilihan shell dalam pengaturan, hooks, dan skills

Tiga pengaturan tambahan mengontrol di mana PowerShell digunakan:
  • "defaultShell": "powershell" dalam settings.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 dari CLAUDE_CODE_USE_POWERSHELL_TOOL.
  • shell: powershell dalam skill frontmatter: menjalankan blok !`command` di PowerShell. Memerlukan alat PowerShell untuk diaktifkan.
Perintah PowerShell mengikuti perilaku reset direktori kerja sesi utama yang sama seperti perintah Bash, termasuk environment variable CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR. Perintah PowerShell juga menerima variabel yang dipertahankan oleh hook melalui CLAUDE_ENV_FILE, dengan ketentuan yang dijelaskan di Variabel yang dipertahankan dalam perintah PowerShell. Memerlukan Claude Code v2.1.296 atau lebih baru.

Kode keluar 1 dari pencarian dan git diff di PowerShell

Jika pencarian grep atau rg yang tidak menemukan kecocokan menampilkan Error: Exit code 1 saat Claude menjalankannya di alat PowerShell, pencarian tersebut tidak gagal. Anda tidak perlu melakukan apa pun. Kesalahan ini dapat muncul ketika pencarian merupakan bagian dari perintah yang lebih panjang. Misalnya, ketika rg keluar dengan kode 1, rg foo | Out-Null menampilkan kesalahan tersebut sedangkan rg foo tidak. Alat PowerShell dapat menghitung kode keluar 1 sebagai hasil normal dari grep, rg, egrep, fgrep, findstr, git grep, dan git diff. Pencarian menggunakan kode keluar 1 untuk melaporkan bahwa tidak ada kecocokan. Dari git diff, kode keluar 1 berarti file berbeda. Perintah yang menampilkan kesalahan saat Claude menjalankannya dihitung sebagai gagal dalam skill dengan shell: powershell.

Pengkodean Windows dan kode keluar

  • 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
  • Jika where.exe tidak menemukan kecocokan, atau fc.exe atau diff.exe mendapati bahwa file berbeda, hasilnya dapat menampilkan Error: Exit code 1 meskipun perintah tidak gagal. Anda tidak perlu melakukan apa pun.
  • Jika kode keluar robocopy dari 1 hingga 7 ditampilkan sebagai kesalahan, penyalinan tidak gagal dan Anda tidak perlu melakukan apa pun. robocopy keluar dengan kode 0 hingga 7 untuk melaporkan hasil, seperti file yang disalin, dan dengan 8 atau lebih tinggi ketika gagal.

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. Membaca file kosong mengembalikan pemberitahuan bahwa file ada tetapi isinya kosong, dan offset melampaui baris terakhir mengembalikan pemberitahuan yang memberikan jumlah baris file. Read menangani beberapa jenis file di luar teks biasa:
  • Gambar: File PNG, JPEG, GIF, dan WebP 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. Jika Claude melewatkan detail tingkat piksel halus dalam gambar besar, minta Claude untuk memotong wilayah yang Anda perlukan, misalnya dengan ImageMagick melalui Bash, lalu membaca hasil potongan tersebut. Read menolak file gambar yang lebih besar dari 128 MB dengan kesalahan yang memberi tahu Claude untuk mengubah ukuran gambar atau mengekspor salinan yang lebih kecil, lalu membaca salinan tersebut. Jika Claude berhenti pada kesalahan tersebut alih-alih melakukannya, lihat File is too large to read as an image.
  • PDFs: Claude membaca file .pdf pendek secara keseluruhan. Untuk PDF yang lebih panjang dari 10 halaman, file tersebut dibaca dalam rentang dengan parameter pages, seperti "1-5", hingga 20 halaman sekaligus. Pembacaan rentang halaman merender halaman dengan pdftoppm dari poppler-utils, jadi instal dengan brew install poppler di macOS atau apt-get install poppler-utils di Debian dan Ubuntu. Di Windows dan platform lainnya, instal build poppler yang menempatkan pdftoppm di PATH Anda. Tanpa itu, pembacaan rentang halaman gagal dengan pdftoppm is not installed.
  • Jupyter notebooks: File .ipynb mengembalikan semua sel dengan keluarannya, termasuk kode, markdown, dan visualisasi. Notebook yang sel-selnya berjumlah lebih dari 256 KB, atau lebih dari batas token, mengembalikan kesalahan sebagai gantinya. 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.
Read hanya membaca file, bukan direktori. Claude mencantumkan isi direktori dengan perintah shell seperti ls. Read menolak file yang ekstensinya dianggap biner, seperti .xlsx, .parquet, .heic, atau .zip. Claude tetap melanjutkan pekerjaan setelah penolakan: kesalahan tersebut menyarankan skill untuk jenis file itu jika tersedia, atau jika tidak, perintah shell atau skrip yang dapat membaca format tersebut. Jika Anda menyebut dengan @ file yang ditolak oleh Read, Claude menerima jalur file tersebut tetapi tidak menerima isinya.

File besar

Claude dapat membaca file teks yang lebih besar dari yang dikembalikan oleh satu panggilan Read. Secara default, satu panggilan mengembalikan paling banyak 25.000 token, atau nilai yang Anda tetapkan di CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS, dan menolak seluruh file di atas 256 KB, sehingga Claude membaca file yang lebih besar per halaman dengan offset dan limit. Di Claude Code v2.1.296 atau lebih baru, Claude dapat membaca seluruh file, atau rentang baris yang panjang, dalam satu panggilan dengan mengatur allow_large: true saat diperlukan, misalnya karena Anda meminta seluruh file. Pembacaan tersebut diukur berdasarkan ruang yang tersisa di context window sesi, bukan batas default. Gambar, PDF, dan notebook tetap mempertahankan batasnya. Apa yang diterima Claude ketika pembacaan melebihi batas default:
  • Seluruh file melebihi batas token: halaman pertama file, dengan pemberitahuan PARTIAL view yang menyebutkan berapa banyak file yang diterima dan cara membaca lebih lanjut dengan offset dan limit
  • Seluruh file di atas 256 KB, atau pembacaan dengan offset atau limit yang melebihi batas token: kesalahan yang memberi tahu Claude untuk membaca sebagian dengan offset dan limit, atau untuk mencari konten spesifik dengan Grep sebagai gantinya

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. Tekan 1 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 yes atau no. Ketika transkrip dari sesi tempat Claude mengantrekan draf masih tersedia, itu dimulai pada yes, yang mengirim percakapan itu ke Anthropic; no mengirim laporan saja
  • Kirim draf, buang, atau biarkan di antrian untuk nanti
Untuk menulis laporan sendiri, tekan 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 yes di layar tinjauan. Mengirim dari kartu tidak pernah menyertakan transkrip
Claude Code menyimpan direktori kerja Anda dalam draf lokal sehingga dapat menemukan transkrip, dan tidak mengirim direktori. Dalam organisasi dengan retensi data nol, dan dalam organisasi yang menerapkan konfigurasi HIPAA, Claude Code tidak menyertakan tool SendFeedback dalam sesi Anda. Jika sesi dalam organisasi dengan retensi data nol masih menawarkan tool tersebut, 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 setelah cleanupPeriodDays 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 ke off 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:

Ketersediaan alat Task

Tool pelacakan tugas, TaskCreate, TaskGet, TaskUpdate, TaskList, dan TodoWrite, tersedia secara default hanya pada Opus 4.7, Sonnet 4.6, Haiku 4.5, dan model-model sebelumnya. Di mana pun tool tersebut tersedia, Anda mendapatkan empat tool 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=1 sebelum Anda memulai Claude Code, misalnya CLAUDE_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, misalnya claude --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 allowedTools dan tools bekerja dengan cara yang sama seperti dua flag
Dalam sesi latar belakang dan dalam sesi cloud, Claude Code menyediakan alat yang sama pada setiap model, terdaftar atau tidak. Rangkaian default yang dijelaskan di sini berlaku dalam Claude Code v2.1.268 dan yang lebih baru.

Tool pelacakan tugas dalam subagent dan tim agent

Subagent memiliki tool pelacakan tugas hanya ketika sesi Anda memilikinya, apa pun model yang dijalankan subagent tersebut. Anggota tim agent dalam proses memiliki tool pelacakan tugas ketika sesi Anda memilikinya. Anggota tim panel terpisah adalah proses Claude Code terpisah yang mewarisi daftar --tools dan aturan penolakan Anda, bukan --allowedTools, jadi periksa apa yang Anda tetapkan:
  • Tidak ada daftar --tools atau aturan penolakan, dan CLAUDE_CODE_ENABLE_TODO_TOOLS tidak ditetapkan untuk anggota tim: anggota tim memiliki tool pelacakan tugas yang dimiliki model miliknya sendiri secara default.
  • CLAUDE_CODE_ENABLE_TODO_TOOLS diekspor di shell Anda: Claude Code meneruskan kepada anggota tim serangkaian environment variable tetap yang tidak menyertakan variabel yang Anda ekspor. Untuk menetapkannya juga bagi anggota tim, mulai sesi Anda dengan menjalankan claude --settings '{"env":{"CLAUDE_CODE_ENABLE_TODO_TOOLS":"1"}}' di shell Anda. Anggota tim juga mendapatkan nilai --settings Anda.
  • --tools yang menyebutkan tool pelacakan tugas: anggota tim memilikinya pada model apa pun.
  • Tool pelacakan tugas yang tidak ada dalam --tools atau disebutkan dalam aturan penolakan: anggota tim tidak memiliki tool tersebut.
Tanpa tool Task, agent berkoordinasi dengan timnya melalui pesan alih-alih daftar tugas bersama.

Perilaku tool WebFetch

WebFetch menerima URL dan prompt yang menjelaskan apa yang harus diekstrak. Tool ini mengambil halaman dan mengonversi respons ke Markdown ketika server mengembalikan HTML. Untuk sebagian besar pengambilan, tool ini kemudian menjalankan prompt terhadap konten dalam panggilan model terpisah, dan Claude menerima hasil panggilan tersebut, bukan halaman mentahnya. Langkah konversi ini tidak dapat dikonfigurasi. Hal ini membuat WebFetch secara desain bersifat lossy. Prompt ekstraksi menentukan apa yang sampai ke Claude, sehingga hasil yang menyatakan bahwa suatu halaman tidak menyebutkan sesuatu mungkin hanya berarti prompt tersebut tidak menanyakannya. Minta Claude untuk mengambil ulang dengan prompt yang lebih spesifik, atau gunakan curl melalui Bash untuk mendapatkan halaman yang belum diproses. Beberapa perilaku membentuk respons yang diterima Claude:
  • WebFetch menolak localhost dan hostname lain tanpa titik, seperti nama intranet tanpa domain, sebelum membuat permintaan. Error yang dikembalikannya memberi tahu Claude untuk menjangkau server lokal dengan curl melalui Bash sebagai gantinya.
  • URL HTTP secara otomatis ditingkatkan ke HTTPS.
  • WebFetch membaca hingga 100.000 karakter konten halaman per panggilan. Pada Claude Code v2.1.290 atau yang lebih baru, hasil untuk halaman yang lebih panjang memberi tahu Claude berapa banyak yang belum terbaca, sehingga Claude dapat mengambil bagian berikutnya.
  • WebFetch menyimpan setiap respons dalam cache selama 15 menit secara default, sehingga pengambilan berulang atas URL yang sama kembali dengan cepat. Pada Claude Code v2.1.233 atau yang lebih baru, atur CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS untuk mengubah berapa lama WebFetch menyimpan setiap respons.
  • Halaman yang belum selesai diunduh dalam lima menit, termasuk pengalihan apa pun yang diikuti WebFetch, gagal dengan error tenggat waktu. Pada Claude Code v2.1.268 atau yang lebih baru, atur CLAUDE_CODE_WEBFETCH_DEADLINE_MS untuk mengubah batasnya, atau ke 0 untuk 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 tersebut dengan panggilan WebFetch kedua.
  • Ketika langkah ekstraksi menemui API yang kelebihan beban, Claude Code mencoba ulang dengan backoff; pengambilan yang tetap gagal mengembalikan hasil error.
Dalam mode izin Manual dan acceptEdits, WebFetch meminta persetujuan sebelum mengambil, kecuali untuk domain yang sudah diizinkan atau ditolak oleh aturan izin Anda serta sekumpulan domain dokumentasi bawaan yang telah disetujui sebelumnya yang diambil tanpa permintaan izin. Apa pun yang diizinkan aturan Anda, pengambilan juga harus lolos pemeriksaan keamanan domain WebFetch terlebih dahulu; bagian tersebut menjelaskan apa yang dikirim pemeriksaan itu dan pengaturan yang melewatinya. Permintaan izin menawarkan tiga opsi:
  • Yes: menyetujui pengambilan ini saja. Panggilan WebFetch berikutnya akan meminta persetujuan lagi, bahkan untuk domain yang sama.
  • Yes, and don’t ask again for <domain>: menyetujui pengambilan dan menyimpan aturan allow WebFetch(domain:...) untuk domain tersebut ke .claude/settings.local.json untuk repositori tersebut. Lihat bagaimana persetujuan yang disimpan bertahan. Ketika organisasi Anda menetapkan allowManagedPermissionRulesOnly, Claude Code menyembunyikan opsi ini.
  • No, and tell Claude what to do differently: menolak pengambilan.
Untuk mengizinkan domain terlebih dahulu tanpa permintaan izin, tambahkan aturan allow seperti WebFetch(domain:example.com); WebFetch(domain:*) mengizinkan setiap domain. Mode izin auto dan bypassPermissions melewati permintaan izin, kecuali untuk domain yang cocok dengan aturan ask eksplisit. Aturan WebFetch(domain:...) eksplisit dalam deny, ask, atau allow diutamakan daripada kumpulan domain yang telah disetujui sebelumnya, sehingga Anda dapat memblokir domain yang telah disetujui sebelumnya atau mewajibkan permintaan izin untuknya. Ketika URL adalah tautan artifact claude.ai, Claude Code juga dapat meminta persetujuan untuk membaca artifact itu sendiri. Untuk kasus-kasus saat ia meminta persetujuan, lihat Membaca artifact yang dibagikan kepada Anda. WebFetch menetapkan header User-Agent yang diawali dengan Claude-User, dan header Accept yang lebih mengutamakan Markdown daripada HTML sehingga server yang mendukung negosiasi konten dapat mengembalikan Markdown secara langsung. Perintah yang berjalan di sandbox tidak mewarisi kumpulan domain dokumentasi bawaan WebFetch yang telah disetujui sebelumnya. Agar perintah di sandbox dapat menjangkau suatu domain tanpa permintaan izin, tambahkan domain tersebut ke allowedDomains atau izinkan dengan aturan WebFetch(domain:...), yang juga dihormati oleh sandbox. Sebaliknya, WebFetch tidak pernah membaca allowlist sandbox, sehingga menambahkan domain ke allowlist jaringan sandbox atau organisasi tidak menghentikan WebFetch dari meminta persetujuan untuknya.

Ketersediaan WebFetch

Pada Claude Code v2.1.285 atau yang lebih baru, atur CLAUDE_CODE_DISABLE_WEB_FETCH ke 1 untuk mematikan WebFetch. Jika Anda masuk dengan akun claude.ai Team atau Enterprise dan tidak terhubung melalui LLM gateway, WebFetch juga bergantung pada kebijakan organisasi Anda, yang diminta Claude Code dari api.anthropic.com saat sesi dimulai. Hal yang sama berlaku untuk sesi yang paketnya tidak dapat ditentukan oleh Claude Code, seperti sesi yang berjalan dengan token claude.ai yang disediakan oleh aplikasi lain. Jika WebFetch tidak ada dalam sesi, jalankan /status di sesi tersebut. Jika baris Organization policy melaporkan bahwa kebijakan tidak dimuat dan menyebutkan web fetch di antara fitur yang menunggunya, Claude Code menahan WebFetch hingga dapat memastikan bahwa organisasi Anda mengizinkannya. Di luar sesi, claude doctor membuat permintaannya sendiri dan mencetak baris yang sama. Setelah kebijakan yang mengizinkan WebFetch dimuat, tool tersebut kembali tersedia tanpa perlu memulai ulang.

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 dengan allowed_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. 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, Claude Platform on AWS, dan Microsoft Foundry. Di Agent Platform Google Cloud, tool ini bekerja dengan Opus 4, Sonnet 4, Haiku 4.5, dan model yang lebih baru. Amazon Bedrock tidak mengekspos tool web search sisi server.

Batas pencarian sesi

Sesi terminal interaktif memiliki batas 200 panggilan WebSearch. Pencarian dari percakapan utama dan dari subagent, seperti fan-out penelitian paralel, dihitung terhadap batas yang sama. Selama sesi berada pada batas, pencarian muncul dalam percakapan sebagai panggilan yang tidak melakukan apa pun. Claude menerima pemberitahuan yang memberi tahu Claude untuk melanjutkan dengan informasi yang telah dikumpulkannya, menyampaikan hal tersebut dalam jawabannya, dan, jika memerlukan lebih banyak pencarian, meminta Anda menaikkan batas. Untuk mendapatkan lebih banyak pencarian, naikkan batas maksimum, tunggu hingga batas terisi ulang, atau mulai percakapan baru:
  • Naikkan batas maksimum: atur environment variable CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION ke angka bulat positif, seperti 500. Batas maksimum dapat dinaikkan tetapi tidak dapat dimatikan.
  • Tunggu pengisian ulang: pada Claude Code v2.1.290 atau lebih baru, batas sesi terminal interaktif terisi ulang sekitar 100 panggilan per jam. Untuk mengubah lajunya, atur CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR ke jumlah panggilan per jam, seperti 50.
  • Mulai percakapan baru: menjalankan /clear pada prompt Claude Code juga mengatur ulang hitungan. Jika pekerjaan yang masih dapat menghasilkan subagent bertahan setelah pembersihan, seperti alur kerja yang sedang berjalan, hitungan akan dibawa ke depan.
Dalam mode non-interaktif dengan -p dan dalam Agent SDK, batas berlaku per giliran, bukan per sesi. Satu giliran berlangsung sejak pesan yang Anda kirim hingga Claude selesai merespons. Batas diatur ulang ketika Anda mengirim pesan berikutnya setelah itu atau memulai eksekusi claude -p baru, bahkan dengan --continue atau --resume. Untuk lebih banyak pencarian, naikkan CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION atau atur laju pengisian ulang dengan CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR.

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. Write juga menimpa file yang sudah ada yang byte-nya tidak dapat didekode dan menyimpan konten baru sebagai UTF-8, seperti yang dijelaskan di file non-UTF-8. 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.
Batasan ini tidak berlaku untuk file baru. Sebelum v2.1.228, setiap model memerlukan pembacaan sebelum menimpa file yang sudah ada. Melihat file dengan Bash juga memenuhi persyaratan ini di bawah aturan yang sama yang dijelaskan dalam Edit tool behavior. Untuk perubahan sebagian pada file yang sudah ada, Claude menggunakan Edit alih-alih Write.

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:
Claude memberikan ringkasan percakapan. Untuk nama tool MCP yang tepat, jalankan /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