Claude Code khá hay ở chỗ mỗi lần AI muốn chạy lệnh bash, đọc/ghi file hay gọi web thì đều hỏi xác nhận trước.
An toàn thì có, nhưng với project lớn hoặc lúc đang debug liên tục thì việc bấm confirm nhiều lần khá mất flow và tốn thời gian.
Cú pháp ToolName(*) nghĩa là cho phép toàn bộ arguments.
Ví dụ muốn giới hạn hơn:
"Bash(git *)"
→ chỉ auto-approve các lệnh liên quan đến git.
để Claude Code restart session và nhận config mới.
Dùng cho môi trường dev cá nhân thì khá tiện, nhưng không nên bật trên server production hoặc khi dùng với model / workflow chưa đủ tin cậy.
An toàn thì có, nhưng với project lớn hoặc lúc đang debug liên tục thì việc bấm confirm nhiều lần khá mất flow và tốn thời gian.
Cách xử lý
Có thể cấu hình quyền auto-approve bằng cách thêm permissions.allow vào file .claude/settings.json trong thư mục project: Code:
{
"permissions": {
"allow": [
"Bash(*)",
"Read(*)",
"Write(*)",
"Edit(*)",
"Glob(*)",
"Grep(*)",
"WebFetch(*)",
"WebSearch(*)",
"Agent(*)",
"Task(*)"
]
}
} Ý nghĩa từng pattern
| Pattern | Ý nghĩa |
|---|---|
| Bash(*) | Tự động cho phép mọi lệnh shell |
| Read(*) | Đọc file không cần hỏi |
| Write(*), Edit(*) | Tạo và chỉnh sửa file không cần xác nhận |
| Agent(*) | Cho phép spawn subagent tự động |
Cú pháp ToolName(*) nghĩa là cho phép toàn bộ arguments.
Ví dụ muốn giới hạn hơn:
"Bash(git *)"
→ chỉ auto-approve các lệnh liên quan đến git.
Phạm vi áp dụng
- Project-level: .claude/settings.json
→ chỉ áp dụng cho project hiện tại - Global: ~/.claude/settings.json
→ áp dụng cho toàn bộ project trên máy
Sau khi chỉnh xong
Lưu file rồi chạy:/clearđể Claude Code restart session và nhận config mới.
Lưu ý bảo mật
Bash(*) là quyền mạnh nhất vì AI có thể chạy bất kỳ lệnh shell nào mà không hỏi lại.Dùng cho môi trường dev cá nhân thì khá tiện, nhưng không nên bật trên server production hoặc khi dùng với model / workflow chưa đủ tin cậy.