#!/usr/bin/env python3 """Gemini CLI wrapper for Google models.""" import subprocess from typing import List def invoke(cli_args: List[str], prompt: str, timeout: int = 300) -> str: """ Invoke gemini CLI with given args and prompt. Args: cli_args: Model args like ["-m", "gemini-3-pro"] prompt: The prompt text timeout: Timeout in seconds (default 5 minutes) Returns: Model response as string Raises: RuntimeError: If gemini CLI fails TimeoutError: If request exceeds timeout """ cmd = ["gemini"] + cli_args + ["-p", prompt] try: result = subprocess.run( cmd, capture_output=True, text=True, timeout=timeout ) except subprocess.TimeoutExpired: raise TimeoutError(f"gemini timed out after {timeout}s") if result.returncode != 0: raise RuntimeError(f"gemini failed (exit {result.returncode}): {result.stderr}") return result.stdout.strip() if __name__ == "__main__": # Quick test import sys if len(sys.argv) > 1: response = invoke(["-m", "gemini-3-pro"], sys.argv[1]) print(response) else: print("Usage: gemini.py 'prompt'")