Приложение в строке меню macOS
Элемент в строке меню macOS входит в настольное приложение OpenCodex. Он показывает данные об использовании локального прокси и открывает нативную панель использования. В том же приложении есть дашборд и расширение WidgetKit. Установка на других платформах описана в руководстве по настольному приложению.
Установка
Заголовок раздела «Установка»Загрузите OpenCodex-<version>-macos.dmg из последнего выпуска. Откройте DMG и перетащите OpenCodex.app в Applications. Для настольного приложения требуется macOS 13 или новее, а для виджета — macOS 14 или новее.
Первый запуск
Заголовок раздела «Первый запуск»Релизные сборки OpenCodex.app подписаны Developer ID, используют усиленную защиту среды выполнения и нотариально заверены Apple с прикреплённым к приложению билетом. При первом запуске macOS обычно запрашивает лишь стандартное подтверждение для приложения, загруженного из интернета. Если macOS всё же блокирует его, откройте System Settings → Privacy & Security и выберите Open Anyway для OpenCodex. Приложения, собранные локально, подписываются ad-hoc подписью; см. сборку из исходного кода.
При открытии приложение показывает ход запуска в окне. При первом запуске оно один раз включает Start at Login; настройку можно выключить в меню системной панели. Последующие запуски через элемент автозагрузки проходят со скрытым окном, а значок остаётся доступным.
Строка меню и панель использования
Заголовок раздела «Строка меню и панель использования»По умолчанию заголовок в строке меню показывает общее число токенов за сегодня. В настройках Menu bar & widget дашборда можно выбрать запросы, токены, оценочную стоимость, квоту или только значок.
Используйте Show Usage в меню системной панели, чтобы открыть нативную панель. В зависимости от настроек отображения она показывает итоги за сегодня и за 30 дней, график использования, список моделей и лимиты провайдеров и аккаунтов. Итоги включают токены и запросы, а при включённой настройке — оценочную стоимость. В строках квот указаны период, процент и время сброса. Отсутствующие измерения показываются как —, а частичное использование помечается как неполное.
На панели есть элементы Refresh, Dashboard и Settings. Dashboard открывает представление использования в окне приложения, а Settings — настройки сопутствующего приложения. Меню системной панели также содержит Open Dashboard, Open in Browser, Start at Login, Stop proxy, Check for Updates…, пункт Install update при доступном обновлении и Quit. Пункт Stop proxy отображается всегда, но активен только когда прокси запущен самим приложением; отдельно запущенный прокси продолжит работать. Если значок доступен, закрытие окна или Command-Q скрывает приложение; для выхода используйте Quit в меню системной панели.
Заголовок в строке меню обновляется каждые 60 секунд. Пока нативная панель открыта, её данные тоже обновляются каждые 60 секунд; Refresh запрашивает немедленное обновление.
На macOS 14 или новее один раз откройте OpenCodex.app, затем нажмите с Control на пустом участке рабочего стола, выберите Edit Widgets, найдите OpenCodex и добавьте виджет нужного размера. Виджеты разных размеров показывают разные сочетания состояния прокси, числа токенов и запросов за сегодня, оценочной стоимости, квот и графика использования. Расширение читает локальный снимок, записанный настольным приложением; он содержит данные для отображения, но не API-ключи и не исходные данные аккаунтов. Приложение обновляет снимок виджета при каждом пятом 60-секундном обновлении панели — примерно раз в пять минут при подключённом прокси. WidgetKit также запрашивает новую временную шкалу через пять минут.
Подключение к прокси
Заголовок раздела «Подключение к прокси»Настольное приложение просит встроенный CLI выполнить ocx resolve --json. Оно подключается к существующему доступному локальному прокси либо запускает встроенную среду выполнения, только если CLI подтвердил отсутствие работающего прокси. При неопределённом результате обнаружения приложение сообщает о проблеме запуска, а не поднимает второй прокси. Оно обращается к найденному порту на 127.0.0.1.
Для запросов управления приложение сначала пробует подключиться без токена. Если прокси отвечает HTTP 401, оно повторяет запрос с OPENCODEX_ADMIN_AUTH_TOKEN из окружения приложения или из файла admin-api-token в найденном домашнем каталоге конфигурации. Для этого токена не используется macOS Keychain. Настольная оболочка не может подключиться к прокси, привязанному только к адресу, недоступному ей через loopback.
Сборка из исходного кода
Заголовок раздела «Сборка из исходного кода»На macOS 13 или новее при наличии Bun, Rust и инструментов Swift/Xcode для macOS соберите дашборд из корня репозитория, затем выполните команды для настольного приложения из desktop/:
bun installbun run build:guicd desktopbun installbun run prepare-sidecarbun run prepare-widgetbun run build:localbuild:local создаёт локальное приложение и DMG без ключа подписи обновлений Tauri. Прямой запуск bunx tauri build требует TAURI_SIGNING_PRIVATE_KEY, поскольку он также создаёт артефакт обновления. Сборка виджета подписывается ad-hoc подписью, если не задана MACOS_SIGN_IDENTITY; локальная сборка приложения также подписывается ad-hoc подписью. Приложение работает, но macOS не регистрирует расширение виджета с такой подписью, поэтому локальная сборка обычно не показывает виджет OpenCodex. build:local всегда подписывает приложение ad-hoc подписью, так что одной настройки MACOS_SIGN_IDENTITY недостаточно: виджет регистрируется, только если приложение и расширение подписаны одной командой Developer ID, как в релизной сборке. Если нужен виджет, используйте релизную сборку.
Удаление
Заголовок раздела «Удаление»Выключите Start at Login в меню системной панели, если включали его, затем переместите OpenCodex.app из Applications в корзину. Это удалит встроенный CLI и расширение виджета, но сохранит состояние прокси в $OPENCODEX_HOME и отдельно установленную службу ocx. Настольное приложение также записывает ID установки и маркеры автозагрузки в собственный каталог конфигурации, а снимок виджета — в ~/Library/Containers/com.opencodex.desktop.widget/Data/Library/Application Support/OpenCodex/snapshot.json; перемещение приложения в корзину не удаляет эти файлы.

