Quay lại hướng dẫn
Thiết lập·4 tháng 9, 2026·Cập nhật 3 tháng 10, 2026·Đọc 9 phút

--dangerously-skip-permissions — hai phạm vi tác động và ba lớp kiểm soát

Một agent không bao giờ dừng lại để hỏi cũng là một agent không bao giờ dừng chi tiêu. Hãy kiểm soát cả hai rồi mới dùng cờ này.

Được xem xét lần cuối vào .

Cờ này có hai bán kính tác động, và gần như mọi nội dung viết về nó chỉ đề cập đến một. --dangerously-skip-permissions khiến Claude Code ngừng hỏi trước khi chỉnh sửa tệp hoặc chạy lệnh. Mức phơi nhiễm hiển nhiên là hệ thống tệp của bạn. Điều không ai viết đến là hóa đơn: một agent không bao giờ dừng để hỏi cũng là một agent không bao giờ dừng chi tiêu, và các lỗi của agent thường là những vòng lặp.

Cả hai đều có thể được giới hạn, và không điều nào yêu cầu bạn ngừng dùng cờ. Đây là chính xác những gì nó làm, sau đó là ba biện pháp giới hạn chỉ mất khoảng một phút mỗi biện pháp.

Nó làm gì

Thông thường Claude Code tạm dừng trước một hành động có hậu quả và chờ phê duyệt. Cờ này tắt khoảng dừng đó cho toàn bộ phiên. Nó không cấp cho mô hình khả năng mới và không thay đổi mô hình — nó loại bỏ bước xem xét giữa một kế hoạch và việc thực thi kế hoạch đó.

Đó là lý do cách diễn đạt trung thực không phải là “cờ này có nguy hiểm không” mà là phiên này có thể truy cập những gì. Cùng một lệnh không có gì đáng ngại trong một checkout tạm thời nhưng thực sự liều lĩnh trong repo có thông tin xác thực production nằm trong môi trường. Cờ không đổi; mức phơi nhiễm là thứ bạn kiểm soát.

Biện pháp giới hạn 1 — cấp cho nó một checkout riêng

Đây là cách rẻ nhất và thường là đủ. Git worktree là một thư mục làm việc đầy đủ trên nhánh riêng, vì vậy chỉnh sửa chưa được xem xét sẽ nằm ở nơi bạn có thể vứt bỏ thay vì chồng lên công việc hiện tại.

# Containment that costs one command: give the agent its own checkout.
# A worktree is a real working directory on its own branch, so a runaway
# edit is contained to a branch you can delete rather than to your repo.

git worktree add -b agent/task-123 ../repo-agent-123
cd ../repo-agent-123
claude --dangerously-skip-permissions

# When it is done, review the branch like any other, then:
git worktree remove ../repo-agent-123

Việc xem xét vẫn diễn ra — chỉ là diễn ra một lần trên một nhánh thay vì bốn mươi lần qua các lời nhắc. Nhìn chung, đây là cách sử dụng sự chú ý tốt hơn so với phê duyệt từng lần ghi tệp, và đó mới là lập luận thực sự cho cờ này chứ không phải sự thiếu kiên nhẫn.

Biện pháp giới hạn 2 — cấp cho nó thông tin xác thực riêng

Bất cứ thứ gì nằm trong môi trường của shell đó đều có thể được agent truy cập. Cách khắc phục không phải là cẩn thận hơn; mà là đặt ít thứ hơn ở đó. Tạo thông tin xác thực cho agent thay vì dùng lại thông tin bạn sử dụng ở mọi nơi, để dừng agent chỉ cần một lần thu hồi thay vì phải xoay vòng mọi thứ bạn sở hữu.

# A key per agent, not a key per human. Revoking one key stops one
# agent; revoking the key you use everywhere stops your whole day.

export ANTHROPIC_BASE_URL=https://api.kunavo.com
export ANTHROPIC_AUTH_TOKEN=sk-kn-...        # created for this agent only
export ANTHROPIC_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5

claude --dangerously-skip-permissions

Giữ nguyên các dòng model: model mặc định tích hợp sẵn của Claude Code và bí danh opus đều phân giải thành Opus mới nhất; nếu Kunavo chưa cung cấp model đó, agent không giám sát sẽ thất bại với yêu cầu đầu tiên bằng lỗi 404. Bí danh sonnet yêu cầu Sonnet 5.5, model mà Kunavo không cung cấp, vì vậy nếu thiếu dòng ANTHROPIC_DEFAULT_SONNET_MODEL, bất kỳ subagent nào được đặt thành model: sonnet, /model sonnet và giai đoạn thực thi của opusplan cũng sẽ trả về 404 theo cách tương tự. Bí danh opus được ghim vào Opus 5.5 (claude-opus-5-5), yêu cầu Claude Code v2.1.280 trở lên — nếu phiên bản của bạn cũ hơn, trước tiên hãy chạy claude update. Trên Kunavo, một khóa có thể được thu hồi độc lập — việc thu hồi được kiểm tra trong mọi yêu cầu đã xác thực, vì vậy khóa bị thu hồi sẽ ngừng hoạt động ngay lập tức thay vì chờ đến cuối kỳ thanh toán. Một khóa cũng có thể có giới hạn chi tiêu hàng tháng riêng và danh sách IP cho phép; đây là điều biến “mỗi agent một khóa” từ việc sắp xếp gọn gàng thành một ranh giới thực sự: khóa của agent có thể bị giới hạn và ghim mà không ảnh hưởng đến khóa bạn sử dụng thủ công. Tạo khóa thứ hai không mất phí. Chi tiết thiết lập có tại lấy khóa API cho Claude Code.

Biện pháp giới hạn 3 — giới hạn chi tiêu, không chỉ hệ thống tệp

Đây là trục mà phần còn lại của Internet bỏ qua. Hãy xem agent không giám sát làm gì khi nó thất bại thay vì khi nó hoạt động: nó thử lại. Mỗi lần thử lại là một lượt đi-về bị tính phí nhưng không tạo ra gì, và ngữ cảnh của agent lập trình rất lớn, nên các lượt đi-về không hề rẻ. Tác vụ hai mươi bước là bình thường; vòng lặp bị kẹt thì không.

Cách giới hạn điều đó hoàn toàn phụ thuộc vào phương thức tính phí. Gói đăng ký giới hạn bằng một cửa sổ sử dụng — một trần thực sự, dù nó xuất hiện dưới dạng bị dừng thay vì cảnh báo. Thẻ đã lưu không có trần tự nhiên nào cả. Trên Kunavo có hai giới hạn, và giới hạn thứ hai đáng đặt trước một lần chạy không giám sát: thanh toán trừ từ số dư trả trước, nên một yêu cầu không bao giờ có thể rút nhiều hơn số dư hiện có, và một khóa có thể mang giới hạn chi tiêu hằng tháng riêng. Giới hạn được kiểm tra trước khi yêu cầu chạy, nên việc chi vượt không xảy ra thay vì chỉ bị phát hiện sau đó; vượt giới hạn, lệnh gọi bị từ chối với thông báo nêu tên khóa chứ không phải ví tiền, và giới hạn đặt lại khi bắt đầu tháng dương lịch tiếp theo. Hãy đặt một giới hạn trên khóa agent giữ, và trường hợp xấu nhất không còn là “toàn bộ số dư” mà trở thành một con số do bạn chọn.

Phép tính cho chi phí dự kiến của một lần chạy — để bạn phân biệt phiên bình thường với vòng lặp — nằm trên trang giá Claude Code, còn giới hạn Claude Pro và Max bao quát phần gói đăng ký của cùng câu hỏi.

Khi nào nên dùng và khi nào không nên dùng

Tình huốngHợp lý không?
Worktree có thể vứt bỏ, khóa giới hạn phạm vi, không có thông tin xác thực production trong shellCó — đó chính là mục đích của cờ này
Container hoặc VM mà bạn có thể loại bỏCó, và thậm chí còn tốt hơn
Một lần chạy dài không cần giám sát mà bạn sẽ xem xét dưới dạng một diff duy nhấtCó, với số dư được cấp đủ cho việc đó
Bản checkout chính của bạn đang chứa công việc chưa commitKhông — hãy commit hoặc stash trước, rồi dùng worktree
Một shell đang giữ thông tin xác thực đám mây hoặc productionKhông
Một máy có thể truy cập trực tiếp vào productionKhông

Mẫu hình trong bảng đó là mọi “không” đều liên quan đến khả năng truy cập, và không điều nào liên quan đến cờ. Khắc phục khả năng truy cập, cờ sẽ không còn là biến số đáng chú ý — đó chính là mục đích.

Câu hỏi thường gặp

--dangerously-skip-permissions trong Claude Code thực hiện điều gì?

Tính năng này khiến Claude Code ngừng yêu cầu phê duyệt trước mỗi hành động, nên việc chỉnh sửa tệp và chạy lệnh shell diễn ra mà không có lời nhắc. Tên gọi hoàn toàn chính xác chứ không cường điệu: lời nhắc cấp quyền là thứ duy nhất ngăn cách kế hoạch do mô hình lập ra với việc kế hoạch đó được thực thi, và cờ này loại bỏ lời nhắc cho toàn bộ phiên. Nó không thay đổi khả năng của mô hình — chỉ thay đổi việc con người có nhìn thấy từng bước trước khi bước đó diễn ra hay không.

Dùng --dangerously-skip-permissions có an toàn không?

Mức độ an toàn tỷ lệ với những gì phiên làm việc có thể truy cập. Cờ này không làm mô hình có thêm khả năng, mà loại bỏ bước xem xét, nên câu hỏi thực sự là một sai sót chưa được xem xét có thể chạm tới những gì: agent khởi động trong thư mục nào, môi trường chứa những thông tin xác thực nào và máy có quyền truy cập production hay không. Trong một checkout có thể vứt bỏ với khóa được giới hạn phạm vi, một sai sót chưa được xem xét chỉ là một nhánh bạn xóa đi. Trong repo chính với thông tin xác thực production được export, thì không phải vậy. Cùng một cờ nhưng mức độ phơi nhiễm rất khác nhau.

Làm thế nào để chạy Claude Code an toàn mà không có lời nhắc cấp quyền?

Hạn chế ba thứ mà nó có thể truy cập, theo thứ tự này. Cấp cho nó một checkout riêng — một git worktree trên nhánh riêng chỉ cần một lệnh và biến một chỉnh sửa tệ thành một nhánh có thể xóa. Cấp cho nó thông tin xác thực riêng thay vì khóa bạn dùng ở mọi nơi, để thu hồi khóa đó chỉ dừng một agent chứ không làm gián đoạn cả ngày của bạn. Và đừng export những thông tin xác thực mà nó không cần thấy vào shell nó chạy, vì mọi thứ trong môi trường đó đều có thể truy cập. Không điều nào trong số này cần container, dù có container thì chắc chắn tốt hơn nếu bạn có thể dùng.

Một agent tự động có thể tạo ra hóa đơn API không giới hạn không?

Đây là trục mà hầu hết thảo luận về cờ này bỏ qua. Một agent không bao giờ dừng lại để hỏi cũng không bao giờ dừng chi tiêu, và các vòng lặp agent thường thất bại theo hướng tốn kém — một vòng lặp thử lại là nhiều lượt đi-về bị tính phí mà không tạo ra kết quả. Trên Kunavo, có hai yếu tố giới hạn điều này. Thanh toán trừ từ số dư trả trước thay vì tính vào thẻ, nên số dư là trần cứng. Ngoài ra, một khóa có thể mang giới hạn chi tiêu hằng tháng riêng, được kiểm tra trước khi yêu cầu chạy: vượt giới hạn, lệnh gọi bị từ chối với thông báo nêu tên khóa chứ không phải ví tiền, và giới hạn đặt lại khi bắt đầu tháng dương lịch tiếp theo. Hãy đặt một giới hạn trên khóa bạn giao cho agent, và trường hợp xấu nhất sẽ là một con số do bạn chọn.

Khác biệt giữa bỏ qua quyền và chế độ quyền là gì?

Các chế độ quyền của Claude Code cho phép bạn quyết định trước danh mục hành động nào cần phê duyệt, nhờ đó con người vẫn tham gia đối với các hành động rủi ro nhưng không bị làm phiền bởi các hành động thường lệ. Cờ này là phiên bản thô của cùng ý tưởng, với mọi thứ được đặt thành cho phép. Đối với các lần chạy không giám sát, cờ thường là điều bạn muốn; đối với công việc tương tác, một chế độ thường phù hợp hơn, vì sự cản trở bạn loại bỏ bằng cờ chính là thứ đã phát hiện các sai sót thực sự.

Cờ này có hoạt động giống như vậy thông qua gateway không?

Có — cờ này hoàn toàn ở phía máy khách. Nó quyết định Claude Code có hỏi bạn trước khi hành động hay không và không liên quan đến endpoint nào phục vụ mô hình. Trỏ ANTHROPIC_BASE_URL tới một gateway sẽ thay đổi nơi yêu cầu được gửi và chi phí của chúng, chứ không thay đổi những gì agent được phép làm cục bộ. Điều duy nhất endpoint thay đổi là trục thứ hai ở trên: cách giới hạn chi tiêu.