Files
unlimitedcoding/codex
delta-cloud-208e fa07058917 fix(codex): remove model_catalog_json — wrong format crashed Codex
model_catalog_json expects internal Codex ModelsResponse format with
complex ModelInfo structs (slug, display_name, visibility, shell_type,
supported_reasoning_levels, etc.), not simple OpenAI API format.
Removed from all configs to restore working state.

env_key = "OPENAI_API_KEY" fix is preserved (fixes 401 Unauthorized).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:48:31 +00:00
..

Codex CLI — Patched

Patched OpenAI Codex CLI for use with custom API endpoints. Latest: v0.111.0 (6 config patches).

Codex CLI — это compiled Rust binary. В отличие от Claude Code и Gemini CLI (JavaScript), патчинг выполняется через config.toml + переменные окружения.

Установка

Требования

  • Python 3.11+ (для tomllib)
  • curl (для скачивания бинарника)
  • Linux x86_64 или aarch64 (macOS/Windows — вручную)

Быстрая установка (Linux)

# 1. Клонировать репо (или скачать файлы)
git clone https://git.sensey24.ru/aibot777/unlimitedcoding.git
cd unlimitedcoding/codex

# 2. Настроить конфиг — указать свой API endpoint и ключ
cp codex_config.example.json codex_config.json
nano codex_config.json   # Изменить base_url и api_key

# 3. Установить бинарник + применить патчи
sudo bash ucodex_install.sh

Ручная установка (шаг за шагом)

Шаг 1 — Установить бинарник Codex CLI:

# Скачать последнюю версию с GitHub
sudo bash update-codex.sh
codex --version   # Должно показать: codex-cli 0.111.0

Шаг 2 — Настроить конфиг:

cp codex_config.example.json codex_config.json

Отредактировать codex_config.json:

{
  "base_url": "https://your-api-endpoint.example.com",
  "api_key": "YOUR_API_KEY",
  "model": "gpt-5.2-codex"
}

Шаг 3 — Применить патчи:

sudo python3 codex_patcher.py --apply --config codex_config.json

Вывод:

Codex CLI Patcher
  Version: 0.111.0
  Binary:  /usr/local/bin/codex
  Proxy:   https://your-api-endpoint.example.com

      [OK]  Target 1:   base_url configured
      [OK]  Target 2:   codex login: ok
      [OK]  Target 3:   analytics disabled
      [OK]  Target 4:   approval_policy=never, sandbox=danger-full-access
      [OK]  Target 5:   model=gpt-5.2-codex, effort=high
      [OK]  Target 6:   Set 2 env var(s) in /etc/environment

  All patches applied successfully!

Шаг 4 — Проверить:

# Validate
python3 update_codex_patcher.py --validate

# Test
codex exec "What is 2+2? Reply with just the number"

Обновление

Обновить бинарник Codex CLI

cd unlimitedcoding/codex
sudo bash update-codex.sh

Скрипт автоматически:

  • Проверяет последнюю версию на GitHub
  • Скачивает musl-совместимый бинарник
  • Заменяет /usr/local/bin/codex

Обновить конфиг-патчи (после обновления бинарника)

sudo python3 codex_patcher.py --apply

Полный автоматический цикл

sudo python3 update_codex_patcher.py --auto

Выполняет: check → update binary → apply patches → validate → test.

Обновить сам патчер (новая версия скриптов)

cd unlimitedcoding
git pull
cd codex
sudo python3 codex_patcher.py --apply

Что патчится (6 targets)

# Target Что делает
1 api_endpoint Redirect API через [model_providers.custom] в config.toml
2 authentication API key auth вместо ChatGPT OAuth (codex login --with-api-key)
3 telemetry Отключить analytics: [analytics] enabled = false
4 permissions approval_policy = "never", sandbox_mode = "danger-full-access"
5 model_config Модель, reasoning effort, отключить auto-update
6 system_env /etc/environment: OPENAI_BASE_URL, OPENAI_API_KEY

Конфигурация

Файл ~/.codex/config.toml (генерируется патчером):

model = "gpt-5.2-codex"
model_reasoning_effort = "high"
model_provider = "custom"
approval_policy = "never"
sandbox_mode = "danger-full-access"
check_for_update_on_startup = false
forced_login_method = "api"

[analytics]
enabled = false

[model_providers.custom]
name = "custom"
base_url = "https://your-api-endpoint.example.com/v1"
env_key = "OPENAI_API_KEY"
wire_api = "responses"

Rollback

Восстановить оригинальный конфиг:

python3 codex_patcher.py --rollback

Troubleshooting

"Error loading configuration: missing field name"

Обновите патчер (git pull) и перезапустите: python3 codex_patcher.py --apply

codex не запускается (segfault / GLIBC)

Скрипт update-codex.sh скачивает musl-версию для совместимости. Если проблема остаётся:

# Проверить бинарник
file /usr/local/bin/codex
ldd /usr/local/bin/codex   # Должно быть "not a dynamic executable" (static)

"OPENAI_API_KEY not set"

# Вариант 1: Перезайти в shell (env vars из /etc/environment)
source /etc/environment

# Вариант 2: Установить вручную
export OPENAI_BASE_URL="https://your-endpoint/v1"
export OPENAI_API_KEY="your-key"

Permissions промпты всё ещё появляются

Убедитесь что config.toml содержит approval_policy = "never":

cat ~/.codex/config.toml | grep approval

Структура файлов

codex/
├── codex_patcher.py           # Главный патчер (6 targets)
├── codex_config.json          # Ваш конфиг (не коммитить!)
├── codex_config.example.json  # Пример конфига
├── update_codex_patcher.py    # Pipeline CLI
├── update-codex.sh            # Бинарный updater с GitHub
├── ucodex_install.sh          # One-liner installer
└── updater/
    ├── __init__.py
    └── config_validator.py    # Валидация 6 targets