Files
gemini-cli/docs/cli/headless.md
T

61 lines
2.9 KiB
Markdown
Raw Normal View History

# Headless mode reference
2025-09-17 04:01:15 +09:00
Headless mode provides a programmatic interface to Gemini CLI, returning
structured text or JSON output without an interactive terminal UI.
2025-09-17 04:01:15 +09:00
## Technical reference
2025-09-17 04:01:15 +09:00
Headless mode is triggered when the CLI is run in a non-TTY environment or when
2026-03-10 01:43:14 +05:30
providing a query with the `-p` (or `--prompt`) flag.
2025-09-17 04:01:15 +09:00
### Output formats
2025-09-17 04:01:15 +09:00
You can specify the output format using the `--output-format` flag.
2025-09-17 04:01:15 +09:00
#### JSON output
2025-09-17 04:01:15 +09:00
Returns a single JSON object containing the response and usage statistics.
2025-09-17 04:01:15 +09:00
- **Schema:**
- `response`: (string) The model's final answer.
- `stats`: (object) Token usage and API latency metrics.
- `error`: (object, optional) Error details if the request failed.
2025-09-17 04:01:15 +09:00
#### Streaming JSON output
2025-09-17 04:01:15 +09:00
Returns a stream of newline-delimited JSON (JSONL) events.
2025-09-17 04:01:15 +09:00
- **Event types:**
- `init`: Session metadata (session ID, model).
- `message`: User and assistant message chunks.
- `tool_use`: Tool call requests with arguments.
- `tool_result`: Output from executed tools.
- `error`: Non-fatal warnings and system errors.
- `result`: Final outcome with aggregated statistics and per-model token usage
breakdowns.
2025-09-17 04:01:15 +09:00
## Exit codes
2025-09-17 04:01:15 +09:00
2026-03-20 12:15:54 -07:00
Gemini CLI uses the following exit codes to indicate why the tool terminated
unexpectedly. You can use these codes to handle errors in scripts and automation
workflows.
2026-03-20 12:15:54 -07:00
| Exit code | Error type | Description |
| --------- | -------------------------- | --------------------------------------------------------------------------------------------------- |
| 41 | `FatalAuthenticationError` | An error occurred during the authentication process. |
| 42 | `FatalInputError` | Invalid or missing input was provided to the CLI. (non-interactive mode only) |
| 44 | `FatalSandboxError` | An error occurred with the sandboxing environment (e.g., Docker, Podman, or Seatbelt). |
| 52 | `FatalConfigError` | A configuration file (`settings.json`) is invalid or contains errors. |
| 53 | `FatalTurnLimitedError` | The maximum number of conversational turns for the session was reached. (non-interactive mode only) |
2026-03-20 12:15:54 -07:00
| 54 | `FatalToolExecutionError` | An error occurred during tool execution. |
| 130 | `FatalCancellationError` | The operation was canceled by the user (e.g., SIGINT). |
Exit code 0 indicates that Gemini CLI finished successfully. Exit code 1
indicates a general error or API failure occurred.
2025-09-17 04:01:15 +09:00
## Next steps
2025-09-17 04:01:15 +09:00
- Follow the [Automation tutorial](./tutorials/automation.md) for practical
scripting examples.
- See the [CLI reference](./cli-reference.md) for all available flags.