Веб-дашборд
opencodex включает локальный веб-дашборд (Vite/React-приложение в каталоге gui/), который раздаёт
сам прокси. Это кратчайший путь к управлению провайдерами, аккаунтами Codex/ChatGPT, моделями
каталога, сайдкарами, настройками подагентов и трафиком запросов.
Как открыть
Заголовок раздела «Как открыть»ocx guiКоманда открывает http://localhost:<port> в браузере, при необходимости сначала автоматически
запуская прокси. При разработке dev-сервер GUI можно запускать отдельно поверх работающего прокси:
ocx startbun run dev:guiТолько Material 3
Заголовок раздела «Только Material 3»Пакетный дашборд содержит только интерфейс Material 3. Устаревший UI, его исходники и fallback на
соседнюю сборку удалены. Прокси раздаёт только принадлежащий пакету gui/dist, если его build
manifest указывает Material 3 и совпадает с версией работающего пакета; HTML получает no-store.
Если проверенной сборки нет или она устарела, прокси сообщает, что дашборд недоступен, и предлагает
пересобрать или переустановить пакет, а не показывает старый интерфейс. Переключателя legacy layout
нет.
Возможности
Заголовок раздела «Возможности»| Раздел | Что делает |
|---|---|
| Сводка Dashboard | Мультиагентный режим, состояние онлайн, версия, время работы, число провайдеров, сумма токенов за 30 дней, активные провайдеры и доступные нативные/маршрутизируемые модели. |
| Sub-agent delegation | Выбор нативной/маршрутизируемой модели и необязательного уровня рассуждений, общих для руководства OpenCodex по делегированию и опциональных нативных значений подагентов Codex по умолчанию. Это не маршрутизатор отдельных порождений; см. ниже. |
| Сайдкары | Выбор модели и уровня рассуждений для веб-поиска, а также модели описания изображений. Изменения применяются со следующего запроса. |
| Maintenance | Пересинхронизация каталога моделей Codex, просмотр предупреждений об обходе через проектную локальную конфигурацию, проверка последнего или предварительного выпуска и запуск обновления с необязательным перезапуском прокси. |
| Безопасность запуска | Показывает, сохранит ли внедрённая маршрутизация Codex работоспособность после перезагрузки, отдельно отображая службу, launcher shim и точные команды исправления. |
| Трей Windows | Устанавливает пользовательский значок входа для запуска, остановки, перезапуска, панели и состояния прокси одним щелчком. Трей не является службой перезапуска. |
| Автозапуск Codex | Разрешает уже установленному launcher shim Codex выполнять ocx ensure. Переключатель не устанавливает shim или фоновую службу. |
| Providers | Добавление, редактирование, включение/отключение и удаление провайдеров; управление пулами OAuth-аккаунтов и пулами API-ключей там, где они поддерживаются. Для пулов Claude (Anthropic) OAuth у каждого вошедшего аккаунта свои полосы 5-часового и недельного лимита (использование по учётным данным); при сбое опроса сохраняются последние известные значения с пометкой недоступности. |
| Add provider | Поиск по пресетам из реестра: вход по аккаунту, сервисы с API-ключом, локальные серверы или пользовательская конечная точка. |
| Codex Auth | Добавление аккаунтов пула ChatGPT/Codex, выбор аккаунта для следующей сессии, обновление квот 5 ч / недельных / 30-дневных, включение или отключение автопереключения, настройка его порога 1–100% и failover при временных сбоях. |
| Subagents | Выделение до пяти «голых» нативных или маршрутизируемых моделей с пространством имён в списке переопределений spawn_agent. |
| Models | Включение и отключение нативных GPT и маршрутизируемых моделей, настройка списков разрешённых провайдеров и лимитов контекста, выбор v1/base/v2 и настройка лимита потоков v2. |
| Logs | Автообновляемый список недавних запросов: токены, запрошенный и, когда доступен, фактически отправленный уровень рассуждений, фактическая модель, провайдер, статус, id запроса, длительность и подробности ошибок. Если адаптер отправляет параметр рассуждений, в подробностях также отображается точное wire-поле. Можно фильтровать по непрозрачному id диалога/сессии (если клиент его передаёт) и суммировать токены и оценочную стоимость по прайс-листу в пределах загруженного кольца Logs. |
| Usage / Debug | Просмотр покрытия и трендов расхода токенов либо включение опциональной диагностики транспорта провайдеров и извлечения данных об использовании. |
| Storage | Только чтение разбивки диска CODEX_HOME (сессии, архивы, БД, вложения). Опциональная очистка архива: предпросмотр самых старых N%, затем карантин в CODEX_HOME/.trash (по умолчанию) или безвозвратное удаление по явному флажку. Политика автоочистки — opt-in и по умолчанию ВЫКЛ (storageCleanupPolicy.enabled); порог/цель/расписание/режим на странице Storage или Запустить сейчас. Записи карантина можно восстановить со страницы Storage (JSONL + threads). Активные сессии только для чтения. Очистка и восстановление отклоняются, пока Codex держит блокировку новейшего/активного state_*.sqlite. |
| Удалённое подключение | Ручное открытие другого OpenCodex по IPv4, IPv6 или имени хоста и фактическому порту. ADMIN-аутентификацию выполняет целевой дашборд. |
| Экспорт | Экспорт данных дашборда в поддерживаемых форматах/архивах. Защищённый паролем 7z недоступен без безопасного транспорта пароля. |
| Stop | Корректная остановка прокси и установленного фонового сервиса, восстановление нативного Codex и выход (POST /api/stop). |
Подключение к другому OpenCodex
Заголовок раздела «Подключение к другому OpenCodex»Откройте Подключиться к другому OpenCodex на панели навигации или в мобильном меню. Введите
IPv4, IPv6 или DNS-имя и порт от 1 до 65535. По умолчанию указан 10100; если удалённый экземпляр
автоматически запустился на fallback-порту, замените его identity-verified фактическим портом из
ocx host status (или ocx status), а не значением из конфигурации.
Кнопка Подключиться открывает #/dashboard точного проверенного HTTP origin в новой вкладке. Она
не проверяет, работает ли узел, не добавляет token в URL и не сохраняет его. Целевой дашборд
запрашивает ADMIN token этого прокси, отдельный от data-plane API keys. HTTP не шифруется, поэтому
прямое подключение допустимо только в доверенной LAN; в других сетях предпочитайте SSH tunnel.
Архивы экспорта
Заголовок раздела «Архивы экспорта»Незашифрованный 7z доступен при наличии безопасного executable 7-Zip, но шифрование паролем отключено. 7-Zip принимает пароль только через process arguments, где его могут увидеть другие локальные процессы. OpenCodex не включит шифрование до появления защищённого password-input channel.
Ссылки на разделы
Заголовок раздела «Ссылки на разделы»Макет теперь один, поэтому переключать нечего. Зато у разделов Dashboard есть собственные адреса: #dashboard открывает Overview, а #dashboard/providers и #dashboard/models — два других раздела. Перезагрузка, закладка и кнопка «Назад» сохраняют выбранный раздел. Logs работает так же — #logs и #logs/debug. Старая закладка #providers/workspace теперь ведёт на #providers.
Значения стоимости в Logs и Usage — это эквиваленты стоимости по прайс-листу API, рассчитанные на основе сообщённых токенов. Они не являются счётом и не подтверждают фактическое списание; расходы могут покрываться подпиской или кредитами провайдера.
Видимость моделей
Заголовок раздела «Видимость моделей»Переключатели Models показывают итоговую видимость в Codex. Маршрутизируемая модель включена, только если она входит в allowlist провайдера (или allowlist отсутствует) и не отключена. Включение атомарно согласует оба фильтра, а Включить все удаляет allowlist и включает новые модели.
Селектор делегирования и маршрутизация порождений
Заголовок раздела «Селектор делегирования и маршрутизация порождений»Селектор Sub-agent delegation в дашборде сохраняет injectionModel и, при желании,
injectionEffort. Выбранные значения используются в добавляемом OpenCodex руководстве по
делегированию, которое отдельно управляется полем multiAgentGuidanceEnabled. Очистка модели также
очищает сохранённый уровень и отключает синхронизацию нативных значений по умолчанию.
Если включить Использовать как нативные значения подагентов Codex по умолчанию, следующая
синхронизация или перезапуск применит выбранные модель и уровень как нативные значения [agents],
когда активной маршрутизацией Codex управляет OpenCodex. Внешняя пользовательская конфигурация
провайдера остаётся неизменной. Они действуют только для вновь создаваемых задач Codex, и эта настройка сама по себе не запускает
делегирование. Существующие пользовательские значения [agents] не перезаписываются, а сохраняются,
поэтому запрошенные и фактические значения Codex по умолчанию могут различаться.
Селектор предлагает включённые нативные и маршрутизируемые модели, а также глобальную шкалу уровней рассуждений Codex. API валидирует выбранный уровень глобально; Codex дополнительно валидирует уровень порождения по целевой записи каталога.
Codex Auth и пулы аккаунтов
Заголовок раздела «Codex Auth и пулы аккаунтов»Страница Codex Auth управляет нативным маршрутом ChatGPT/Codex:
- Ручной выбор аккаунта меняет следующую новую сессию Codex; уже привязанный поток при таком ручном переключении сохраняет текущий аккаунт.
- Привязка потока предотвращает метание между аккаунтами на каждом запросе. При включённом автопереключении по квоте долгоживущий поток периодически переоценивается и может перепривязаться, когда его релевантное использование достигает порога и существует подходящий аккаунт со строго меньшим использованием.
- Новые сессии могут выбирать подходящий аккаунт с наименьшим использованием. Платные тарифы оцениваются по самому загруженному из известных окон — 5-часового, недельного или 30-дневного; тарифы Go/Free используют только 30-дневное окно.
- Refresh quotas немедленно перечитывает использование аккаунтов, чтобы маршрутизация и карточки аккаунтов опирались на одни и те же значения.
- Логи запросов пула используют непрозрачные метки вида
p3fa91cи никогда — email аккаунтов.
Как дашборд взаимодействует с прокси
Заголовок раздела «Как дашборд взаимодействует с прокси»GUI — это тонкий клиент поверх JSON-API управления прокси. Полезные эндпоинты:
| Эндпоинт | Назначение |
|---|---|
GET / PUT /api/settings | Чтение настроек или переключение автозапуска Codex. |
GET /api/startup-health | Чтение безопасной диагностики маршрутизации, службы, shim и устойчивости к перезагрузке. |
GET / POST /api/windows-tray | Чтение или изменение установки и видимости трея Windows; POST поддерживает install, start, stop, uninstall. |
POST /api/sync | Пересборка общего каталога моделей и инвалидация кэша моделей Codex. |
GET /api/update/check · POST /api/update/run · GET /api/update/status | Проверка, запуск и мониторинг задач самообновления. |
GET / PUT /api/sidecar-settings | Чтение или настройка моделей сайдкаров поиска/vision. |
GET / PUT /api/injection-model | Чтение или настройка модели/уровня руководства по делегированию, его переключателя и переключателя синхронизации нативных значений подагентов Codex по умолчанию. |
GET / PUT /api/v2 | Чтение или настройка режима поверхности, фиче-флага Codex и лимита потоков v2. |
GET /api/providers · POST /api/providers · PATCH /api/providers?name=... · DELETE /api/providers?name=... | Список, добавление/замена, включение/отключение или удаление провайдеров. |
GET /api/models · PUT /api/disabled-models | Список строк нативных/маршрутизируемых моделей и обновление общего набора отключённых моделей. |
GET /api/selected-models · PUT /api/model-visibility | Чтение allowlist провайдера и атомарное изменение итоговой видимости модели или группы провайдера. |
GET /api/key-providers · GET /api/oauth/providers | Чтение каталогов провайдеров с API-ключом и OAuth. |
POST /api/oauth/login · GET /api/oauth/status | Запуск OAuth-процесса провайдера и опрос его завершения. |
GET /api/codex-auth/accounts?refresh=1 | Список основного и пуловых аккаунтов с принудительным обновлением квот и состояниями hasCredential / terminal needsReauth основного аккаунта. |
PUT /api/codex-auth/active · PUT /api/codex-auth/auto-switch · PUT /api/codex-auth/failover | Выбор аккаунта для следующего запроса и настройка маршрутизации пула. |
POST /api/codex-auth/login · GET /api/codex-auth/login-status | Добавление аккаунта пула через вход в браузере. |
GET /api/logs?tail=50&provider=...&status=5xx | Чтение метаданных недавних запросов с необязательными фильтрами tail, провайдера и точного/классового статуса. |
GET / PUT /api/subagent-models | Чтение или настройка пяти выделенных моделей переопределения spawn_agent. |
POST /api/stop | Остановка прокси/сервиса, восстановление нативного Codex и выход. |

