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 pencocokan hook. Untuk menonaktifkan tool sepenuhnya, tambahkan namanya ke array deny dalam pengaturan izin Anda. 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.
ToolDeskripsiIzin Diperlukan
AgentMenjalankan subagent dengan jendela konteks sendiri untuk menangani tugas. Lihat perilaku Agent toolTidak
ArtifactMenerbitkan file HTML atau Markdown sebagai artifact: halaman interaktif pribadi di claude.ai yang dapat Anda bagikan dalam organisasi Anda. Memerlukan paket Team atau Enterprise dan autentikasi /login; lihat KetersediaanYa
AskUserQuestionMengajukan pertanyaan pilihan ganda untuk mengumpulkan persyaratan atau memperjelas ambiguitasTidak
BashMenjalankan perintah shell di lingkungan Anda. Lihat perilaku Bash toolYa
CronCreateMenjadwalkan prompt berulang atau satu kali dalam sesi saat ini. Tugas bersifat session-scoped dan dipulihkan pada --resume atau --continue jika belum kadaluarsa. Lihat tugas terjadwalTidak
CronDeleteMembatalkan tugas terjadwal berdasarkan IDTidak
CronListMencantumkan semua tugas terjadwal dalam sesiTidak
EditMembuat pengeditan tertarget ke file tertentu. Lihat perilaku Edit toolYa
EnterPlanModeBeralih ke plan mode untuk merancang pendekatan sebelum codingTidak
EnterWorktreeMembuat git worktree terisolasi dan beralih ke dalamnya. Lewatkan path untuk beralih ke worktree yang ada dari repositori saat ini daripada membuat yang baru. Dari dalam sesi worktree, atau dari subagent dengan direktori kerja yang disematkan seperti isolation: worktree, hanya bentuk path yang tersedia dan target harus berada di bawah .claude/worktrees/Tidak
ExitPlanModeMenyajikan rencana untuk persetujuan dan keluar dari plan modeYa
ExitWorktreeKeluar dari sesi worktree dan kembali ke direktori asli. Tidak tersedia untuk subagent yang sudah berjalan di direktori kerja mereka sendiri, seperti dengan isolation: worktreeTidak
GlobMenemukan file berdasarkan pencocokan pola. Lihat perilaku Glob toolTidak
GrepMencari pola dalam konten file. Lihat perilaku Grep toolTidak
ListMcpResourcesToolMencantumkan resources yang diekspos oleh server MCP yang terhubungTidak
LSPIntelijen kode melalui language servers: lompat ke definisi, temukan referensi, laporkan kesalahan tipe dan peringatan. Lihat perilaku LSP toolTidak
MonitorMenjalankan perintah di latar belakang dan mengirimkan setiap baris output kembali ke Claude, sehingga dapat bereaksi terhadap entri log, perubahan file, atau status yang dipolling di tengah percakapan. Dapat juga membuka WebSocket dan memperlakukan setiap pesan masuk sebagai acara. Lihat Monitor toolYa
NotebookEditMemodifikasi sel notebook Jupyter. Lihat perilaku NotebookEdit toolYa
PowerShellMenjalankan perintah PowerShell secara native. Lihat PowerShell tool untuk ketersediaanYa
PushNotificationMengirim notifikasi desktop, dan push phone ketika Remote Control terhubung, sehingga tugas yang berjalan lama atau tugas terjadwal dapat menjangkau Anda ketika Anda pergi. Pengiriman push berjalan melalui infrastruktur yang dihosting Anthropic, yang tidak dapat diakses dari Amazon Bedrock, Google Vertex AI, atau Microsoft FoundryTidak
ReadMembaca konten file. Lihat perilaku Read toolTidak
ReadMcpResourceToolMembaca resource MCP tertentu berdasarkan URITidak
RemoteTriggerMembuat, memperbarui, menjalankan, dan mencantumkan Routines di claude.ai. Mendukung perintah /schedule. Routines berada di claude.ai dan memerlukan paket Pro, Max, Team, atau Enterprise, jadi tool ini tidak dapat diakses dari Amazon Bedrock, Google Vertex AI, atau Microsoft FoundryTidak
ReportFindingsMelaporkan temuan code-review sebagai daftar terstruktur, dengan file, ringkasan, dan skenario kegagalan per temuan, sehingga Claude Code dapat merender mereka daripada mencetaknya sebagai teks. Claude memanggilnya ketika instruksi code-review aktif memberitahunya untuk melakukannya. Memerlukan Claude Code v2.1.196 atau lebih baruTidak
ScheduleWakeupMenjadwalkan ulang iterasi berikutnya dari self-paced /loop. Claude memanggil ini di akhir setiap iterasi untuk memilih kapan iterasi berikutnya berjalan, antara satu menit dan satu jam ke depan; Anda tidak memanggilnya secara langsung. Wakeup yang tertunda muncul dalam session_crons dalam Stop hook input. Tidak tersedia di Amazon Bedrock, Google Vertex AI, atau Microsoft Foundry, di mana prompt /loop tanpa interval berjalan pada jadwal tetapTidak
SendMessageMengirim pesan ke anggota agent team, atau melanjutkan subagent berdasarkan ID agennya. Subagent yang dihentikan secara otomatis melanjutkan di latar belakang. Pesan protokol tim terstruktur memerlukan agent teamsTidak
SendUserFileMengirim file dari sesi kepada Anda dengan keterangan opsional, sehingga laporan yang dihasilkan, diagram, tangkapan layar, atau artefak yang dibangun mencapai perangkat Anda daripada hanya disebutkan dalam transkrip. Sejak v2.1.196, input display opsional mengontrol presentasi: render membuka file secara inline di klien, attach menampilkan kartu unduhan saja, dan ketika tidak diatur klien memutuskan berdasarkan jenis file. Tersedia ketika klien Remote Control terhubung atau sesi berjalan di lingkungan cloud terkelola seperti Claude Code di web. Pengiriman berjalan melalui infrastruktur yang dihosting Anthropic, jadi tool tidak tersedia di Amazon Bedrock, Google Vertex AI, atau Microsoft FoundryTidak
ShareOnboardingGuideMengunggah ONBOARDING.md dan mengembalikan tautan berbagi yang dapat dibuka rekan tim di Claude Code. Dipanggil dari /team-onboarding setelah panduan ditulis. Tersedia untuk pelanggan claude.ai pada paket Pro, Max, Team, dan EnterpriseYa
SkillMenjalankan skill dalam percakapan utamaYa
TaskCreateMembuat tugas baru dalam daftar tugasTidak
TaskGetMengambil detail lengkap untuk tugas tertentuTidak
TaskListMencantumkan semua tugas dengan status saat ini merekaTidak
TaskOutput(Tidak digunakan lagi) Mengambil output dari tugas latar belakang. Lebih suka Read pada jalur file output tugasTidak
TaskStopMembunuh tugas latar belakang yang sedang berjalan berdasarkan IDTidak
TaskUpdateMemperbarui status tugas, dependensi, detail, atau menghapus tugasTidak
TodoWriteMengelola daftar periksa tugas sesi. Dinonaktifkan secara default sejak v2.1.142 mendukung TaskCreate, TaskGet, TaskList, dan TaskUpdate. Atur CLAUDE_CODE_ENABLE_TASKS=0 untuk mengaktifkan kembaliTidak
ToolSearchMencari dan memuat tools tertunda saat pencarian tool diaktifkanTidak
WaitForMcpServersMenunggu satu atau lebih server MCP yang masih terhubung di latar belakang, sehingga permintaan dapat menggunakan tools mereka tanpa memulai ulang sesi. Claude memanggilnya ketika server yang diperlukan belum terhubung. Hanya muncul saat pencarian tool dinonaktifkan, karena ToolSearch menangani penundaan saat diaktifkanTidak
WebFetchMengambil konten dari URL yang ditentukan. Lihat perilaku WebFetch toolYa
WebSearchMelakukan pencarian web. Lihat perilaku WebSearch toolYa
WorkflowMenjalankan dynamic workflow: skrip yang mengorkestra banyak subagent di latar belakang dan mengembalikan satu hasil yang dikonsolidasikanYa
WriteMembuat atau menimpa file. Lihat perilaku Write toolYa

Konfigurasi tools dengan aturan izin dan hooks

Sebagian besar, Claude memutuskan kapan menggunakan tools ini dan Anda tidak perlu menyebutkannya 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 bergantung pada tool, dan beberapa tools berbagi format:
Format AturanBerlaku untukDetail
Bash(npm run *)Bash, MonitorPencocokan pola perintah
PowerShell(Get-ChildItem *)PowerShellPencocokan pola perintah
Read(~/secrets/**)Read, Grep, Glob, LSPPencocokan pola path
Edit(/src/**)Edit, Write, NotebookEditPencocokan pola path
Skill(deploy *)SkillPencocokan nama skill
Agent(Explore)AgentPencocokan tipe subagent
WebFetch(domain:example.com)WebFetchPencocokan domain
WebSearchWebSearchTidak ada specifier; izinkan atau tolak tool secara keseluruhan
Tools yang tidak tercantum di sini, seperti ExitPlanMode atau ShareOnboardingGuide, hanya menerima nama tool tanpa specifier. Aturan izin Edit(...) juga memberikan akses baca ke path yang sama, jadi Anda tidak perlu aturan Read(...) yang cocok. Field matcher hook menggunakan nama tools tanpa format dengan tanda kurung. Lihat pola matcher untuk aturan pencocokan. Untuk nama field yang setiap tool lewatkan ke tool_input dalam hooks, lihat referensi input PreToolUse.

Perilaku Agent tool

Agent tool menjalankan subagent dalam jendela konteks terpisah. Subagent bekerja melalui tugasnya secara otonom, kemudian mengembalikan hasil teks tunggal ke percakapan induk. Induk tidak melihat panggilan tool atau output perantara subagent, hanya hasil akhir itu. Untuk membatasi berapa banyak turn subagent berjalan, atur maxTurns dalam definisi subagent. Agent tool yang sama juga meluncurkan subagent yang di-fork ketika mode fork diaktifkan. Fork mewarisi percakapan induk penuh daripada memulai segar, selalu berjalan di latar belakang, dan masih menampilkan prompt izin di terminal Anda. Sisa bagian ini menjelaskan subagent bernama. Tools mana yang dapat digunakan subagent bernama bergantung pada field tools dan disallowedTools dalam definisi subagent:
  • Tidak ada field yang diatur: subagent mewarisi setiap tool yang tersedia untuk induk.
  • Hanya tools: subagent mendapatkan hanya tools yang tercantum.
  • Hanya disallowedTools: subagent mendapatkan setiap tool induk kecuali yang tercantum.
  • Keduanya diatur: disallowedTools mengambil alih. Tool yang tercantum di keduanya dihapus.
Meluncurkan subagent tidak sendiri meminta izin. Panggilan tool subagent sendiri diperiksa terhadap aturan izin Anda saat berjalan:
  • Subagent foreground menampilkan prompt izin yang sama yang akan Anda lihat dalam percakapan utama, pada saat setiap panggilan tool terjadi.
  • Subagent background menampilkan prompt izin dalam sesi utama Anda sejak v2.1.186. Prompt menunjukkan subagent mana yang meminta, dan menekan Esc menolak panggilan tool itu saja tanpa menghentikan subagent. Sebelum v2.1.186, subagent background secara otomatis menolak panggilan tool apa pun yang sebaliknya akan meminta dan melanjutkan tanpa tool itu.
Untuk membatasi apa yang dapat dijangkau subagent sejak awal, persempit field tools nya, tinggalkan Bash dari daftar, atau atur aturan deny dalam pengaturan Anda, seperti yang dijelaskan dalam Kontrol kemampuan subagent. Untuk lebih lanjut tentang memilih antara foreground dan background, lihat Jalankan subagent di foreground atau background.

Perilaku Bash tool

Bash tool menjalankan setiap perintah dalam proses terpisah dengan perilaku persistensi berikut:
  • Ketika Claude menjalankan cd dalam sesi utama, direktori kerja baru berlanjut 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, atau additionalDirectories dalam pengaturan. Sesi subagent tidak pernah membawa perubahan direktori kerja.
    • Jika cd mendarat di luar direktori tersebut, Claude Code mengatur ulang ke direktori proyek dan menambahkan Shell cwd was reset to <dir> ke hasil tool.
    • Untuk menonaktifkan carry-over ini sehingga setiap perintah Bash dimulai di direktori proyek, atur CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1.
  • Variabel lingkungan tidak persisten. export dalam 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 ~/.profile tergantung pada shell Anda, menangkap alias, fungsi, dan opsi shell yang dihasilkan, dan menerapkannya ke setiap perintah Bash.
Aktifkan virtualenv atau conda environment Anda sebelum meluncurkan Claude Code. Untuk membuat variabel lingkungan persisten di seluruh perintah Bash, atur CLAUDE_ENV_FILE ke skrip shell sebelum meluncurkan Claude Code, atau gunakan hook SessionStart untuk mengisinya secara dinamis. Dua batas mengikat setiap perintah:
  • Timeout: dua menit secara default. Claude dapat meminta hingga 10 menit per perintah dengan parameter timeout. Ganti default dan ceiling dengan BASH_DEFAULT_TIMEOUT_MS dan BASH_MAX_TIMEOUT_MS.
  • Panjang output: 30.000 karakter secara default. Ketika perintah menghasilkan lebih dari itu, Claude Code menyimpan output penuh ke file dalam direktori sesi dan memberikan Claude jalur file ditambah pratinjau singkat dari awal. Claude membaca atau mencari file itu ketika membutuhkan sisanya. Naikkan batas dengan BASH_MAX_OUTPUT_LENGTH, hingga ceiling keras 150.000 karakter.
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 saat berjalan. Daftar dan hentikan tugas latar belakang dengan /tasks.

Perilaku Edit tool

Edit tool melakukan penggantian string yang tepat. Ini mengambil old_string dan new_string dan mengganti yang pertama dengan yang kedua. Ini tidak menggunakan regex atau fuzzy matching. Tiga pemeriksaan harus lulus agar edit diterapkan:
  • Read-before-edit: Claude harus telah membaca file dalam percakapan saat ini, dan file tidak boleh berubah di disk sejak pembacaan itu. Pemeriksaan ini berjalan pertama, sebelum pencocokan string apa pun.
  • Match: old_string harus muncul dalam file persis seperti yang ditulis. Satu karakter perbedaan whitespace atau indentasi sudah cukup untuk melewatkan.
  • Uniqueness: old_string harus muncul persis sekali. Ketika muncul lebih dari sekali, Claude baik menyediakan string yang lebih panjang dengan konteks sekitar yang cukup untuk menyematkan satu kemunculan, atau mengatur replace_all: true untuk mengganti semuanya.
Melihat file dengan Bash juga memenuhi persyaratan read-before-edit ketika perintahnya adalah cat, head, tail, sed -n 'X,Yp', grep, egrep, atau fgrep pada file tunggal tanpa pipe atau redirect. Output yang di-pipe dan perintah Bash lainnya tidak dihitung, dan Claude harus menggunakan Read sebelum mengedit dalam kasus tersebut. Ini mempengaruhi kelayakan edit saja, bukan izin. Aturan deny Read dan Edit juga berlaku untuk perintah file yang Claude Code kenali dalam Bash, seperti cat, head, tail, sed, dan grep, tetapi bukan untuk subprocess arbitrer yang membaca atau menulis file secara tidak langsung, seperti skrip Python atau Node yang membuka file sendiri. Himpunan perintah yang dikenali untuk aturan deny tidak sama dengan daftar read-before-edit di atas: misalnya, egrep dan fgrep dihitung untuk read-before-edit tetapi tidak diperiksa terhadap aturan deny Read. Untuk penegakan tingkat OS yang mencakup setiap proses, aktifkan sandbox.

Perilaku Glob tool

Glob tool menemukan file berdasarkan pola nama. Ini 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.

Perilaku Grep tool

Grep tool mencari konten file untuk pola. Di mana Glob menemukan file berdasarkan nama, Grep menemukan baris di dalamnya. 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\{\}. 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.
  • count: jumlah kecocokan per file.
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.

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
Tool ini tidak aktif sampai Anda menginstal plugin intelijen kode untuk bahasa Anda. Plugin menggabungkan konfigurasi language server, dan Anda menginstal binary server secara terpisah.

Monitor tool

Monitor tool memerlukan Claude Code v2.1.98 atau lebih baru.
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. Hentikan monitor dengan meminta Claude untuk membatalkannya atau dengan mengakhiri sesi. 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. Sumber WebSocket memiliki prompt persetujuan tersendiri. Tool ini tidak tersedia di Amazon Bedrock, Google Vertex AI, 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.
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:
FieldRequiredDescription
urlYesEndpoint untuk terhubung. Harus berupa URL ws:// atau wss:// tanpa kredensial tertanam atau spasi, hanya menggunakan karakter ASCII
protocolsNoNama subprotokol WebSocket untuk ditawarkan selama handshake. Setiap entri harus berupa token subprotokol yang valid, dan daftar tidak dapat berisi duplikat
Input timeout_ms dan persistent berperilaku sama seperti untuk perintah: watch berakhir pada tenggat waktu kecuali persistent diatur, dan TaskStop membatalkannya lebih awal. Membuka WebSocket meminta persetujuan, dan 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 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.
Aturan izin menggunakan format path Edit(...). Aturan seperti Edit(notebooks/**) mencakup panggilan NotebookEdit pada file dalam direktori itu.

PowerShell tool

PowerShell tool memungkinkan Claude menjalankan perintah PowerShell secara native. Di Windows, ini berarti perintah berjalan di PowerShell daripada merutekan melalui Git Bash. Di Windows tanpa Git Bash, tool diaktifkan secara otomatis. Di Windows dengan Git Bash terinstal, tool sedang diluncurkan secara progresif. Di Linux, macOS, dan WSL, tool bersifat opt-in.

Aktifkan PowerShell tool

Atur CLAUDE_CODE_USE_POWERSHELL_TOOL=1 di lingkungan Anda atau dalam settings.json:
{
  "env": {
    "CLAUDE_CODE_USE_POWERSHELL_TOOL": "1"
  }
}
Di Windows, atur variabel ke 0 untuk opt out dari peluncuran. Di Linux, macOS, dan WSL, tool 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 tool diaktifkan, Claude memperlakukan PowerShell sebagai shell utama. Bash tool 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 berfungsi pada instalasi Windows default tanpa mengubah kebijakan mesin. Bypass cakupan proses tidak mengganti Group Policy MachinePolicy atau UserPolicy, sehingga lockdown perusahaan masih 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" dalam settings.json: merutekan perintah ! interaktif melalui PowerShell. Memerlukan PowerShell tool untuk diaktifkan.
  • "shell": "powershell" pada command hooks individual: menjalankan hook tersebut dalam PowerShell. Hooks menjalankan PowerShell secara langsung, jadi ini berfungsi terlepas dari CLAUDE_CODE_USE_POWERSHELL_TOOL.
  • shell: powershell dalam skill frontmatter: menjalankan blok !`command` dalam PowerShell. Memerlukan PowerShell tool untuk diaktifkan.
Perilaku reset direktori kerja sesi utama yang sama yang dijelaskan di bagian Bash tool berlaku untuk perintah PowerShell, termasuk variabel lingkungan CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR. Mulai dari v2.1.196, PowerShell tool mencocokkan penanganan Bash tool terhadap kode keluar pencarian dan diff. Kode keluar 1 dari grep, egrep, fgrep, dan git grep berarti tidak ada kecocokan, dan kode keluar 1 dari git diff berarti perbedaan ada, sehingga hasil ini tidak dilaporkan ke Claude sebagai kegagalan perintah.

Batasan pratinjau

PowerShell tool memiliki batasan yang diketahui berikut selama pratinjau:
  • Profil PowerShell tidak dimuat
  • Di Windows, sandboxing tidak didukung

Perilaku Read tool

Read tool mengambil jalur file dan mengembalikan konten dengan nomor baris. Claude diinstruksikan untuk selalu meneruskan jalur absolut. Secara default, Read mengembalikan file dari awal. Ketika pembacaan seluruh file melebihi batas token, Read mengembalikan halaman pertama dengan pemberitahuan PARTIAL view yang memberi tahu Claude berapa banyak file yang diterima dan cara membaca lebih lanjut dengan offset dan limit. Pembacaan yang meneruskan offset atau limit eksplisit dan masih melebihi batas token mengembalikan kesalahan. Read menangani beberapa tipe 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 mengirimnya, jadi Claude mungkin melihat versi downscaled dari screenshot 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 tetap tidak berubah. Jika Claude melewatkan detail tingkat piksel halus dalam gambar besar, minta untuk memotong wilayah minat terlebih dahulu, misalnya dengan ImageMagick melalui Bash.
  • PDF: Claude membaca file .pdf pendek secara keseluruhan. Untuk PDF lebih panjang dari 10 halaman, membaca dalam rentang dengan parameter pages, seperti "1-5", hingga 20 halaman sekaligus.
  • Notebook Jupyter: file .ipynb mengembalikan semua sel dengan output mereka, termasuk kode, markdown, dan visualisasi.
Read hanya membaca file, bukan direktori. Claude menggunakan ls melalui Bash tool untuk mencantumkan konten direktori.

Perilaku WebFetch tool

WebFetch mengambil URL dan prompt yang menjelaskan apa yang akan diekstrak. Ini mengambil halaman, mengonversi respons ke Markdown ketika server mengembalikan HTML, dan menjalankan prompt terhadap konten menggunakan model kecil dan cepat. Untuk sebagian besar fetch, Claude menerima jawaban model itu, bukan halaman mentah. Langkah konversi tidak dapat dikonfigurasi. Ini membuat WebFetch lossy secara desain. Prompt ekstraksi menentukan apa yang mencapai 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 gunakan curl melalui Bash untuk halaman yang tidak diproses. Beberapa perilaku membentuk respons yang Claude terima:
  • URL HTTP secara otomatis ditingkatkan ke HTTPS.
  • Halaman besar dipotong ke batas karakter tetap sebelum pemrosesan.
  • Respons di-cache selama 15 menit, jadi fetch berulang dari URL yang sama kembali dengan cepat.
  • Ketika URL mengalihkan ke host yang berbeda, WebFetch mengembalikan hasil teks yang menyebutkan URL asli dan target pengalihan daripada mengikutinya. Claude kemudian mengambil URL baru dengan panggilan WebFetch kedua.
Dalam mode izin default dan acceptEdits, WebFetch meminta pertama kali mencapai domain baru, kecuali untuk set bawaan domain dokumentasi yang telah disetujui sebelumnya yang fetch tanpa prompt. Untuk mengizinkan domain lain sebelumnya tanpa prompt, tambahkan aturan izin seperti WebFetch(domain:example.com). Mode izin auto dan bypassPermissions permission modes melewati prompt sepenuhnya. Aturan WebFetch(domain:...) eksplisit dalam deny, ask, atau allow mengambil alih set yang telah disetujui sebelumnya, jadi Anda dapat memblokir domain yang telah disetujui sebelumnya atau memerlukan prompt untuknya. WebFetch menetapkan header User-Agent yang dimulai dengan Claude-User, dan header Accept yang lebih suka Markdown daripada HTML sehingga server yang mendukung negosiasi konten dapat mengembalikan Markdown secara langsung. Aturan jaringan Sandbox dikonfigurasi secara terpisah, jadi domain yang ingin dijangkau proses sandboxed masih memerlukan aturan izin sandbox eksplisit.

Perilaku WebSearch tool

WebSearch menjalankan query terhadap backend web search Anthropic dan mengembalikan judul dan URL hasil. Ini tidak mengambil halaman hasil. Untuk membaca halaman yang Claude temukan dalam hasil pencarian, diikuti dengan WebFetch. Tool 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. Dua daftar tidak dapat digabungkan dalam satu panggilan. Backend pencarian tidak dapat dikonfigurasi. Untuk mencari dengan penyedia berbeda, tambahkan server MCP yang mengekspos tool pencarian. Aturan izin WebSearch tidak mengambil specifier. Entri WebSearch telanjang dalam allow atau deny adalah satu-satunya bentuk.
WebSearch tersedia di Claude API dan Microsoft Foundry. Di Google Cloud Vertex AI berfungsi dengan model Claude 4, termasuk Opus, Sonnet, dan Haiku. Amazon Bedrock tidak mengekspos tool web search sisi server.

Perilaku Write tool

Write tool membuat file baru atau menimpa yang ada dengan konten penuh yang disediakan. Ini tidak menambahkan atau menggabungkan. Jika jalur target sudah ada, Claude harus telah membaca file itu setidaknya sekali dalam percakapan saat ini sebelum menimpanya. Write ke file yang ada yang tidak dibaca gagal dengan kesalahan. Batasan ini tidak berlaku untuk file baru. Melihat file dengan Bash juga memenuhi persyaratan ini sesuai dengan aturan yang sama yang dijelaskan dalam Edit tool behavior. Untuk perubahan sebagian pada file yang ada, Claude menggunakan Edit daripada 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:
What tools do you have access to?
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