Updated in all config files, installer/updater scripts across claude/gemini/codex/qwen. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
164 lines
5.1 KiB
Markdown
Executable File
164 lines
5.1 KiB
Markdown
Executable File
# Gemini CLI — Пропатченный
|
||
|
||
<!-- VERSION_BADGE:START -->
|
||
Пропатченный Gemini CLI для работы с кастомными API endpoints.
|
||
Последняя версия: **v0.29.5** (6 патчей).
|
||
<!-- VERSION_BADGE:END -->
|
||
|
||
## Установка через npm (Рекомендуется)
|
||
|
||
**Шаг 1 — Установить патченный 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. Установить: https://nodejs.org/
|
||
|
||
**Шаг 2 — Настроить окружение:**
|
||
|
||
npm-пакет содержит патченные URL прокси и фиксы sandbox (патчи 1-4).
|
||
Авторизацию и переменные окружения нужно настроить вручную (патчи 5-6):
|
||
|
||
**Linux / macOS:**
|
||
```bash
|
||
# Переменные окружения
|
||
echo 'export GEMINI_API_KEY="ClauderAPI2"' >> ~/.bashrc
|
||
echo 'export GOOGLE_GEMINI_BASE_URL="https://ai.37-187-136-86.sslip.io"' >> ~/.bashrc
|
||
source ~/.bashrc
|
||
|
||
# Настройка авторизации (переключить с OAuth на 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
|
||
# Переменные окружения
|
||
[System.Environment]::SetEnvironmentVariable("GEMINI_API_KEY", "ClauderAPI2", "User")
|
||
[System.Environment]::SetEnvironmentVariable("GOOGLE_GEMINI_BASE_URL", "https://ai.37-187-136-86.sslip.io", "User")
|
||
|
||
# Настройка авторизации
|
||
$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
|
||
```
|
||
|
||
**Шаг 3 — Проверить:**
|
||
```bash
|
||
gemini -p "Привет"
|
||
```
|
||
|
||
### Что входит в npm-пакет, а что нужно настроить вручную
|
||
|
||
| Патч | Что | Входит в npm? |
|
||
|------|-----|:-:|
|
||
| 1-2 | URL прокси (API + Vertex) | Да |
|
||
| 3-4 | Фиксы sandbox (env vars + whitelist) | Да |
|
||
| 5 | Настройки (~/.gemini/settings.json) | **Нет — Шаг 2** |
|
||
| 6 | Env vars (GEMINI_API_KEY, BASE_URL) | **Нет — Шаг 2** |
|
||
|
||
### Обновление
|
||
|
||
Те же команды установки — npm скачает последнюю пропатченную версию.
|
||
Настройки и env vars сохраняются при обновлении.
|
||
|
||
## Установка одной командой (Альтернатива)
|
||
|
||
```bash
|
||
curl -fsSL https://git.sensey24.ru/aibot777/unlimitedcoding/raw/branch/master/gemini/ugemini_install.sh | sudo bash
|
||
```
|
||
|
||
Скрипт автоматически:
|
||
1. Проверит Node.js >= 20 и Python3
|
||
2. Установит `@google/gemini-cli` если нужно
|
||
3. Скачает и применит 6 патчей
|
||
4. Настроит авторизацию и env vars
|
||
5. Проверит тестовым запросом
|
||
|
||
## Ручная установка
|
||
|
||
```bash
|
||
# 1. Установить Gemini CLI
|
||
npm install -g @google/gemini-cli
|
||
|
||
# 2. Скачать патчер
|
||
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. Применить патчи
|
||
sudo python3 /tmp/gemini_patcher.py --apply --config /tmp/gemini_config.json
|
||
|
||
# 4. Проверить
|
||
gemini -p "Привет"
|
||
```
|
||
|
||
## Что патчится
|
||
|
||
| # | Цель | Описание |
|
||
|---|------|----------|
|
||
| 1 | `gemini_base_url` | API через прокси |
|
||
| 2 | `vertex_base_url` | Vertex AI через прокси |
|
||
| 3 | `sanitize_env_url` | Поддержка URL в .env |
|
||
| 4 | `auth_env_whitelist` | URL прокси в sandbox |
|
||
| 5 | `user_settings` | API key авторизация, отключение телеметрии |
|
||
| 6 | `system_env` | Системные переменные окружения |
|
||
|
||
## Доступные модели
|
||
|
||
- `gemini-2.5-pro` — Основная модель
|
||
- `gemini-2.5-flash` — Быстрая (по умолчанию)
|
||
- `gemini-2.5-flash-lite` — Самая быстрая
|
||
- `gemini-3-pro-preview` — Следующее поколение (preview)
|
||
- `gemini-3-flash-preview` — Flash нового поколения (preview)
|
||
|
||
## Решение проблем
|
||
|
||
**"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"**
|
||
```bash
|
||
python3 gemini_patcher.py --settings-only
|
||
```
|
||
|
||
**Откат**
|
||
```bash
|
||
sudo python3 gemini_patcher.py --rollback
|
||
```
|