Claude Code auto mode thành mặc định từ 14/8/2026
Từ 14/8/2026, auto mode là mặc định cho session mới trên Pro, Max và Team. Xem từng permission mode và chọn cách chạy an toàn trên VPS không thể theo dõi.
Chế độ auto thay đổi gì vào ngày 14 August 2026
Claude Code auto mode chạy các tool call mà không dừng lại để hỏi bạn, đồng thời gửi từng action đến một classifier model riêng để kiểm tra trước. Từ ngày 14 August 2026, đây sẽ là mode mặc định khi bắt đầu session mới trên các gói Pro, Max và Team. Bạn có thể chuyển mode bất kỳ lúc nào. Default bạn đã tự đặt sẽ không bị ghi đè.
Documentation mô tả thay đổi này như sau:
Starting August 14, 2026, auto mode becomes the default permission mode for new sessions on Pro, Max, and Team plans. You can switch modes at any time. A default you set yourself stays in place unless you accept the one-time switch prompt, and a default your organization manages is unchanged.
Hai điều khoản trong đó quan trọng hơn chính ngày thay đổi. Một defaultMode bạn đặt trong file settings của mình sẽ được giữ nguyên. Default do tổ chức của bạn triển khai thông qua managed settings cũng được giữ nguyên. Bài announcement cho biết thêm rằng auto mode vẫn là tùy chọn trên các gói Enterprise và với các account dùng API trong giai đoạn đầu của đợt rollout.
Nếu bạn chạy Claude Code trên VPS (virtual private server), nên đọc kỹ thay đổi này trước khi nó được áp dụng. Permission prompt là một checkpoint cần có người ngồi trước bàn phím để xử lý. Trên một máy remote, thường bạn không có mặt ở đó, nên mode mà session bắt đầu sẽ là mode được giữ trong nhiều giờ.
Các chế độ quyền của Claude Code, từ nhiều giám sát nhất đến ít nhất
Có sáu chế độ. Tên ở đầu mỗi dòng là giá trị bạn ghi trong settings hoặc truyền vào --permission-mode.
default: Claude hỏi trước mỗi lần dùng tool mới. Các thao tác đọc bên trong working directory vẫn chạy mà không cần prompt. CLI (command line interface) hiển thị chế độ này là Manual và chấp nhậnmanuallàm alias từ Claude Code v2.1.200.plan: Claude đọc file và chạy command để khảo sát, nhưng không chỉnh sửa source của bạn. Các thao tác chỉnh sửa vẫn bị chặn cho đến khi bạn phê duyệt plan.acceptEdits: thao tác chỉnh sửa file chạy mà không cần prompt, cùng với các filesystem commandmkdir,touch,rm,rmdir,mv,cpvàsed. Chế độ này chỉ áp dụng cho các path bên trong working directory hoặcadditionalDirectoriescủa bạn. Mọi shell command khác vẫn yêu cầu prompt.auto: mọi thao tác đều chạy, trước tiên classifier sẽ kiểm tra từng action. Các ruleasktường minh vẫn buộc phải hiện prompt.dontAsk: Claude Code tự động từ chối mọi thao tác đáng lẽ phải hiện prompt. Chỉ các ruleallowcủa bạn, các Bash command read-only tích hợp sẵn và các lần gọi hookPreToolUseđược phê duyệt mới chạy. Session không bao giờ chờ input.bypassPermissions: bỏ qua prompt và safety check, bao gồm cả thao tác ghi vào các path được bảo vệ như.gitvà.claude.
Nhấn Shift+Tab trong session để chuyển lần lượt từ default sang acceptEdits rồi sang plan. Status bar hiển thị chế độ hiện tại, chẳng hạn như ⏵⏵ auto mode on hoặc ⏸ manual mode on màu xám. Các chế độ khác không nằm trong vòng chuyển đổi này theo mặc định. auto được thêm vào vòng này sau khi account của bạn đáp ứng yêu cầu. bypassPermissions chỉ được thêm vào khi session được khởi động bằng --permission-mode bypassPermissions hoặc --dangerously-skip-permissions. dontAsk không bao giờ xuất hiện trong vòng này, nên hãy đặt chế độ đó bằng claude --permission-mode dontAsk.
Auto mode cũng cần model mới, đây thường là lý do chính khiến chế độ này hoàn toàn không xuất hiện. Tính đến August 2026, tài liệu liệt kê Claude Opus 4.6 trở lên, Sonnet 4.6 trở lên và Fable 5 trên Anthropic API; tài liệu cũng nói các model cũ hơn như Sonnet 4.5 không được hỗ trợ trên bất kỳ provider nào. Nếu Claude Code báo auto mode không khả dụng, một trong các yêu cầu đó chưa được đáp ứng. Đây không phải sự cố tạm thời, nên chờ cũng không khắc phục được.
Hai control có hiệu lực trong mọi chế độ, kể cả bypassPermissions: các rule deny và các rule ask tường minh. Đây là những cơ chế bạn vẫn kiểm soát, bất kể session khởi động ở chế độ nào.
Những gì bộ phân loại chế độ auto chặn
Bộ phân loại là một model thứ hai đọc action đang chờ thực hiện và quyết định action đó có phù hợp với yêu cầu của bạn hay không. Tài liệu mô tả nhiệm vụ của nó trong một câu:
Một model bộ phân loại riêng sẽ kiểm tra các action trước khi chạy, chặn mọi action vượt quá yêu cầu của bạn, nhắm đến hạ tầng không được nhận diện hoặc có vẻ bị nội dung độc hại mà Claude đã đọc chi phối.
Mặc định sẽ chặn các nhóm action mà server operator thường gặp nhất:
- Tải xuống và thực thi code, chẳng hạn như
curl | bash - Deploy và migration trên production
- Force push
- Sửa đổi hạ tầng dùng chung
- Mở tunnel hoặc reverse shell khiến một service local có thể truy cập từ public Internet
- In credential hoặc token đang hoạt động vào transcript hoặc một file
Mặc định cho phép:
- Thao tác với file local trong working directory
- Cài các dependency được khai báo trong lock file hoặc manifest
- Gửi HTTP request chỉ đọc
- Push lên bất kỳ branch nào của repository bạn đang làm việc
Không nên dựa vào phần tóm tắt như trên. Chạy claude auto-mode defaults để in đầy đủ danh sách rule ở dạng JSON, rồi đọc bộ rule đi kèm với version bạn đã cài.
Có 2 giới hạn được ghi rõ cần lưu ý trước khi dựa vào cơ chế này. Thứ nhất, bộ phân loại nhìn thấy message của bạn, các tool call và nội dung CLAUDE.md; tool result bị loại bỏ, nên text bên trong file hoặc web page mà Claude đọc không thể tác động trực tiếp đến bộ phân loại. Thứ hai, khi bộ phân loại chặn một action 3 lần liên tiếp hoặc 20 lần trong một session, chế độ auto sẽ tạm dừng và Claude Code quay lại yêu cầu bạn xác nhận. Các ngưỡng này không cấu hình được. Trong chế độ non-interactive với flag -p, không có ai để hệ thống yêu cầu xác nhận, nên các lần bị chặn liên tiếp sẽ hủy session.
Hành vi thứ hai đặc biệt gây lỗi trên máy remote. Một lần chạy unattended chạm ngưỡng sẽ dừng lại và chờ người không có mặt trước terminal. Thu hẹp phạm vi công việc mà agent được phép thực hiện là phần còn lại của cách xử lý. Một skill hướng agent đến thay đổi nhỏ nhất nhưng vẫn đáp ứng yêu cầu giúp session không đi lệch sang các action quá rộng khiến bộ phân loại phải chặn.
Vị trí của các mode trong settings.json
Toàn bộ nội dung ở trên là một object trong file settings.
{
"permissions": {
"defaultMode": "auto",
"allow": [
"Bash(npm run test *)",
"Bash(git status)"
],
"ask": [
"Bash(git push *)",
"Bash(docker compose up *)"
],
"deny": [
"Read(./.env)",
"Read(./secrets/**)",
"Bash(curl *)"
]
}
}Các rule được đánh giá theo thứ tự: deny, rồi ask, rồi allow. Kết quả được quyết định bởi match đầu tiên trong thứ tự này. Một rule cụ thể hơn không ghi đè được rule rộng hơn nếu rule rộng hơn xuất hiện trước. Rule deny cho Bash(aws *) sẽ chặn aws s3 ls ngay cả khi bạn cũng đã allow đúng command đó. Vì vậy, rule deny không thể có ngoại lệ.
ask là loại rule phát huy tác dụng trong auto mode. Auto mode bỏ qua prompt thường lệ. Rule ask sẽ bật lại prompt cho command cụ thể mà bạn muốn người dùng xác nhận. Command deploy của bạn nên đặt ở đây. Bash(git push *) cũng vậy nếu bạn muốn có một checkpoint trước khi code rời khỏi máy. Lưu các file credential trong deny là phần còn lại của cách làm này. Cách này kết hợp với việc giữ credential ngoài phạm vi truy cập của agent ngay từ đầu.
Các file settings, theo thứ tự precedence từ thấp đến cao:
~/.claude/settings.json: settings của user, được áp dụng trong mọi project..claude/settings.json: settings của project, được commit vào repository..claude/settings.local.json: settings riêng của bạn cho một repository, được git-ignore.- Managed settings, do administrator triển khai. Trên Linux, file đó là
/etc/claude-code/managed-settings.json. Không có gì ghi đè được permission rule được quản lý, kể cả flag trên command line.
Có một trường hợp dễ nhầm với nguyên nhân đã được tài liệu hóa. defaultMode: "auto" bị bỏ qua khi đến từ .claude/settings.json hoặc .claude/settings.local.json, kể từ Claude Code v2.1.142, để repository không thể tự cấp auto mode bằng cách ship một file settings. Nếu đặt dòng đó ở đó, session sẽ khởi động ở mode default mà không in lỗi ở bất kỳ đâu. Hãy chuyển dòng đó sang ~/.claude/settings.json. Chạy /permissions để liệt kê mọi rule đang active cùng với file chứa rule đó.
Hai switch dùng để tắt một mode
Administrator có 2 kill switch. Cả hai đều nhận chuỗi "disable" thay vì boolean.
{
"permissions": {
"disableAutoMode": "disable",
"disableBypassPermissionsMode": "disable"
}
}Tài liệu nêu rõ vị trí đặt các switch này:
Để ngăn không cho sử dụng modebypassPermissionshoặcauto, hãy đặtpermissions.disableBypassPermissionsModehoặcpermissions.disableAutoModethành"disable"trong bất kỳ settings file nào. Các tùy chọn này hữu ích nhất trong managed settings, nơi người dùng không thể ghi đè.
disableAutoMode loại auto khỏi chu kỳ Shift+Tab và từ chối --permission-mode auto khi khởi động. disableBypassPermissionsMode thực hiện chức năng tương tự đối với bypass mode và hoạt động từ bất kỳ scope nào. Vì vậy, bạn có thể đặt nó trong ~/.claude/settings.json của mình để tự khóa khỏi một mode mà bạn không muốn vô tình dùng lúc 2am trên live server. Trên máy chủ có người khác sử dụng, hãy đặt cả hai tùy chọn trong /etc/claude-code/managed-settings.json, vì user settings file thuộc về người dùng, còn managed settings thì không.
Vì sao auto mode trên VPS cần có ranh giới isolation
Classifier đánh giá từng action riêng lẻ. Nó không kiểm soát những gì action đã được phê duyệt sẽ thực hiện tiếp theo. Tài liệu nêu rõ ranh giới này:
Classifier là cơ chế kiểm soát theo từng action, không phải isolation boundary. Vì vậy, isolation boundary vẫn bổ sung defense in depth cho các lần chạy không có người giám sát, và không bắt buộc theo cách bắt buộc đối với --dangerously-skip-permissions.
Vì vậy, cách kết hợp phù hợp cho một máy chủ từ xa là auto mode cộng với một environment mà bạn chấp nhận mất, không phải bypassPermissions cộng với hy vọng. Bypass mode chỉ được tài liệu hóa cho các environment đã được isolation: container, virtual machine hoặc dev container không có quyền truy cập Internet, nơi Claude Code không thể làm hỏng host system. VPS đang chạy database và reverse proxy của bạn không thuộc bất kỳ nhóm nào trong số đó.
Trên server, ba việc sau có tác dụng lớn nhất. Chạy Claude Code bằng user thông thường, tuyệt đối không chạy bằng root. Cấp cho user đó một working directory và không cho phép đọc thêm bất kỳ dữ liệu quan trọng nào. Rebuild máy thay vì repair máy. Đây là lý do nên dùng một VM dùng một lần rồi xóa sau mỗi job. Các chi tiết hardening cho những việc trên, từ tạo user đến cấu hình firewall rules, được trình bày trong hướng dẫn đầy đủ về safety khi chạy Claude Code trên VPS, nên không lặp lại ở đây.
Claude Code tự thực thi quy tắc không chạy bằng root. Trên Linux và macOS, nó từ chối khởi động ở bypass mode khi chạy dưới sudo hoặc khi chạy bằng root:
--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasonsKiểm tra này được bỏ qua bên trong sandbox được nhận diện. Vì vậy, cách được tài liệu khuyến nghị cho công việc tự động trong container là dùng dev container chạy Claude Code bằng user không phải root. Nếu bạn điều khiển agent từ điện thoại hoặc laptop qua SSH, lập luận tương tự cũng áp dụng cho một phiên Claude Code chạy lâu được giữ mở trong tmux: trong thời gian session chạy, không có ai theo dõi prompt.
Thiết lập Bash sandbox trên Ubuntu VPS
Sandbox tích hợp giới hạn quyền truy cập filesystem và network của mọi lệnh Bash mà Claude chạy. Hệ điều hành cũng áp dụng giới hạn đó cho các child process. Trên Linux, sandbox cần 2 package.
sudo apt-get install bubblewrap socatKhởi động Claude Code và chạy /sandbox. Panel mở ra với tab Mode và tab Overrides, cùng tab Dependencies liệt kê các dependency còn thiếu. Việc kiểm tra dependency chạy khi khởi động. Vì vậy, hãy restart Claude Code sau khi cài package; nếu không, panel vẫn báo các package đó đang thiếu.
Trên Ubuntu 24.04 trở lên, policy AppArmor mặc định ngăn bubblewrap tạo user namespace cần thiết. Vì vậy, sandbox không thể khởi động. Kiểm tra xem máy của bạn có bị ảnh hưởng không:
sysctl kernel.apparmor_restrict_unprivileged_usernsNếu thấy 0 hoặc lỗi cho biết key không tồn tại thì không cần làm gì. Nếu thấy 1 thì bwrap cần profile riêng:
sudo tee /etc/apparmor.d/bwrap > /dev/null <<'EOF'
abi <abi/4.0>,
include <tunables/global>
profile bwrap /usr/bin/bwrap flags=(unconfined) {
userns,
include if exists <local/bwrap>
}
EOF
sudo systemctl reload apparmorProfile này áp dụng cho chính bwrap, không áp dụng cho các lệnh mà nó chạy bên trong sandbox. Sau đó, thu hẹp boundary trong settings:
{
"sandbox": {
"enabled": true,
"filesystem": {
"denyRead": ["~/"],
"allowRead": ["."]
},
"network": {
"allowedDomains": ["github.com", "*.npmjs.org"]
}
}
}Block đó phải nằm trong .claude/settings.json của project, vì chỉ settings của project mới khiến . trỏ đến root của project. Nếu đặt các dòng giống vậy trong ~/.claude/settings.json thì . sẽ trỏ đến ~/.claude thay thế. Khi đó, rule denyRead sẽ tiếp tục chặn các file của project, và mọi lệnh đều không thể đọc code mà nó được yêu cầu chỉnh sửa.
Cần biết sandbox không bao phủ những gì. Sandbox giới hạn Bash và các child process của Bash. Các file tool tích hợp chạy bên trong process của Claude Code. Các server MCP (model context protocol) và hook là những process riêng, chạy không bị giới hạn trên host. Để đặt tất cả chúng sau cùng một boundary, hãy chạy toàn bộ process Claude Code bên trong container, virtual machine hoặc package @anthropic-ai/sandbox-runtime. Tại thời điểm viết tài liệu này, package đó vẫn là bản beta research preview.
Nên dùng chế độ nào cho từng kiểu thiết lập?
Một repository riêng trên laptop của bạn
Dùng auto, kèm các quy tắc ask cho những hành động bạn muốn được hỏi xác nhận. Bạn đang trực tiếp dùng bàn phím, cơ chế fallback của classifier thực sự có thể hỏi bạn, và thiệt hại chỉ giới hạn trong một máy do bạn kiểm soát. Đây là trường hợp mà giá trị mặc định ngày 14 August được thiết kế cho.
VPS dùng chung
Dùng auto cho từng user, đặt trong ~/.claude/settings.json riêng của từng user, trên một máy mà account chạy Claude Code không phải root và không thể đọc dữ liệu công việc của các user khác. Triển khai disableBypassPermissionsMode dưới dạng "disable" trong /etc/claude-code/managed-settings.json, cùng với các quy tắc deny để bảo vệ những path dùng chung. Máy dùng chung là trường hợp rõ nhất cho thấy bypassPermissions là sai, vì boundary cô lập mà chế độ đó giả định không tồn tại: các tenant khác nằm bên trong boundary đó.
CI và các session không có người giám sát
Dùng dontAsk với danh sách allow cụ thể gồm các command mà job cần chạy. Auto-deny là failure mode đúng khi không có người nào xem prompt. Auto mode cũng chạy non-interactive, nhưng các lần classifier block liên tiếp sẽ abort một session -p, khiến job fail giữa chừng khi công việc mới hoàn thành một phần. Chỉ dùng bypassPermissions cho container hoặc virtual machine được rebuild từ image, và không dùng trên host cũng đang chạy những thứ bạn cần bảo vệ.
FAQ
Khi nào auto mode trở thành chế độ mặc định trong Claude Code?
Từ ngày 14 August 2026, áp dụng cho các session mới trên gói Pro, Max và Team. Tài liệu cũng nêu rằng bạn có thể chuyển chế độ bất kỳ lúc nào, giá trị mặc định do bạn tự đặt sẽ được giữ nguyên trừ khi bạn chấp nhận prompt chuyển đổi một lần, còn giá trị mặc định do tổ chức quản lý sẽ không thay đổi. Thông báo cho biết auto mode vẫn là tùy chọn đối với gói Enterprise và các account sử dụng API trong giai đoạn đầu của đợt triển khai. Kiểm tra session hiện đang ở chế độ nào bằng status bar; ở auto mode, status bar hiển thị ⏵⏵ auto mode on.
Có nên dùng auto mode hay bypassPermissions trên VPS không?
Nên dùng auto mode cùng với một ranh giới isolation. Classifier kiểm tra từng action trước khi chạy, nhưng tài liệu nêu rõ đây là cơ chế kiểm soát theo từng action, không phải ranh giới isolation. Vì vậy, một run không có người giám sát vẫn nên chạy trong container, virtual machine hoặc một máy chủ mà bạn sẵn sàng rebuild. bypassPermissions bỏ qua hoàn toàn các bước kiểm tra và chỉ được tài liệu khuyến nghị cho môi trường đã isolation. Trên Linux, Claude Code không khởi động ở chế độ này khi chạy dưới root và in ra --dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons.
Làm cách nào để ngăn mọi người trên server dùng auto mode hoặc bypass mode?
Đặt permissions.disableAutoMode và permissions.disableBypassPermissionsMode thành chuỗi "disable" trong /etc/claude-code/managed-settings.json. Managed settings có mức ưu tiên cao hơn mọi scope khác, vì vậy không file settings nào của user và không flag nào trên command line có thể ghi đè chúng. disableAutoMode loại auto khỏi chu kỳ Shift+Tab và từ chối --permission-mode auto khi khởi động. disableBypassPermissionsMode cũng hoạt động trong mọi scope, nên một user có thể đặt nó trong ~/.claude/settings.json của mình.
Vì sao thiết lập defaultMode: "auto" của tôi bị bỏ qua?
Vì nó nằm trong sai file. Từ Claude Code v2.1.142, defaultMode: "auto" sẽ bị bỏ qua nếu được đặt trong .claude/settings.json hoặc .claude/settings.local.json, nhằm ngăn repository tự cấp auto mode bằng cách đưa kèm một file settings. Session khởi động ở chế độ default và không in lỗi. Chuyển thiết lập sang ~/.claude/settings.json, sau đó chạy /permissions để xác nhận mỗi rule đang hoạt động được lấy từ file nào. Nếu auto mode vẫn không khả dụng, hãy kiểm tra yêu cầu về model: các model cũ hơn như Sonnet 4.5 không được hỗ trợ trên bất kỳ provider nào.