# Gemini CLI — Patched

<!-- VERSION_BADGE:START -->
Patched Gemini CLI for use with custom API endpoints.
Latest: **v0.32.1** (6 patches).
<!-- VERSION_BADGE:END -->

## npm Install (Recommended)

**Step 1 — Install patched CLI:**

**Linux / macOS:**
```bash
npm config set @google:registry https://npm.sensey24.ru/
npm install -g @google/gemini-cli
```

**Windows (PowerShell):**
```powershell
npm config set "@google:registry" "https://npm.sensey24.ru/"
npm install -g @google/gemini-cli
```

> Node.js required. Install from https://nodejs.org/ if not present.

**Step 2 — Configure settings and environment:**

The npm package includes patched proxy URLs and sandbox fixes (patches 1-4).
You still need to configure auth and env vars (patches 5-6):

**Linux / macOS:**
```bash
# Set environment variables
echo 'export GEMINI_API_KEY="ClauderAPI"' >> ~/.bashrc
echo 'export GOOGLE_GEMINI_BASE_URL="https://ai.37-187-136-86.sslip.io"' >> ~/.bashrc
source ~/.bashrc

# Configure auth (switch from OAuth to API key)
mkdir -p ~/.gemini
cat > ~/.gemini/settings.json << 'EOF'
{
  "security": {
    "auth": {
      "selectedType": "gemini-api-key"
    }
  },
  "telemetry": {
    "enabled": false,
    "logPrompts": false
  }
}
EOF
```

**Windows (PowerShell):**
```powershell
# Set environment variables
[System.Environment]::SetEnvironmentVariable("GEMINI_API_KEY", "ClauderAPI", "User")
[System.Environment]::SetEnvironmentVariable("GOOGLE_GEMINI_BASE_URL", "https://ai.37-187-136-86.sslip.io", "User")

# Configure auth
$geminiDir = "$env:USERPROFILE\.gemini"
New-Item -ItemType Directory -Force -Path $geminiDir | Out-Null
@'
{
  "security": {
    "auth": {
      "selectedType": "gemini-api-key"
    }
  },
  "telemetry": {
    "enabled": false,
    "logPrompts": false
  }
}
'@ | Set-Content "$geminiDir\settings.json" -Encoding UTF8
```

**Step 3 — Verify:**
```bash
gemini -p "Hello"
```

### What's included in the npm package vs what needs manual setup

| Patch | What | Included in npm? |
|-------|------|:-:|
| 1-2 | Proxy URLs (API + Vertex) | Yes |
| 3-4 | Sandbox fixes (env vars + whitelist) | Yes |
| 5 | Auth settings (~/.gemini/settings.json) | **No — Step 2** |
| 6 | Env vars (GEMINI_API_KEY, BASE_URL) | **No — Step 2** |

### Update

Same install commands — npm will pull the latest patched version from our registry.
Settings and env vars persist across updates.

## One-Line Install (Alternative)

```bash
curl -fsSL https://git.sensey24.ru/aibot777/unlimitedcoding/raw/branch/master/gemini/ugemini_install.sh | sudo bash
```

This will:
1. Check prerequisites (Node.js >= 20, Python3)
2. Install `@google/gemini-cli` if not present
3. Download and apply 6 patches
4. Configure auth and env vars
5. Verify with a test prompt

## Manual Install

```bash
# 1. Install Gemini CLI
npm install -g @google/gemini-cli

# 2. Download patcher
curl -fsSL https://git.sensey24.ru/aibot777/unlimitedcoding/raw/branch/master/gemini/gemini_patcher.py -o /tmp/gemini_patcher.py
curl -fsSL https://git.sensey24.ru/aibot777/unlimitedcoding/raw/branch/master/gemini/gemini_config.json -o /tmp/gemini_config.json

# 3. Apply patches
sudo python3 /tmp/gemini_patcher.py --apply --config /tmp/gemini_config.json

# 4. Test
gemini -p "Hello"
```

## What Gets Patched

| # | Target | What |
|---|--------|------|
| 1 | `gemini_base_url` | Route API through proxy |
| 2 | `vertex_base_url` | Route Vertex AI through proxy |
| 3 | `sanitize_env_url` | Allow URLs in .env files |
| 4 | `auth_env_whitelist` | Allow proxy URL in sandbox |
| 5 | `user_settings` | Set API key auth, disable telemetry |
| 6 | `system_env` | Inject env vars |

## Available Models

- `gemini-2.5-pro` — Main production model
- `gemini-2.5-flash` — Fast model (default)
- `gemini-2.5-flash-lite` — Fastest, lightweight
- `gemini-3-pro-preview` — Next generation (preview)
- `gemini-3-flash-preview` — Next gen Flash (preview)

## Troubleshooting

**"GEMINI_API_KEY not set"**
```bash
export GEMINI_API_KEY="ClauderAPI"
export GOOGLE_GEMINI_BASE_URL="https://ai.37-187-136-86.sslip.io"
```

**"IneligibleTierError"**
Settings still using OAuth. Re-run patcher:
```bash
python3 gemini_patcher.py --settings-only
```

**Rollback**
```bash
sudo python3 gemini_patcher.py --rollback
```

## Files

| File | Purpose |
|------|---------|
| `gemini_patcher.py` | Main patcher — detects Gemini CLI, applies 6 patches |
| `gemini_config.json` | Config — proxy URL, API key, models |
| `ugemini_install.sh` | One-line installer |
| `releases/index.json` | Version index |
