Bỏ qua để đến nội dung

Settings (settings.json)

Claude Code đọc cấu hình từ các file settings.json ở nhiều nơi khác nhau. Khi nhiều file cùng đặt một khoá, thứ tự ưu tiên (cao nhất thắng) là:

  1. Cấu hình cấp tổ chức (managed / policy) — do quản trị viên thiết lập, người dùng không ghi đè được.
  2. Cờ dòng lệnh khi chạy claude (ví dụ --model, --permission-mode).
  3. .claude/settings.local.json — cá nhân, chỉ máy này.
  4. .claude/settings.json — dự án, dùng chung cả team.
  5. ~/.claude/settings.json — cá nhân, áp dụng mọi dự án.
Vị trí Phạm vi Có nên commit vào git?
.claude/settings.local.json Cá nhân, chỉ máy này Không — thêm vào .gitignore
.claude/settings.json Dự án, dùng chung cho cả team
~/.claude/settings.json Toàn bộ máy của bạn, áp dụng mọi dự án Không áp dụng (nằm ngoài repo)
Cấu hình cấp tổ chức (managed) Do quản trị viên tổ chức thiết lập Không áp dụng (do IT triển khai)

Xem nhanh cấu hình đang thực sự áp dụng bằng /config (mở giao diện cấu hình) hoặc /doctor (chẩn đoán, liệt kê cả những giá trị bị bỏ qua do sai định dạng).

{
"permissions": {
"allow": ["Bash(npm run test:*)", "Bash(git status)"],
"deny": ["Bash(rm -rf *)", "Read(./.env)"]
},
"env": {
"NODE_ENV": "development"
}
}
  • permissions — quy tắc tự động cho phép/từ chối/hỏi lại cho từng loại hành động cụ thể (chạy lệnh, đọc/ghi file…), và defaultMode để đặt sẵn chế độ quyền hạn mặc định (default, acceptEdits, plan…).
  • env — biến môi trường áp dụng cho mọi phiên Claude Code chạy trong thư mục này.
  • hooks — script chạy tự động trước/sau các sự kiện nhất định (xem Hooks).
  • model — model mặc định sử dụng cho phiên.
  • statusLine — tuỳ biến thanh trạng thái hiển thị trong terminal.
  • editorMode — bật chế độ soạn thảo kiểu vim ("vim") trong ô nhập.
  • autoMemoryEnabled — bật/tắt auto memory (mặc định bật).
{
"permissions": {
"allow": ["Bash(npm run lint)", "Bash(npm run test *)"],
"deny": ["Bash(curl *)", "Read(./.env)", "Read(./secrets/**)"],
"defaultMode": "acceptEdits"
}
}

Cú pháp quy tắc theo dạng Tool(mẫu-lệnh) — ví dụ Bash(npm run test:*) cho phép mọi lệnh bắt đầu bằng npm run test:, Read(./secrets/**) chặn đọc mọi file trong thư mục secrets/.