Expert guide for executing the Google Gemini CLI in non-interactive and headless modes. Covers command syntax, piping input, output handling, and automation patterns. Use when running gemini commands, piping context to Gemini, scripting Gemini workflows, or using interactive shell mode. Delegates to gemini-cli-docs for official command references.
Limited to specific tools
Additional assets for this skill
This skill is limited to using the following tools:
STOP - Before executing ANY Gemini CLI command:
- INVOKE
gemini-cli-docsskill- QUERY for the specific CLI command syntax (e.g., "headless mode", "piping input")
- BASE all execution patterns EXCLUSIVELY on official documentation loaded
This skill provides the operational knowledge to execute the gemini binary effectively within scripts, sub-agents, and automation workflows. It focuses on non-interactive usage.
IMPORTANT: Gemini CLI uses positional prompts, not subcommands.
# Correct syntax (positional prompt):
gemini "Your prompt here"
# With options:
gemini "Your prompt" --output-format json -m gemini-2.5-flash
# DEPRECATED (will be removed):
gemini -p "Your prompt" # -p flag is deprecated
# WRONG (no 'query' subcommand exists):
gemini query "Your prompt" # This does NOT work
Keywords: run gemini, execute gemini, gemini cli command, headless gemini, pipe to gemini, automated planning, gemini prompt, interactive shell
Use this skill when:
gemini-planner)gemini "prompt"cat file.js | gemini "refactor this"vim or topUse positional prompt for direct queries:
gemini "Create a plan for a React app"
# With JSON output for parsing:
gemini "Create a plan for a React app" --output-format json
Pass file content or logs via stdin:
cat logs.txt | gemini "Analyze these error logs"
# With model selection:
cat src/*.ts | gemini "Review this code" -m gemini-2.5-flash
Always use --output-format json for scripting:
result=$(gemini "What is 2+2?" --output-format json)
response=$(echo "$result" | jq -r '.response')
tokens=$(echo "$result" | jq '.stats.models | to_entries | map(.value.tokens.total) | add')
Run commands in isolated environment:
gemini -s "Run: npm install untrusted-package" --yolo --output-format json
Enable interactive shell for commands requiring user input (e.g., vim, git rebase).
tools.shell.enableInteractiveShell: true in settings.json.gemini "run vim file.txt" (User must handle input).| Flag | Description |
|---|---|
--output-format json | Return structured JSON (essential for automation) |
-m, --model | Select model (gemini-2.5-flash, gemini-2.5-pro) |
-s, --sandbox | Run in sandbox isolation |
-y, --yolo | Auto-approve all tool calls |
-r, --resume | Resume previous session |
-i, --prompt-interactive | Start interactive mode after prompt |
| Topic | Query Keywords |
|---|---|
| Basic Query | cli prompt syntax, positional prompt |
| Headless/Scripting | headless mode, non-interactive, scripting gemini |
| Output Formatting | json output, output-format, stream-json |
| Sandbox | sandbox, -s flag, docker sandbox |
| Interactive Shell | interactive shell tool, enableInteractiveShell, interactive commands |
What do you want to do?
gemini "Question"cat file | gemini "Analyze"gemini "Plan for X"gemini "run vim file.txt" (with enableInteractiveShell)--output-format json and use jqIssue: CLI hangs or waits for input. Fix: Ensure you are NOT using the interactive chat mode. Use positional prompt for one-shot queries.
Issue: Command not found: gemini query
Fix: There is no query subcommand. Use positional prompt: gemini "your prompt"
Issue: Warning about deprecated -p flag
Fix: Use positional syntax instead: gemini "prompt" not gemini -p "prompt"
Query: "Run a Gemini query to analyze this code" Expected Behavior:
gemini "prompt" syntaxQuery: "How do I send file contents to Gemini CLI?" Expected Behavior:
cat file | gemini "prompt" pattern
Success Criteria: User receives working piping exampleQuery: "How do I get JSON output from Gemini for automation?" Expected Behavior:
--output-format json flag usage
Success Criteria: User receives parseable JSON output patternOfficial Documentation:
Query gemini-cli-docs for: