Gemini CLI Skill Guide
When to Use Gemini
| Use Case | Why Gemini |
|---|---|
| Current web information | google_web_search - real-time Google Search |
| Codebase architecture analysis | codebase_investigator - deep analysis tool |
| Second opinion / code review | Different AI perspective catches different bugs |
| Parallel code generation | Offload tasks while continuing other work |
When NOT to use: Simple quick tasks (overhead not worth it), interactive refinement, context already understood.
Running a Task
- Verify installation:
command -v gemini - Select the mode required for the task; default to read-only (no
--yolo) unless edits are necessary. - Always use
AskUserQuestionbefore using--yoloor-sflags. These modes allow file writes or sandboxed execution - get explicit user approval first. - Assemble the command with appropriate options:
-m, --model <MODEL>- Model selection-y, --yolo- Auto-approve all tool calls (enables writes)-s, --sandbox- Run in Docker isolation-o, --output-format <text|json>- Output format
- Important:
gemini "prompt" -o json 2>/dev/null | jq -r '.response'to suppress stderr noise and extract the json response, unless specified by the user.
Critical Note
YOLO mode does NOT prevent planning prompts. Use forceful language: "Apply now", "Start immediately", "Do this without asking for confirmation".
Quick Reference
| Use case | Mode | Command pattern |
|---|---|---|
| Read-only analysis | read-only | gemini "..." -o json 2>/dev/null | jq -r '.response' |
| Apply local edits | write | gemini "..." --yolo -o json 2>/dev/null | jq -r '.response' |
| Sandboxed write | sandbox | gemini "..." --yolo --sandbox -o json 2>/dev/null | jq -r '.response' |
Example Commands
# Read-only
gemini "Review src/ for bugs" -o json 2>/dev/null | jq -r '.response'
# Write mode
gemini "Fix bug in file.py. Apply now." --yolo -o json 2>/dev/null | jq -r '.response'
# If redirection fails, wrap in bash -lc
bash -lc 'gemini "prompt" -o json 2>/dev/null | jq -r ".response"'
Following Up
- Resume:
echo "follow-up" | gemini -r latest -o json 2>/dev/null | jq -r '.response' - List sessions:
gemini --list-sessions
Error Handling
- Rate limit: CLI auto-retries with backoff. Use
-m gemini-2.5-flashfor lower priority tasks. - Command failure: Check with
gemini --version, use--debugfor details. - Always validate Gemini's output for security vulnerabilities (XSS, injection) before using.