Claude Code càng chạy lâu mà không cần bạn giám sát, bạn càng phải trả lời rõ một câu: nếu nó làm sai, hậu quả sẽ lan đến đâu? Ba mẹo trong phần này tương ứng với ba mức tự chủ, mỗi mức có một cách kiểm soát rủi ro riêng.
Đây là phần bảy trong loạt bài khám phá 50 mẹo Claude Code từ repo claude-code-tips của YK Sugi, đồng thời cũng là phần mở đầu cho nhóm mẹo nâng cao. Bài này tập trung vào ba mẹo số 31, 19 và 32: auto mode, môi trường cô lập cho các tác vụ kéo dài và tiềm ẩn rủi ro, cùng cách điều khiển Claude Code từ điện thoại.
Auto mode là lựa chọn mặc định phù hợp với hầu hết mọi người. Container dành cho những tác vụ cần toàn quyền tự chủ, còn Remote Control chỉ nên bật khi bạn hiểu rõ ai có thể truy cập phiên của mình.
Auto mode là gì và tại sao nên bật?
Auto mode để Claude tự đánh giá một lệnh có an toàn trong ngữ cảnh hiện tại hay không, thay vì yêu cầu bạn duyệt từng lệnh. Một model thứ hai sẽ phân loại từng hành động thay bạn, chỉ dừng lại hỏi khi phát hiện rủi ro. Bạn có thể chuyển sang auto mode bằng Shift+Tab.
Auto mode giúp giải quyết một thói quen khá nguy hiểm: bấm duyệt cho xong. Khi lệnh quá dài để đọc kỹ hoặc bạn đã mệt, bạn rất dễ nhấn đồng ý mà không thực sự suy nghĩ. Lời nhắc xác nhận sẽ chẳng bảo vệ được ai nếu người dùng chỉ bấm theo phản xạ. Vì vậy, tôi đồng tình với nhận định trong repo rằng auto mode là lựa chọn mặc định tốt. Để đặt chế độ này làm mặc định, thêm đoạn sau vào ~/.claude/settings.json:
{
"permissions": {
"defaultMode": "auto"
}
}Có hai điểm cần lưu ý trong tài liệu chính thức. Thứ nhất, defaultMode với giá trị auto chỉ có hiệu lực khi nằm trong settings của người dùng hoặc settings được quản lý tập trung, chứ không có tác dụng nếu đặt trong settings của dự án. Thứ hai, từ Claude Code v2.1.283, auto mode đã là chế độ khởi động mặc định cho các phiên terminal và VS Code. Ở những phiên bản cũ hơn, chế độ này chỉ là mặc định trên các gói Pro, Max và Team. Nếu muốn kiểm soát chặt chẽ hơn, bạn vẫn có thể tự duyệt từng lệnh. Còn nếu cần Claude toàn quyền tự chủ, hãy chuyển sang container như phần dưới đây.
Khi nào cần môi trường cô lập?
Bạn nên dùng môi trường cô lập khi muốn chạy phiên --dangerously-skip-permissions, tức không phải duyệt từng việc nhỏ, để Claude tự xử lý công việc trong thời gian dài. Cách này phù hợp với các tác vụ nghiên cứu hoặc thử nghiệm vừa kéo dài vừa tiềm ẩn rủi ro. Auto mode vẫn chưa loại bỏ hoàn toàn rủi ro hay nhu cầu duyệt lệnh, nên nếu muốn Claude tự chủ hoàn toàn, môi trường cô lập là lựa chọn phù hợp hơn.
Có hai hướng chính. Hướng thứ nhất là chạy Claude Code trong container. Tác giả repo đã xây dựng sẵn safeclaw, một môi trường được cấu hình sẵn để bạn dễ dàng chạy Claude Code trong container. Hướng thứ hai triệt để hơn: dựng hẳn một máy riêng để Claude Code toàn quyền điều khiển, kể cả thông qua tính năng điều khiển máy tính (computer use).
Môi trường cô lập giúp bạn chuyển từ câu hỏi "lệnh này có an toàn không?" sang "nếu mọi lệnh đều sai thì mình sẽ mất gì?". Nếu chạy trong container, thứ bạn có thể mất là container đó, chứ không phải ổ cứng trên máy cá nhân. Ở phần một, alias cs trong script cài đặt chính là claude --dangerously-skip-permissions. Theo tôi, đây là trường hợp duy nhất nên dùng alias đó.
Làm sao để một Claude Code chạy trong container làm việc thay bạn?
Bạn có thể dùng Claude Code trên máy cá nhân để điều khiển một phiên Claude Code khác chạy trong container. Bí quyết là dùng tmux làm lớp điều khiển, theo bốn bước:
- Claude Code trên máy bạn mở một phiên tmux.
- Trong phiên tmux đó, nó chạy hoặc kết nối vào container.
- Bên trong container, Claude Code chạy với
--dangerously-skip-permissions. - Claude Code bên ngoài dùng
tmux send-keysđể gửi prompt vàcapture-paneđể đọc output.
Kết quả là bạn có một Claude Code "thợ" hoàn toàn tự chủ, có thể xử lý các tác vụ thử nghiệm hoặc kéo dài mà không cần bạn duyệt từng hành động. Khi xong việc, Claude Code trên máy cá nhân lấy kết quả về. Nếu có sự cố, mọi thứ vẫn nằm gọn trong sandbox của container. Nếu bạn đã đọc phần năm, đây chính là kỹ thuật tmux dùng để kiểm thử, chỉ khác ở chỗ lần này bạn điều khiển một tác nhân thay vì một bài test.
Làm thế nào để điều phối nhiều model từ một chỗ?
Ngoài Claude Code, bạn còn có thể chạy các CLI AI khác trong container, chẳng hạn Codex hoặc Antigravity CLI. Tác giả repo đã thử dùng OpenAI Codex để review code và nhận thấy cách này hoạt động tốt. Dĩ nhiên, bạn vẫn có thể chạy các CLI đó trực tiếp trên máy mình.
Điểm mạnh của Claude Code là cung cấp một giao diện đủ thuận tiện để bạn chỉ cần trò chuyện với nó, còn việc điều phối cứ để nó lo: từ khởi chạy các model khác nhau đến chuyển dữ liệu giữa container và máy chủ. Thay vì phải liên tục chuyển qua lại giữa nhiều terminal rồi sao chép, dán dữ liệu thủ công, bạn có thể dùng Claude Code làm giao diện trung tâm để điều phối toàn bộ quy trình. Theo tôi, cách này đặc biệt hữu ích khi cần ý kiến thứ hai, chẳng hạn nhờ một model khác review đoạn code Claude vừa viết.
Làm thế nào để điều khiển Claude Code từ điện thoại?
Remote Control cho phép bạn điều khiển Claude Code bằng điện thoại và kết hợp rất tốt với auto mode. Bạn có thể khởi chạy một tác vụ, rời khỏi bàn làm việc rồi kiểm tra tiến độ từ bất cứ đâu. Có hai cách sử dụng.
Cách thứ nhất, chạy /remote-control (viết tắt /rc) trong một phiên đang mở rồi làm theo hướng dẫn. Sau đó, bạn có thể dùng điện thoại để điều khiển chính phiên đó. Vì vẫn là cùng một phiên, bạn có thể chuyển qua lại giữa điện thoại và máy tính tùy ý. Cách thứ hai là khởi chạy một server cho phép tạo phiên mới từ điện thoại, thay vì chỉ kết nối vào phiên có sẵn:
claude remote-control --spawn=worktree --capacity=N--spawn=worktree tạo một git worktree riêng cho mỗi phiên mới, tránh các phiên giẫm chân nhau. Trong khi đó, --capacity đặt số phiên tối đa có thể chạy đồng thời, với giá trị mặc định là 32 theo tài liệu. Nếu đã thiết lập alias cr ở phần một, bạn có thể rút gọn lệnh thành cr --spawn=worktree --capacity=N.
Có nên bật Remote Control cho tất cả các phiên không?
Không, trừ khi bạn đang chạy trong một môi trường cô lập hoàn toàn. Tác giả repo ưu tiên dùng /rc khi cần và tắt tính năng này khi không sử dụng. Lý do là nếu kẻ tấn công chiếm được phiên Claude Code, về cơ bản họ có thể truy cập mọi thứ trên máy tính đó. Tuy nhiên, nếu đã có môi trường cô lập, bạn có thể khởi chạy một phiên Claude Code từ điện thoại ở bất cứ đâu, với đầy đủ môi trường dev. Đây là cách làm rất tiện lợi.
Nếu vẫn muốn Remote Control tự bật cho mọi phiên mới, hãy bật "Enable Remote Control for all sessions" trong /config, hoặc đặt "remoteControlAtStartup": true trong ~/.claude/settings.json. Mặc định, tính năng này bị tắt. Có một chi tiết liên quan đến bảo mật mà bạn nên biết: trong settings của dự án (.claude/settings.json), Claude Code chấp nhận giá trị false nhưng bỏ qua true. Vì vậy, một file settings được commit vào repo không thể tự bật Remote Control cho tất cả những người mở repo đó.
Nên chọn mức tự chủ nào?
| Mức | Ai duyệt lệnh | Phù hợp với |
|---|---|---|
| Duyệt tay | Bạn | Việc nhạy cảm, khi bạn muốn kiểm tra từng bước |
| Auto mode | Bộ phân loại, hỏi khi gặp rủi ro | Công việc hằng ngày, dùng làm mặc định |
Container + --dangerously-skip-permissions | Không ai, rủi ro được giới hạn trong container | Thử nghiệm, nghiên cứu, tác vụ chạy lâu |
| Máy riêng Claude điều khiển toàn quyền | Không ai, cô lập ở cấp độ cả máy | Tự động hóa chuyên sâu, bao gồm cả computer use |
Hãy bắt đầu với auto mode. Chế độ này vừa giúp bạn tránh thói quen bấm duyệt cho xong, vừa không đòi hỏi phải dựng thêm hạ tầng. Chỉ chuyển sang container khi có một tác vụ cụ thể cần Claude chạy hàng giờ mà không có người giám sát. Còn Remote Control chỉ nên bật thường trực khi phiên Claude Code chạy trong môi trường cô lập.