Claude Code menawarkan berbagai pengaturan untuk mengkonfigurasi perilakunya sesuai kebutuhan Anda. Anda dapat mengkonfigurasi Claude Code dengan menjalankan claude config di terminal Anda, atau perintah /config saat menggunakan REPL interaktif.

Hierarki konfigurasi

File settings.json yang baru adalah mekanisme resmi kami untuk mengkonfigurasi Claude Code melalui pengaturan hierarkis.

Pengaturan pengguna didefinisikan di ~/.claude/settings.json dan berlaku untuk semua proyek.

Pengaturan proyek disimpan di direktori proyek Anda di bawah .claude/settings.json untuk pengaturan bersama, dan .claude/settings.local.json untuk pengaturan proyek lokal. Claude Code akan mengkonfigurasi git untuk mengabaikan .claude/settings.local.json saat dibuat.

Untuk penerapan enterprise dari Claude Code, kami juga mendukung pengaturan kebijakan yang dikelola enterprise. Ini memiliki prioritas lebih tinggi daripada pengaturan pengguna dan proyek. Administrator sistem dapat menerapkan kebijakan ke /Library/Application Support/ClaudeCode/policies.json di macOS dan /etc/claude-code/policies.json di Linux dan Windows melalui WSL.

Example settings.json
{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl:*)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp"
  }
}

Urutan prioritas pengaturan

Pengaturan diterapkan berdasarkan urutan prioritas, dengan sumber yang lebih baru menimpa sumber sebelumnya:

  • Pengaturan pengguna
  • Pengaturan proyek bersama
  • Pengaturan proyek lokal
  • Argumen baris perintah
  • Kebijakan enterprise

Opsi konfigurasi

Claude Code mendukung konfigurasi global dan tingkat proyek.

Untuk mengelola konfigurasi Anda, gunakan perintah berikut:

  • Daftar pengaturan: claude config list
  • Lihat pengaturan: claude config get <key>
  • Ubah pengaturan: claude config set <key> <value>
  • Tambahkan ke pengaturan (untuk daftar): claude config add <key> <value>
  • Hapus dari pengaturan (untuk daftar): claude config remove <key> <value>

Secara default config mengubah konfigurasi proyek Anda. Untuk mengelola konfigurasi global Anda, gunakan flag --global (atau -g).

Konfigurasi global

Untuk mengatur konfigurasi global, gunakan claude config set -g <key> <value>:

KeyValueDescription
autoUpdaterStatusdisabled atau enabledAktifkan atau nonaktifkan pembaruan otomatis (default: enabled)
envJSON (contoh '{"FOO": "bar"}')Variabel lingkungan yang akan diterapkan ke setiap sesi
preferredNotifChanneliterm2, iterm2_with_bell, terminal_bell, atau notifications_disabledDi mana Anda ingin menerima notifikasi (default: iterm2)
themedark, light, light-daltonized, atau dark-daltonizedTema warna
verbosetrue atau falseApakah akan menampilkan output bash dan perintah lengkap (default: false)

Konfigurasi proyek

Kelola konfigurasi proyek dengan claude config set <key> <value> (tanpa flag -g):

KeyValueDescription
allowedToolsarray dari toolsTools mana yang dapat dijalankan tanpa persetujuan manual
ignorePatternsarray dari string globFile/direktori mana yang diabaikan saat menggunakan tools

Contoh:

# Izinkan npm test berjalan tanpa persetujuan
claude config add allowedTools "Bash(npm test)"

# Izinkan npm test dan sub-perintahnya berjalan tanpa persetujuan
claude config add allowedTools "Bash(npm test:*)"

# Instruksikan Claude untuk mengabaikan node_modules
claude config add ignorePatterns node_modules
claude config add ignorePatterns "node_modules/**"

Izin

Anda dapat mengelola izin tool Claude Code dengan /allowed-tools. UI ini menampilkan semua aturan izin dan file settings.json tempat mereka berasal.

  • Aturan Allow akan mengizinkan Claude Code menggunakan tool tertentu tanpa persetujuan manual lebih lanjut.
  • Aturan Deny akan mencegah Claude Code menggunakan tool tertentu. Aturan Deny memiliki prioritas lebih tinggi daripada aturan allow.

Aturan izin menggunakan format: Tool(optional-specifier).

Misalnya, menambahkan WebFetch ke daftar aturan allow akan mengizinkan penggunaan tool web fetch tanpa memerlukan persetujuan pengguna. Lihat daftar tools yang tersedia untuk Claude (gunakan nama dalam tanda kurung jika disediakan.)

Beberapa tools menggunakan spesifier opsional untuk kontrol izin yang lebih detail. Misalnya, aturan allow dengan WebFetch(domain:example.com) akan mengizinkan fetch ke example.com tetapi tidak ke URL lain.

Aturan Bash bisa berupa kecocokan yang tepat seperti Bash(npm run build), atau kecocokan awalan ketika diakhiri dengan :* seperti Bash(npm run test:*)

Aturan Read() dan Edit() mengikuti spesifikasi gitignore. Pola diselesaikan relatif terhadap direktori yang berisi .claude/settings.json. Untuk mereferensikan path absolut, gunakan //. Untuk path relatif terhadap direktori home Anda, gunakan ~/. Misalnya Read(//tmp/build_cache) atau Edit(~/.zshrc). Claude juga akan berusaha sebaik mungkin untuk menerapkan aturan Read dan Edit ke tools terkait file lainnya seperti Grep, Glob, dan LS.

Nama tool MCP mengikuti format: mcp__server_name__tool_name di mana:

  • server_name adalah nama server MCP seperti yang dikonfigurasi di Claude Code
  • tool_name adalah tool spesifik yang disediakan oleh server tersebut

Contoh lebih lanjut:

RuleDescription
Bash(npm run build)Cocok dengan perintah Bash yang tepat npm run build.
Bash(npm run test:*)Cocok dengan perintah Bash yang dimulai dengan npm run test. Lihat catatan di bawah tentang penanganan pemisah perintah.
Edit(~/.zshrc)Cocok dengan file ~/.zshrc.
Read(node_modules/**)Cocok dengan direktori node_modules apa pun.
mcp__puppeteer__puppeteer_navigateCocok dengan tool puppeteer_navigate dari server MCP puppeteer.
WebFetch(domain:example.com)Cocok dengan permintaan fetch ke example.com

Claude Code menyadari pemisah perintah (seperti &&) sehingga aturan kecocokan awalan seperti Bash(safe-cmd:*) tidak akan memberinya izin untuk menjalankan perintah safe-cmd && other-cmd

Opsi izin pembaruan otomatis

Ketika Claude Code mendeteksi bahwa tidak memiliki izin yang cukup untuk menulis ke direktori prefix npm global Anda (diperlukan untuk pembaruan otomatis), Anda akan melihat peringatan yang mengarah ke halaman dokumentasi ini. Untuk solusi detail masalah pembaruan otomatis, lihat panduan pemecahan masalah.

Direkomendasikan: Buat prefix npm baru yang dapat ditulis pengguna

# Pertama, simpan daftar paket global yang ada untuk migrasi nanti
npm list -g --depth=0 > ~/npm-global-packages.txt

# Buat direktori untuk paket global Anda
mkdir -p ~/.npm-global

# Konfigurasi npm untuk menggunakan path direktori baru
npm config set prefix ~/.npm-global

# Catatan: Ganti ~/.bashrc dengan ~/.zshrc, ~/.profile, atau file yang sesuai untuk shell Anda
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc

# Terapkan pengaturan PATH baru
source ~/.bashrc

# Sekarang instal ulang Claude Code di lokasi baru
npm install -g @anthropic-ai/claude-code

# Opsional: Instal ulang paket global sebelumnya di lokasi baru
# Lihat ~/npm-global-packages.txt dan instal paket yang ingin Anda pertahankan
# npm install -g package1 package2 package3...

Mengapa kami merekomendasikan opsi ini:

  • Menghindari modifikasi izin direktori sistem
  • Membuat lokasi khusus yang bersih untuk paket npm global Anda
  • Mengikuti praktik keamanan terbaik

Karena Claude Code sedang aktif dikembangkan, kami merekomendasikan pengaturan pembaruan otomatis menggunakan opsi yang direkomendasikan di atas.

Menonaktifkan pembaruan otomatis

Jika Anda lebih suka menonaktifkan pembaruan otomatis daripada memperbaiki izin, Anda dapat menggunakan:

claude config set -g autoUpdaterStatus disabled

Optimalkan pengaturan terminal Anda

Claude Code bekerja paling baik ketika terminal Anda dikonfigurasi dengan benar. Ikuti panduan ini untuk mengoptimalkan pengalaman Anda.

Shell yang didukung:

  • Bash
  • Zsh
  • Fish

Tema dan tampilan

Claude tidak dapat mengontrol tema terminal Anda. Itu ditangani oleh aplikasi terminal Anda. Anda dapat mencocokkan tema Claude Code dengan terminal Anda selama onboarding atau kapan saja melalui perintah /config

Pemisah baris

Anda memiliki beberapa opsi untuk memasukkan pemisah baris ke Claude Code:

  • Escape cepat: Ketik \ diikuti Enter untuk membuat baris baru
  • Pintasan keyboard: Tekan Option+Enter (Meta+Enter) dengan konfigurasi yang tepat

Untuk mengatur Option+Enter di terminal Anda:

Untuk Mac Terminal.app:

  1. Buka Settings → Profiles → Keyboard
  2. Centang “Use Option as Meta Key”

Untuk iTerm2 dan terminal VSCode:

  1. Buka Settings → Profiles → Keys
  2. Di bawah General, atur Left/Right Option key ke “Esc+”

Tips untuk pengguna iTerm2 dan VSCode: Jalankan /terminal-setup dalam Claude Code untuk mengkonfigurasi Shift+Enter secara otomatis sebagai alternatif yang lebih intuitif.

Pengaturan notifikasi

Jangan pernah melewatkan ketika Claude menyelesaikan tugas dengan konfigurasi notifikasi yang tepat:

Notifikasi bel terminal

Aktifkan peringatan suara ketika tugas selesai:

claude config set --global preferredNotifChannel terminal_bell

Untuk pengguna macOS: Jangan lupa untuk mengaktifkan izin notifikasi di System Settings → Notifications → [Aplikasi Terminal Anda].

Notifikasi sistem iTerm 2

Untuk peringatan iTerm 2 ketika tugas selesai:

  1. Buka Preferensi iTerm 2
  2. Navigasi ke Profiles → Terminal
  3. Aktifkan “Silence bell” dan “Send notification when idle”
  4. Atur penundaan notifikasi yang Anda inginkan

Perhatikan bahwa notifikasi ini khusus untuk iTerm 2 dan tidak tersedia di Terminal macOS default.

Menangani input besar

Ketika bekerja dengan kode ekstensif atau instruksi panjang:

  • Hindari penempelan langsung: Claude Code mungkin kesulitan dengan konten yang ditempel sangat panjang
  • Gunakan alur kerja berbasis file: Tulis konten ke file dan minta Claude untuk membacanya
  • Waspadai keterbatasan VS Code: Terminal VS Code sangat rentan terhadap pemotongan tempelan panjang

Mode Vim

Claude Code mendukung subset keybinding Vim yang dapat diaktifkan dengan /vim atau dikonfigurasi melalui /config.

Subset yang didukung meliputi:

  • Pengalihan mode: Esc (ke NORMAL), i/I, a/A, o/O (ke INSERT)
  • Navigasi: h/j/k/l, w/e/b, 0/$/^, gg/G
  • Pengeditan: x, dw/de/db/dd/D, cw/ce/cb/cc/C, . (ulangi)

Variabel lingkungan

Claude Code mendukung variabel lingkungan berikut untuk mengontrol perilakunya:

VariablePurpose
DISABLE_AUTOUPDATERAtur ke 1 untuk menonaktifkan pembaruan otomatis
DISABLE_BUG_COMMANDAtur ke 1 untuk menonaktifkan perintah /bug
DISABLE_COST_WARNINGSAtur ke 1 untuk menonaktifkan pesan peringatan biaya
DISABLE_ERROR_REPORTINGAtur ke 1 untuk tidak ikut serta dalam pelaporan kesalahan Sentry
DISABLE_TELEMETRYAtur ke 1 untuk tidak ikut serta dalam telemetri Statsig (perhatikan bahwa event Statsig tidak menyertakan data pengguna seperti kode, path file, atau perintah bash)
HTTP_PROXYTentukan server proxy HTTP untuk koneksi jaringan
HTTPS_PROXYTentukan server proxy HTTPS untuk koneksi jaringan
MCP_TIMEOUTTimeout dalam milidetik untuk startup server MCP
MCP_TOOL_TIMEOUTTimeout dalam milidetik untuk eksekusi tool MCP

Was this page helpful?