У меня три ChatGPT-аккаунта. На каждом свои лимиты, своя история, свои причины существовать. И на каждом они кончаются в самый неподходящий момент.
Переключаться вручную то ещё удовольствие. Особенно когда работаешь через Codex CLI или OpenCode и хочешь просто писать код, а не следить за тем, на каком аккаунте сейчас крутится запрос.
Именно под эту боль и написан codex-lb.
Что это такое
Обратный прокси, который сидит между вашим клиентом и ChatGPT, раскидывает запросы по пулу аккаунтов и показывает в дашборде, кто сколько потратил.

Снаружи это обычный OpenAI-совместимый эндпоинт. Codex CLI, OpenCode, OpenAI Python SDK работают без переделок, просто меняешь base_url.
Внутри FastAPI, SQLAlchemy для хранения статистики, OAuth для авторизации в ChatGPT. Фронт написан отдельно, общается с бэкендом по REST.
Зачем это нужно, если есть официальный API
Официальный API берёт деньги за токены. ChatGPT Plus/Pro работает по фиксированной подписке с лимитами, но без поштучной оплаты. Если много генерируешь, особенно с моделями типа gpt-5.3-codex на высоком reasoning, подписка может оказаться выгоднее.
Один аккаунт упирается в лимиты. Два аккаунта требуют ручного переключения. Три и больше превращаются в хаос.

codex-lb решает именно это: пул аккаунтов ведёт себя как один бесшовный эндпоинт.
Как запустить
Проще всего через Docker:
docker volume create codex-lb-data docker run -d --name codex-lb \ -p 2455:2455 -p 1455:1455 \ -v codex-lb-data:/var/lib/codex-lb \ ghcr.io/soju06/codex-lb:latest
Открываешь localhost:2455, добавляешь аккаунты и готово.
Если Docker не нужен:
uvx codex-lb
Данные хранятся в ~/.codex-lb/, один каталог, легко бэкапить.
Подключение клиентов
Codex CLI — в ~/.codex/config.toml:
model = "gpt-5.3-codex" model_reasoning_effort = "xhigh" model_provider = "codex-lb" [model_providers.codex-lb] name = "OpenAI" base_url = "http://127.0.0.1:2455/backend-api/codex" wire_api = "responses" requires_openai_auth = true
Важный момент: name должен быть именно "OpenAI". Это включает /compact эндпоинт, без которого часть функций Codex CLI не работает.
OpenCode — в ~/.config/opencode/opencode.json:
{ "provider": { "codex-lb": { "npm": "@ai-sdk/openai-compatible", "name": "codex-lb", "options": { "baseURL": "http://127.0.0.1:2455/v1" }, "models": { "gpt-5.3-codex": { "name": "GPT-5.3 Codex", "reasoning": true, "interleaved": { "field": "reasoning_details" } } } } }, "model": "codex-lb/gpt-5.3-codex" }
OpenCode добавит codex-lb как дополнительного провайдера, не трогая стандартные. Если используете enabled_providers, не забудьте включить туда и codex-lb, иначе он просто не появится в списке.
Python SDK:
from openai import OpenAI client = OpenAI( base_url="http://127.0.0.1:2455/v1", api_key="sk-clb-...", # из дашборда )
API-ключи и разграничение доступа
По умолчанию прокси открыт, любой клиент в сети может слать запросы. Для дома��него использования это нормально, но если сервер торчит наружу или к нему подключаются несколько человек, включите API Key Auth в Settings.
После этого каждый запрос должен нести Authorization: Bearer sk-clb-.... Ключи создаются в дашборде, полный ключ показывается только один раз при создании.
На каждый ключ можно поставить лимиты по токенам, стоимости, окну времени (день / неделя / месяц) и моделям.
Дашборд и статистика
Дашборд показывает по каждому аккаунту токены, стоимость и тренд за 28 дней. Видно, какой аккаунт скоро упрётся в лимиты.
Авторизация по паролю с опциональным TOTP. Настраивается в Settings.
Модели синхронизируются автоматически, не нужно вручную обновлять список при выходе новых.
Напоследок
Проект активно разрабатывается, issues закрываются быстро, PR принимаются. Если чего-то не хватает, лучше сразу создать issue.
Работает и с корпоративными аккаунтами ChatGPT Team.
