gemini --yolo (hoặc dạng đầy đủ gemini --approval-mode=yolo) là cờ chạy Gemini CLI ở chế độ tự động duyệt toàn bộ tool call - file edit, shell command, network call đều thực thi ngay không hỏi xác nhận. Đây là phiên bản "YOLO mode" của Google, tương đương --dangerously-skip-permissions của Claude Code và --dangerously-bypass-approvals-and-sandbox của Codex CLI.
Cờ này làm gì
Mặc định Gemini CLI prompt trước mỗi shell command, file modification, và operation có khả năng phá hoại. YOLO mode (You Only Live Once) tắt hết các prompt đó. Quan trọng: Gemini bật sandbox tự động khi dùng --yolo - mặc định nó pull pre-built Docker image gemini-cli-sandbox và chạy session bên trong. Đây là khác biệt lớn so với Claude Code (không tự sandbox).
Ba cách bật YOLO
1. Cờ command line (xài cho một session):
gemini --yolo "fix all lint errors in the project"
Hoặc dạng mới đang được Google đẩy làm default:
gemini --approval-mode=yolo "fix all lint errors"
Không xài lẫn --yolo với --approval-mode trong cùng một lệnh, CLI sẽ báo lỗi.
2. Phím tắt Ctrl+Y trong session interactive: bật tắt nhanh không cần restart CLI.
3. Settings file ở ~/.gemini/settings.json hoặc .gemini/settings.json trong project:
{
"general": {
"defaultApprovalMode": "yolo"
},
"security": {
"disableYoloMode": false
}
}
Lưu ý: chỉ có thể bật YOLO qua command line theo design mới của Gemini - settings file chỉ enable trạng thái permanent, vẫn cần flag để activate thực sự.
Bốn approval mode của Gemini
- default: prompt cho từng tool call. Mặc định.
- auto_edit: tự duyệt edit file (replace, write_file) nhưng vẫn prompt cho shell. Giống
acceptEditscủa Claude. - plan: read-only mode dùng để model viết kế hoạch trước, review xong mới apply. Tương đương plan mode của Claude.
- yolo: auto-approve tất cả.
Cú pháp đầy đủ cho automation
Headless mode dùng cho CI/CD - kết hợp -p (prompt từ command line) với --yolo:
gemini -p "run my tests and fix errors" --yolo
Pipe input từ file:
cat task.md | gemini --yolo
Restrict tool dù trong YOLO:
gemini --yolo --allowed-tools "ShellTool(git status)" "review repo"
Custom sandbox Dockerfile
Khác với Claude Code phải tự setup container, Gemini cho phép custom sandbox dễ dàng. Tạo .gemini/sandbox.Dockerfile trong root project:
FROM gemini-cli-sandbox
RUN apt-get update && apt-get install -y your-tooling
COPY ./my-config /app/my-config
Sau đó chạy với env var:
BUILD_SANDBOX=1 gemini --yolo "task"
CLI sẽ tự build custom image và mount workspace vào.
Policy Engine - layer chặn nguy hiểm dù YOLO
Đây là điểm Gemini làm tốt hơn Claude Code. Policy Engine cho phép định nghĩa lệnh nào auto-approve, lệnh nào auto-deny, lệnh nào vẫn prompt - và policy này thắng cả YOLO mode.
Tạo ~/.gemini/policies/safe.yaml:
rules:
- pattern: "rm -rf *"
action: deny
- pattern: "git push *"
action: deny
- pattern: "git *"
action: allow
- pattern: "npm test"
action: allow
Với policy này, dù bật --yolo, rm -rf và git push vẫn bị chặn cứng.
Permanent wrapper - alias luôn YOLO
Thêm vào ~/.bashrc hoặc ~/.zshrc:
alias gemini-yolo='gemini --approval-mode=yolo --skip-trust'
PowerShell ($PROFILE):
function gemini-yolo {
& (Get-Command gemini -CommandType Application | Select-Object -First 1).Source `
--approval-mode yolo `
--skip-trust `
@args
}
--skip-trust để bypass cả "Do you trust this workspace?" prompt khi mở project mới.
Rủi ro thực tế
- Sandbox built-in của Gemini không phải bullet-proof - nếu workspace mount vào sandbox có credential, malicious prompt vẫn exfil được.
- YOLO + workspace mount = AI có thể commit và push lên remote nếu bạn không deny
git pushtrong policy. - Subagent inherit YOLO mode tương tự Claude - nếu agent spawn sub-task, sub-task không bị prompt lại.
So sánh với Claude và Codex
| Tool | Cờ bypass | Sandbox mặc định | Policy override YOLO |
|---|---|---|---|
| Claude Code | --dangerously-skip-permissions |
Không (tự setup container) | Hooks (PreToolUse) |
| Gemini CLI | --yolo / --approval-mode=yolo |
Có (gemini-cli-sandbox Docker image) | Policy Engine (yaml) |
| Codex CLI | --dangerously-bypass-approvals-and-sandbox |
Có (codex-linux-sandbox) | execpolicy .rules |
Khi nào dùng
Dùng --yolo khi:
- Chạy trong Docker container đã isolate đủ - nhất là khi không có credential mount vào
- CI/CD pipeline cần fully automated
- Task scope hẹp, đã có git checkpoint
- Đã định nghĩa Policy Engine block các lệnh phá hoại
Không dùng khi:
- Workspace có file
.envchứa API key chưa được gitignore đúng - Repo có uncommitted change quan trọng
- Trên shared dev machine - file của user khác có thể bị ảnh hưởng
Tóm lại
Cờ --yolo của Gemini CLI là vũ khí mạnh nhất để tự động hóa task dài hơi. So với Claude Code, Gemini có lợi thế là sandbox bật mặc định và Policy Engine cho phép define hard deny rule cross-session. Vẫn áp dụng đúng nguyên tắc: container + git checkpoint + policy = an toàn. Chạy bare metal trên máy có credential = đếm ngược tới ngày mất file.
Hướng dẫn nhanh cho 2 model còn lại
Cùng nguyên tắc - chỉ khác cú pháp cờ và mức sandbox mặc định. Đọc bài tương ứng để dùng đúng:
Claude Code · claude --dangerously-skip-permissions
Tóm tắt: Bật chế độ bypassPermissions - Claude tự duyệt mọi tool call (edit file, bash, network). Tương đương --permission-mode bypassPermissions.
Cú pháp nhanh:
claude --dangerously-skip-permissions "Fix all lint errors"
Đặc điểm: Không tự sandbox, cần Docker bên ngoài. Hooks (PreToolUse) vẫn chạy nên có thể dùng làm guardrail. Subagent kế thừa bypass mode, không override được. Từ v2.1.126 bypass cả write vào protected paths.
An toàn nhất khi: chạy trong devcontainer Anthropic ship sẵn (firewall whitelist npm/GitHub/Claude API, default-deny egress).
Codex CLI · codex --dangerously-bypass-approvals-and-sandbox
Tóm tắt: Bỏ qua cả approval lẫn sandbox cùng lúc. Alias --yolo. Tên dài có chủ ý để bạn nghĩ kỹ trước khi gõ.
Cú pháp nhanh:
codex --dangerously-bypass-approvals-and-sandbox "Apply migration"
Đặc điểm: Codex tách 3 trục độc lập - approval_policy, sandbox_mode, network_access. Có sandbox Linux native (bubblewrap). Đa số trường hợp nên dùng --full-auto (= on-request + workspace-write) thay vì full bypass. Hỗ trợ named profile trong ~/.codex/config.toml.
An toàn nhất khi: bắt đầu từ --full-auto, chỉ nâng lên full bypass khi chạy trong devcontainer OpenAI ship sẵn (bubblewrap + firewall).
Cả 3 cờ này đều là vũ khí mạnh nhất để tự động hoá long-running task / CI - và đều có khả năng phá máy nếu chạy bare metal. Containerize trước, git checkpoint trước, rồi mới gõ.
