# Codex и OpenCode на бесплатном Gemini: ставим Gemini Web2API

Здесь всё, чтобы запустить Gemini Web2API у себя и подключить его к агенту для кода: что понадобится, запуск сервера, проверка, готовые настройки для Codex и OpenCode, какие модели выбрать и что делать, если Gemini не открывается или отвечает пусто.

## Что это

**Gemini Web2API** - открытый инструмент под лицензией MIT, репозиторий: https://github.com/Sophomoresty/gemini-web2api

Это один файл на Python. Он поднимает у тебя на компьютере маленький сервер: сервер принимает запросы в формате OpenAI и передаёт их в веб-версию Gemini. Ключ Google API не нужен, вход в аккаунт тоже: модели работают в анонимном режиме. Агенту для кода остаётся только адрес этого сервера. Запросы идут в твой сервер, а не в OpenAI, поэтому сообщения из лимита тарифа Codex на них не тратятся.

## Что понадобится

- **Python** версии 3.8 или новее. Скачать: https://www.python.org/downloads/ . Проверить в терминале: `python3 --version` (в Windows `python --version`).
- **Агент для кода** на выбор: **Codex** (https://github.com/openai/codex) или **OpenCode** (https://opencode.ai/docs/providers).
- **Доступ к Gemini** (https://gemini.google.com). Веб-версия работает не во всех странах, России в официальном списке нет: https://support.google.com/gemini/answer/13575153 . Если сайт у тебя не открывается, серверу понадобится прокси - это шаг 5.
- **Git** - по желанию. Без него скачай архив на странице репозитория: зелёная кнопка Code, затем Download ZIP.

## Шаг 1. Скачай и запусти сервер

1. Скачай репозиторий: `git clone https://github.com/Sophomoresty/gemini-web2api.git` и перейди в папку: `cd gemini-web2api`
2. Поставь единственную зависимость для потоковых ответов: `pip install httpx` (на macOS и Linux может называться `pip3 install httpx`).
3. Запусти сервер: `python gemini_web2api.py` (или `python3 gemini_web2api.py`).
4. В терминале появится блок с версией. Найди строку **Base URL** - это адрес сервера, он заканчивается на `localhost:8081/v1`. Скопируй его целиком, вместе с приставкой http в начале: дальше он называется «адрес из шага 1». Строка **Cookie: none (anonymous)** значит, что работает анонимный режим без аккаунта.
5. Окно терминала не закрывай: пока оно открыто, сервер работает.

## Шаг 2. Проверь, что сервер отвечает

Открой второе окно терминала и выполни `curl localhost:8081/v1/models`. В ответ придёт список моделей. Какие брать:

| Модель | Когда брать |
|---|---|
| `gemini-3.6-flash` | основная модель для агента, ответ примерно до 12 тысяч символов |
| `gemini-3.7-flash` | новая версия Flash, если она есть в списке |
| `gemini-3.5-flash-thinking` | сложная задача, долгое размышление и самый длинный ответ, примерно до 20 тысяч символов |
| `gemini-flash-lite` | самые быстрые ответы на простые вопросы |

`gemini-3.1-pro` без cookie от платной подписки Gemini отвечает той же моделью Flash, поэтому для начала бери `gemini-3.6-flash`.

## Шаг 3. Подключи Codex

1. Поставь Codex, если его ещё нет: `npm install -g @openai/codex`, или `brew install --cask codex`, или `curl -fsSL https://chatgpt.com/codex/install.sh | sh`
2. Открой файл `~/.codex/config.toml` в папке пользователя (нет файла - создай) и добавь в конец три строки:

- `[model_providers.gemini_web]`
- `name = "Gemini Web2API"`
- `base_url = "адрес из шага 1"` - между кавычками вставь скопированный адрес вместо этих слов

3. Настройки провайдера кладутся именно в этот файл. Файл `.codex/config.toml` внутри проекта Codex для провайдеров не читает.
4. Запусти Codex на Gemini: `codex -c model_provider=gemini_web -m gemini-3.6-flash`
5. Проверь связку первым запросом: «Прочитай структуру этого проекта и коротко опиши, что он делает. Ничего не меняй.» Если ответ пришёл, а в окне сервера появилась строка с `POST /v1/responses`, всё подключено.
6. Чтобы Codex всегда стартовал на Gemini без флагов, добавь в самое начало того же файла, до строк в квадратных скобках, две строки: `model_provider = "gemini_web"` и `model = "gemini-3.6-flash"`. Вернуться к обычному Codex - удали эти две строки.

Файлы, правки и команды выполняет сам Codex у тебя на компьютере, сервер только передаёт ответы Gemini.

## Шаг 4. Подключи OpenCode

1. Поставь OpenCode: `curl -fsSL https://opencode.ai/install | bash` или `npm i -g opencode-ai@latest`
2. В папке проекта создай файл `opencode.json` и вставь в него:

`{"$schema": "https://opencode.ai/config.json", "provider": {"gemini-web": {"npm": "@ai-sdk/openai-compatible", "name": "Gemini Web2API", "options": {"baseURL": "адрес из шага 1"}, "models": {"gemini-3.6-flash": {"name": "Gemini 3.6 Flash"}, "gemini-3.5-flash-thinking": {"name": "Gemini 3.5 Flash Thinking"}}}}}`

Вместо слов «адрес из шага 1» вставь скопированный адрес.

3. Запусти `opencode` в этой папке. Набери `/connect`, пролистай вниз до пункта Other, введи id `gemini-web` и любой ключ, например `sk-local`: сервер без настроенных ключей принимает любой.
4. Набери `/models` и выбери Gemini 3.6 Flash из группы Gemini Web2API.
5. Первый запрос для проверки: «Опиши структуру проекта и предложи 3 улучшения. Код пока не меняй.»

## Шаг 5. Если что-то не работает

- **Ошибка соединения или timeout в окне сервера** - Gemini не открывается из твоей сети. Запусти сервер через прокси: `python gemini_web2api.py --proxy` и через пробел адрес своего HTTP-прокси с портом. Второй способ - перед запуском задать переменную окружения HTTPS_PROXY с тем же адресом.
- **HTTP 429 Too Many Requests** - Google притормаживает слишком частые запросы. Сервер сам повторяет запрос 3 раза. Не запускай много агентов одновременно и сделай паузу.
- **Пустой ответ или HTTP 400** - обнови репозиторий командой `git pull` и перезапусти сервер: при запуске он сам подтягивает свежую версию веб-протокола Gemini.
- **invalid api key** - в `config.json` заданы ключи, а агент шлёт другой. Впиши тот же ключ в агент или очисти список ключей.
- **Агент пишет, что не видит модель** - проверь, что имя модели в настройках совпадает с одним из имён из шага 2 буква в букву.
- **Codex показывает пустые ответы** - обнови и сервер (`git pull`), и Codex. Не помогло - подключи тот же адрес в OpenCode по шагу 4.

## Шаг 6. Закрой сервер от чужих и береги данные

1. По умолчанию сервер слушает все сетевые адреса компьютера, и к нему могут подключиться из твоей сети. Создай рядом с `gemini_web2api.py` файл `config.json` с одной строкой: `{"host": "127.0.0.1", "api_keys": ["sk-придумай-свой-ключ"]}` и перезапусти сервер.
2. Для Codex добавь в раздел `[model_providers.gemini_web]` строку `env_key = "GEMINI_WEB_ACCESS"` и перед запуском задай переменную: `export GEMINI_WEB_ACCESS=sk-придумай-свой-ключ` (в Windows PowerShell `$env:GEMINI_WEB_ACCESS="sk-придумай-свой-ключ"`).
3. Для OpenCode введи этот же ключ в `/connect` вместо `sk-local`.
4. Не отправляй через сервер пароли, токены и закрытый код клиентов: запросы уходят в веб-версию Gemini.
5. Cookie для работы не нужен. Если захочешь Pro-модель через cookie платной подписки, бери отдельный Google-аккаунт, а не основной: это неофициальный доступ к веб-версии, и условия использования Google запрещают автоматический доступ к сервисам в обход правил сайта. Условия: https://policies.google.com/terms
6. Не раздавай свой сервер другим людям и не гоняй через него десятки запросов в секунду: автор инструмента советует держать его для личной работы.

---

Источник: https://localhost:3000/m/codex-i-opencode-na-besplatnom-gemini-stavim-gemini-web2api
