Skip to main content
This page provides a comprehensive reference for all command-line options and flags available when starting Gemini CLI.

Basic Usage

Interactive REPL

Start Gemini CLI in interactive mode:
gemini

Non-interactive Query

Execute a query and exit:
gemini "explain this project"

Piped Content

Process piped content:
cat logs.txt | gemini
# Windows PowerShell
Get-Content logs.txt | gemini

Execute and Continue Interactively

Execute a query and continue in interactive mode:
gemini -i "What is the purpose of this project?"

Resume Sessions

Continue the most recent session:
gemini -r "latest"
Continue a session with a new prompt:
gemini -r "latest" "Check for type errors"
Resume session by ID:
gemini -r "abc123" "Finish this PR"

Positional Arguments

query
string
Positional prompt. Defaults to one-shot mode. Use -i/--prompt-interactive to execute and continue interactively.Variadic argument - accepts multiple strings.

Global Options

—debug (-d)

--debug
boolean
default:"false"
Run in debug mode with verbose loggingAlias: -d
gemini --debug
gemini -d

—version (-v)

--version
flag
Show CLI version number and exitAlias: -v
gemini --version
gemini -v

—help (-h)

--help
flag
Show help informationAlias: -h
gemini --help
gemini -h

Model Configuration

—model (-m)

--model
string
default:"auto"
Model to use. Accepts either model aliases or concrete model names.Alias: -mAvailable aliases:
  • auto - Default. Resolves to gemini-2.5-pro or gemini-3-pro-preview (if preview features enabled)
  • pro - For complex reasoning tasks. Uses preview model if enabled.
  • flash - Fast, balanced model for most tasks (gemini-2.5-flash)
  • flash-lite - Fastest model for simple tasks (gemini-2.5-flash-lite)
Concrete model names:
  • gemini-2.5-pro
  • gemini-3-pro-preview
  • gemini-2.5-flash
  • gemini-2.5-flash-lite
gemini --model flash
gemini -m gemini-2.5-pro

Prompt Options

—prompt (-p)

--prompt
string
Prompt text. Appended to stdin input if provided.Alias: -p
Deprecated: Use positional arguments instead.
gemini --prompt "explain this code"

—prompt-interactive (-i)

--prompt-interactive
string
Execute prompt and continue in interactive modeAlias: -i
gemini -i "analyze this project"

Session Management

—resume (-r)

--resume
string
Resume a previous session. Use "latest" for most recent or index number.Alias: -rValues:
  • "latest" - Resume the most recent session
  • <number> - Resume session by index (e.g., 5)
  • <session-id> - Resume session by ID
gemini --resume latest
gemini -r 5
gemini -r abc123

—list-sessions

--list-sessions
boolean
List available sessions for the current project and exit
gemini --list-sessions

—delete-session

--delete-session
string
Delete a session by index number. Use --list-sessions to see available sessions.
gemini --delete-session 5

Security & Permissions

—sandbox (-s)

--sandbox
boolean
default:"false"
Run in a sandboxed environment for safer executionAlias: -s
gemini --sandbox
gemini -s

—approval-mode

--approval-mode
string
default:"default"
Approval mode for tool executionChoices:
  • default - Prompt for approval before executing tools
  • auto_edit - Auto-approve file edits, prompt for other tools
  • yolo - Auto-approve all actions
gemini --approval-mode auto_edit
gemini --approval-mode yolo

—yolo (-y)

--yolo
boolean
default:"false"
Auto-approve all actionsAlias: -y
Deprecated. Use --approval-mode=yolo instead.
gemini --yolo
gemini -y

—allowed-tools

--allowed-tools
array
Tools that are allowed to run without confirmationAccepts comma-separated values or multiple flags.
Deprecated. Use the Policy Engine instead.
gemini --allowed-tools read,write
gemini --allowed-tools read --allowed-tools write

Workspace Configuration

—include-directories

--include-directories
array
Additional directories to include in the workspaceAccepts comma-separated values or multiple flags.
gemini --include-directories /path/to/dir1,/path/to/dir2
gemini --include-directories /path/to/dir1 --include-directories /path/to/dir2

Extensions & Integrations

—extensions (-e)

--extensions
array
List of extensions to use. If not provided, all extensions are enabled.Alias: -eAccepts comma-separated values or multiple flags.
gemini --extensions ext1,ext2
gemini -e ext1 -e ext2

—list-extensions (-l)

--list-extensions
boolean
List all available extensions and exitAlias: -l
gemini --list-extensions
gemini -l

MCP Configuration

—allowed-mcp-server-names

--allowed-mcp-server-names
array
Allowed MCP server namesAccepts comma-separated values or multiple flags.
gemini --allowed-mcp-server-names github,slack
gemini --allowed-mcp-server-names github --allowed-mcp-server-names slack

Output & Accessibility

—output-format (-o)

--output-format
string
default:"text"
The format of the CLI outputAlias: -oChoices:
  • text - Human-readable text output (default)
  • json - JSON output
  • stream-json - Streaming JSON output
gemini --output-format json
gemini -o stream-json

—screen-reader

--screen-reader
boolean
Enable screen reader mode for accessibility
gemini --screen-reader

Experimental Features

—experimental-acp

--experimental-acp
boolean
Start in ACP (Agent Code Pilot) mode
Experimental feature. Subject to change.
gemini --experimental-acp

—experimental-zed-integration

--experimental-zed-integration
boolean
Run in Zed editor integration mode
Experimental feature. Subject to change.
gemini --experimental-zed-integration

Update Command

gemini update

Update to the latest version of Gemini CLI:
gemini update

Extensions Command

Manage extensions from the command line:
gemini extensions <subcommand>
See Extensions Management for complete documentation.

Install Extension

gemini extensions install <source>
gemini extensions install <source> --ref <ref>
gemini extensions install <source> --auto-update
source
string
required
Git URL or local path to the extension
--ref
string
Specific branch, tag, or commit to install
--auto-update
boolean
Enable auto-update for the extension

Other Extension Commands

gemini extensions uninstall <name>     # Uninstall extension
gemini extensions list                 # List all installed extensions
gemini extensions update <name>        # Update specific extension
gemini extensions update --all         # Update all extensions
gemini extensions enable <name>        # Enable an extension
gemini extensions disable <name>       # Disable an extension
gemini extensions link <path>          # Link local extension for development
gemini extensions new <path>           # Create new extension from template
gemini extensions validate <path>      # Validate extension structure

MCP Command

Configure MCP servers from the command line:
gemini mcp <subcommand>
See MCP Server Integration for complete documentation.

Add MCP Server

gemini mcp add <name> <command>
gemini mcp add <name> <url> --transport http
gemini mcp add <name> <command> --env KEY=value
gemini mcp add <name> <command> --scope user
gemini mcp add <name> <command> --include-tools tool1,tool2
name
string
required
Name for the MCP server
command
string
Command to start the stdio-based MCP server
url
string
URL for HTTP-based MCP server
--transport
string
default:"stdio"
Transport type: stdio or http
--env
string
Environment variables in KEY=value format
--scope
string
default:"project"
Scope: user or project
--include-tools
string
Comma-separated list of specific tools to include

Other MCP Commands

gemini mcp remove <name>   # Remove an MCP server
gemini mcp list            # List all configured MCP servers

Skills Command

Manage agent skills from the command line:
gemini skills <subcommand>
See Agent Skills Documentation for complete documentation.

Skills Commands

gemini skills list                 # List all discovered agent skills
gemini skills install <source>     # Install skill from Git, path, or file
gemini skills link <path>          # Link local agent skills via symlink
gemini skills uninstall <name>     # Uninstall an agent skill
gemini skills enable <name>        # Enable an agent skill
gemini skills disable <name>       # Disable an agent skill
gemini skills enable --all         # Enable all skills
gemini skills disable --all        # Disable all skills
source
string
Git URL, local path, or file path to the skill
name
string
Name of the skill to manage
path
string
Local path to link

Build docs developers (and LLMs) love