186 lines
5.2 KiB
Markdown
Executable File
186 lines
5.2 KiB
Markdown
Executable File
# Gemini CLI — Patched
|
|
|
|
<!-- VERSION_BADGE:START -->
|
|
Patched Gemini CLI for use with custom API endpoints.
|
|
Latest: **v0.35.2** (13 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 all 13 patches baked in (proxy URLs, model defaults, UI, compression).
|
|
You still need to configure auth and env vars:
|
|
|
|
**Linux / macOS:**
|
|
```bash
|
|
# Set environment variables
|
|
echo 'export GEMINI_API_KEY="ClauderAPI2"' >> ~/.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", "ClauderAPI2", "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-3 | Proxy URLs (API + Vertex) | Yes |
|
|
| 4-5 | Sandbox fixes (env vars + whitelist) | Yes |
|
|
| 6 | Auth settings (~/.gemini/settings.json) | **No — Step 2** |
|
|
| 7-8 | Auto-update registry + commands | Yes |
|
|
| 9 | Auto-permissions (YOLO mode) | Yes |
|
|
| 10 | Default model constants (3.x) | Yes |
|
|
| 11-13 | UI descriptions + compression aliases | Yes |
|
|
|
|
### 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 13 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_regional` | Route Vertex AI (regional) through proxy |
|
|
| 3 | `vertex_base_url_global` | Route Vertex AI (global) through proxy |
|
|
| 4 | `sanitize_env_url` | Allow URLs in .env files |
|
|
| 5 | `auth_env_whitelist` | Allow proxy URL in sandbox |
|
|
| 6 | `user_settings` | Set API key auth, disable telemetry |
|
|
| 7 | `auto_update_registry` | Redirect npm registry to proxy |
|
|
| 8 | `auto_update_commands` | Add --registry to update commands |
|
|
| 9 | `auto_permissions` | Allow YOLO mode from settings |
|
|
| 10 | `default_models` | Override default model constants to 3.x |
|
|
| 11 | `model_dialog_desc` | Fix model names in UI picker |
|
|
| 12 | `compression_aliases` | Fix compression config aliases |
|
|
| 13 | `agent_config_desc` | Fix example model in agent config |
|
|
|
|
## Available Models
|
|
|
|
- `gemini-3.1-pro-preview` — Main production model (default)
|
|
- `gemini-3.1-pro-high` — High quality variant
|
|
- `gemini-3.1-pro-low` — Fast variant
|
|
- `gemini-3-pro-preview` — Gemini 3.0 Pro
|
|
- `gemini-3-flash-preview` — Fast model
|
|
- `gemini-2.5-pro` — Legacy (still available)
|
|
- `gemini-2.5-flash` — Legacy fast
|
|
|
|
## Troubleshooting
|
|
|
|
**"GEMINI_API_KEY not set"**
|
|
```bash
|
|
export GEMINI_API_KEY="ClauderAPI2"
|
|
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 13 patches |
|
|
| `gemini_config.json` | Config — proxy URL, API key, models |
|
|
| `ugemini_install.sh` | One-line installer |
|
|
| `releases/index.json` | Version index |
|