Перейти к содержимому

Веб-дашборд

opencodex включает локальный веб-дашборд (Vite/React-приложение в каталоге gui/), который раздаёт сам прокси. Это кратчайший путь к управлению провайдерами, аккаунтами Codex/ChatGPT, моделями каталога, сайдкарами, настройками подагентов и трафиком запросов.

Окно терминала
ocx gui

Команда открывает http://localhost:<port> в браузере, при необходимости сначала автоматически запуская прокси. При разработке dev-сервер GUI можно запускать отдельно поверх работающего прокси:

Окно терминала
ocx start
bun run dev:gui

Пакетный дашборд содержит только интерфейс 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 на панели навигации или в мобильном меню. Введите 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 управляет нативным маршрутом 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 и выход.