geminiSpec top-level property

FigSpec geminiSpec
final

Implementation

final FigSpec geminiSpec = FigSpec(
  name: 'gemini',
  description: 'Gemini CLI',
  args: [
    FigArg(
      name: 'prompt',
      isOptional: true,
    ),
  ],
  options: [
    FigOption(
      name: ['-p', '--prompt'],
      description: 'Run a prompt non-interactively and exit',
      args: [FigArg(name: 'text')],
    ),
    FigOption(
      name: ['-i', '--prompt-interactive'],
      description: 'Start interactive mode with an initial prompt',
      args: [FigArg(name: 'text')],
    ),
    _geminiValueOption(
        ['-m', '--model'], 'Model to use for the session', 'model'),
    _geminiPathOption(
      ['-C', '--cd'],
      'Run from the specified working directory',
      template: 'folders',
    ),
    FigOption(
      name: ['-a', '--all-files'],
      description: 'Include all files in the current workspace as context',
    ),
    FigOption(
      name: ['-y', '--yolo'],
      description: 'Auto-approve actions without prompting',
      isDangerous: true,
    ),
    FigOption(
      name: '--approval-mode',
      description: 'Choose how Gemini requests approval',
      args: [
        FigArg(
          name: 'mode',
          suggestions: _geminiApprovalModes,
        ),
      ],
    ),
    FigOption(
      name: '--sandbox',
      description: 'Sandbox mode for tool execution',
      args: [
        FigArg(
          name: 'mode',
          suggestions: _geminiSandboxModes,
        ),
      ],
    ),
    FigOption(
      name: ['-o', '--output-format'],
      description: 'Output format for non-interactive mode',
      args: [
        FigArg(
          name: 'format',
          suggestions: _geminiOutputFormats,
        ),
      ],
    ),
    FigOption(
      name: '--debug',
      description: 'Enable debug logging',
    ),
    FigOption(
      name: '--checkpointing',
      description: 'Enable checkpointing for file edits',
    ),
    _geminiPathOption(
      '--settings',
      'Path to a settings JSON file',
    ),
    FigOption(
      name: ['-h', '--help'],
      description: 'Show help',
    ),
    FigOption(
      name: ['-v', '--version'],
      description: 'Show version information',
    ),
  ],
  subcommands: [
    FigSubcommand(
      name: 'extensions',
      description: 'Manage Gemini CLI extensions',
    ),
    FigSubcommand(
      name: 'mcp',
      description: 'Manage MCP servers for Gemini CLI',
    ),
    FigSubcommand(
      name: 'restore',
      description: 'Restore a previous chat state',
    ),
    FigSubcommand(
      name: 'update',
      description: 'Update Gemini CLI to the latest version',
    ),
    FigSubcommand(
      name: 'auth',
      description: 'Authenticate Gemini CLI with Google',
    ),
    FigSubcommand(
      name: 'stats',
      description: 'Show Gemini CLI usage statistics',
    ),
    FigSubcommand(
      name: 'chat',
      description: 'Start a chat session explicitly',
      args: [
        FigArg(
          name: 'prompt',
          isOptional: true,
        ),
      ],
    ),
  ],
);