GeminiCliSdk.Options (gemini_cli_sdk v0.2.0)

Copy Markdown View Source

Configuration for a Gemini CLI invocation.

Every field maps to a specific CLI flag, environment variable, or subprocess setting. Fields with nil default are omitted from the generated argument list.

Summary

Types

approval_mode()

@type approval_mode() :: :default | :auto_edit | :yolo | :plan

resume_value()

@type resume_value() :: true | String.t() | nil

t()

@type t() :: %GeminiCliSdk.Options{
  allowed_mcp_server_names: [String.t()],
  allowed_tools: [String.t()],
  approval_mode: approval_mode() | nil,
  cwd: String.t() | nil,
  debug: boolean(),
  env: map(),
  execution_surface: CliSubprocessCore.ExecutionSurface.t(),
  extensions: [String.t()],
  include_directories: [String.t()],
  max_stderr_buffer_bytes: pos_integer(),
  model: String.t() | nil,
  model_payload: CliSubprocessCore.ModelRegistry.selection() | nil,
  output_format: String.t(),
  resume: resume_value(),
  sandbox: boolean(),
  settings: map() | nil,
  system_prompt: String.t() | nil,
  timeout_ms: pos_integer(),
  yolo: boolean()
}

Functions

validate!(opts)

@spec validate!(t()) :: t()