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

Приложение в строке меню 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/:

Terminal window
bun install
bun run build:gui
cd desktop
bun install
bun run prepare-sidecar
bun run prepare-widget
bun run build:local

build: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; перемещение приложения в корзину не удаляет эти файлы.