Langsung ke konten utama
Code Mode mengubah cara Claude menggunakan tool miliknya. Tanpa Code Mode, Claude meminta panggilan tool seperti Bash, Read, atau Edit secara langsung dan membaca setiap hasilnya sebelum memutuskan apa yang harus dilakukan selanjutnya. Dengan Code Mode, Claude menulis sepotong JavaScript yang melakukan panggilan tool tersebut, dan Claude Code menjalankan kode itu di sesi Anda.
Code Mode bersifat eksperimental dan nonaktif secara default. Fitur ini dapat berubah atau dihapus di rilis mana pun. Untuk memberikan masukan, jalankan /feedback.

Cara kerja Code Mode

Dalam sesi Code Mode, Anda tetap mendeskripsikan tugas Anda dalam sebuah prompt, dan Claude menulis JavaScript untuk melaksanakannya. Satu potong kode dapat menjalankan perintah secara paralel, menggunakan satu hasil dalam panggilan berikutnya, dan mengembalikan bagian output yang perlu dibaca oleh Claude. Misalnya, jika Anda meminta Claude untuk menaikkan batas retry, Claude mungkin menulis kode ini untuk menemukan file, mengeditnya, dan menjalankan pengujian. Baris terakhir mengembalikan path file dan output pengujian kepada Claude:
Dalam percakapan, Anda melihat panggilan tool, seperti diff dari edit tersebut, dan bukan kodenya. Untuk membaca kode, tekan Ctrl+O untuk membuka penampil transkrip. Setiap potong kode muncul di sana sebagai baris Code yang diciutkan, dengan petunjuk cara memperluasnya.

Kapan menggunakan Code Mode

Cobalah Code Mode pada tugas yang memerlukan banyak panggilan tool yang saling terkait, seperti:
  • Perubahan yang berulang di banyak file
  • Pencarian yang hasilnya perlu difilter sebelum Claude membacanya
  • Beberapa perintah independen yang dapat berjalan bersamaan

Keterbatasan Code Mode

Sebelum Anda mengaktifkan Code Mode, pastikan Anda dapat menerima batasan berikut:

Persyaratan

  • Versi: Claude Code v2.1.323 atau yang lebih baru, di salah satu saluran rilis. Versi yang lebih lama dimulai tanpa Code Mode, dengan atau tanpa alasan it isn't open to your account yet
  • Akun: langganan Claude atau akun Console. Anda tidak dapat menggunakan Code Mode melalui gateway, Amazon Bedrock, Claude Platform on AWS, Agent Platform dari Google Cloud, atau Microsoft Foundry
  • Organisasi: organisasi Anda tidak menggunakan konfigurasi HIPAA maupun zero data retention
  • Model: Claude Opus 5.5, Sonnet 5.5, Haiku 5.5, atau Fable 5.2
  • Surface: sesi claude interaktif di terminal. Code Mode tidak berfungsi dengan -p, Agent SDK, panel VS Code, aplikasi Desktop, atau sesi cloud
  • Instalasi: build native dari Claude Code
  • Windows: Git for Windows sudah terinstal
Anda juga tidak dapat memulai Code Mode dengan beberapa pengaturan tertentu aktif, seperti API key helper, tim agent, ekspor OpenTelemetry, atau DISABLE_TELEMETRY. Untuk perbaikan masing-masing, lihat Code Mode tidak dimulai.

Mencoba Code Mode

Aktifkan Code Mode, berikan tugas kepada Claude, dan lihat kode yang ditulis Claude.
1

Periksa versi Anda

Jalankan claude --version. Jika versinya lebih lama dari v2.1.323, jalankan claude update. Jika Anda berada di saluran stable dan pembaruan tidak mencapai v2.1.323, tunggu hingga stable menyusul atau beralih ke latest.
2

Mulai Claude Code dengan Code Mode aktif

Atur environment variable CLAUDE_CODE_EXPERIMENTAL_CODE_MODE ke 1. Untuk mencoba Code Mode, atur di shell Anda. Untuk mengaktifkan Code Mode di setiap sesi baru, atur di pengaturan pengguna Anda.
3

Konfirmasi bahwa Anda menginginkan Code Mode

Claude Code meminta Anda untuk mengonfirmasi sebelum sesi Code Mode pertama Anda. Pilih Yes, turn on Code Mode. Claude Code dimulai ulang dan menampilkan baris ini di dekat bagian atas sesi:
Jika Anda melihat baris yang berbeda atau tidak ada baris sama sekali, lihat Code Mode tidak dimulai.
4

Berikan Claude tugas dengan banyak panggilan tool

Di proyek yang Anda kenal, kirim prompt seperti ini:
5

Baca kode yang ditulis Claude

Tekan Ctrl+O dan perluas baris Code untuk melihat JavaScript di balik panggilan tool. Tekan Ctrl+O lagi untuk kembali ke percakapan.
Untuk melanjutkan sesi Code Mode nanti, biarkan CLAUDE_CODE_EXPERIMENTAL_CODE_MODE tetap diatur ke 1 saat Anda menjalankan claude --continue atau claude --resume. Dengan Code Mode nonaktif, Claude Code menolak melanjutkan sesi tersebut. Sesi yang Anda mulai tanpa Code Mode dilanjutkan tanpa Code Mode, bahkan jika variabel tersebut diatur.

Menonaktifkan Code Mode

Hapus CLAUDE_CODE_EXPERIMENTAL_CODE_MODE dari shell Anda dan dari ~/.claude/settings.json, lalu mulai sesi baru. Anda juga dapat mempertahankan variabel tersebut dan mengubah nilainya menjadi 0 di salah satu tempat. Dengan 0 di satu tempat, Code Mode tetap nonaktif meskipun Anda mengatur 1 di tempat lainnya.

Memblokir Code Mode untuk organisasi Anda

Tambahkan CLAUDE_CODE_EXPERIMENTAL_CODE_MODE dengan nilai 0 ke pengaturan terkelola Anda agar tidak ada seorang pun di organisasi Anda yang dapat menggunakan Code Mode:
Pengguna yang sedang berada dalam sesi Code Mode tetap berada di dalamnya hingga mereka keluar atau memulai ulang Claude Code. Setelah itu, pengguna Anda memulai tanpa Code Mode dan tidak dapat melanjutkan sesi Code Mode mereka selama 0 tersebut berlaku. Anda tidak dapat mengaktifkan Code Mode untuk pengguna Anda dari pengaturan terkelola.

Izin dan kode yang berjalan lama

Mode izin Anda menentukan bagaimana kode Claude diperiksa dan apakah Anda dapat berbicara dengan Claude saat kode berjalan.

Pemeriksaan izin

Setiap panggilan tool yang dilakukan kode Claude melewati aturan izin deny dan ask Anda serta hook PreToolUse Anda. Anda tidak perlu mengubah aturan atau matcher untuk tool seperti Bash. Selain aturan dan hook, sebuah pengklasifikasi meninjau kode dalam auto mode, dan Anda menjawab permintaan izin dalam mode yang meminta persetujuan:
  • Auto mode: pengklasifikasi meninjau setiap potong kode sebelum dijalankan, bukan setiap panggilan tool. Pengklasifikasi tidak melihat nilai yang dihitung saat runtime, seperti path yang diambil dari output pencarian, jadi pertahankan aturan atau hook untuk panggilan yang harus Anda kendalikan. Anda tetap dapat diminta izin ketika kode baru dimulai saat kode sebelumnya masih berjalan
  • Mode izin lainnya: kode dimulai tanpa tinjauan, dan Anda diminta izin untuk setiap panggilan tool yang akan meminta izin Anda dalam mode tersebut
Untuk memeriksa kode itu sendiri, tulis hook PreToolUse yang mencocokkan REPL, yaitu tool yang menjalankan kode Claude, dan baca JavaScript dari tool_input.code.
Aturan Bash mencocokkan teks perintah, sehingga Claude dapat menjalankan perintah yang ditolak dalam bentuk yang tidak cocok dengan aturan tersebut, dengan atau tanpa Code Mode. Untuk batasan yang tidak bergantung pada teks perintah, lihat sandboxing.

Kode yang berjalan lama

Saat kode menjalankan build atau pengujian yang lama, Claude menunggunya atau membiarkannya berlanjut di latar belakang:
  • Menunggu: Claude menjawab setelah kode selesai, dan kode berhenti setelah sepuluh menit, termasuk waktu yang Anda habiskan di permintaan izin
  • Latar belakang: Anda dapat terus berbicara dengan Claude, dan kode dapat berjalan hingga dua jam
Untuk kode latar belakang, mulai sesi Anda dalam auto mode atau mode bypassPermissions. Jika Claude masih menunggu, periksa mode Anda saat ini dan cara Anda memulai sesi:
  • Anda beralih ke mode lain: tekan Shift+Tab hingga Anda kembali ke mode awal Anda
  • Anda memulai dalam mode lain, atau memilih sesi dari daftar claude --resume: jika auto mode tersedia bagi Anda, keluar, lalu jalankan claude --continue --permission-mode auto dengan Code Mode aktif
  • Anda meneruskan nama tool ke --tools: mulai lagi dalam auto mode tanpa flag tersebut

Pemecahan masalah

Code Mode tidak dimulai

Code Mode (experimental) isn't available di dekat bagian atas sesi berarti Claude Code dimulai tanpa Code Mode. Alasannya mengikuti di baris yang sama, dan /status juga menampilkannya. Temukan alasannya di tabel ini, lakukan perubahan, dan mulai sesi baru. Untuk alasan yang tidak tercantum, periksa persyaratan. Jika Anda tidak melihat baris apa pun tentang Code Mode, jalankan claude --version. Jika versi Anda lebih lama dari v2.1.323, lakukan pembaruan. Lalu pastikan CLAUDE_CODE_EXPERIMENTAL_CODE_MODE bernilai 1 di shell atau pengaturan pengguna Anda, dan hapus 0 apa pun dari tempat-tempat tersebut dan dari file --settings mana pun.

Permintaan izin dengan hitung mundur

Ketika Claude memulai kode tambahan dalam auto mode saat kode sebelumnya masih berjalan, kode sebelumnya kehilangan tinjauan pengklasifikasinya. Claude Code kemudian menanyakan kepada Anda tentang sisa panggilan kode sebelumnya yang memerlukan tinjauan. Tanpa IDE yang terhubung, permintaan izin tersebut menampilkan hitung mundur:
Jawab sebelum hitung mundur berakhir. Jika tidak, panggilan tersebut ditolak, dan panggilan berikutnya yang akan menampilkan hitung mundur ditolak tanpa permintaan izin. Untuk melihat permintaan izin lagi, kirim pesan kepada Claude.

Panggilan tool ditolak oleh hook

Jika Claude melaporkan panggilan tool yang ditolak, mintalah teks errornya. Error berikut berarti hook PreToolUse tidak memberikan keputusan, yang menolak panggilan tersebut bahkan ketika onFailure tidak diatur:
  • the hook failed: pada panggilan dari kode Claude, hook Anda tidak dapat dimulai, dihentikan paksa, keluar dengan kode 126, 127, atau kode di atas 128, atau mengembalikan error HTTP atau output yang tidak valid. Perbaiki hook tersebut
  • the hook did not finish: hook Anda mengalami timeout pada panggilan dari kode Claude, atau pada panggilan tool lainnya setelah Claude menjalankan kode dalam sesi tersebut. Naikkan timeout hook tersebut
Untuk membiarkan panggilan tetap berjalan ketika hook command atau http gagal atau mengalami timeout, atur "onFailure": "continue" pada hook tersebut. Jika hook command keluar dengan kode biasa seperti 1, panggilan tetap berjalan kecuali jika Anda mengatur "onFailure": "block".

Output kode ditahan oleh hook

Jika Claude melaporkan alasan pemblokiran dari hook di tempat yang seharusnya berisi output dari kode Claude, periksa hook UserPromptSubmit Anda. Ketika kode dapat berjalan di latar belakang, hook command, http, dan mcp_tool pada event tersebut juga berjalan pada output kode. Untuk membiarkan output lolos, ubah hook tersebut agar tidak memblokir ketika source dalam inputnya adalah poll_event.