Skip to content

Latest commit

 

History

History
187 lines (133 loc) · 23.4 KB

File metadata and controls

187 lines (133 loc) · 23.4 KB

English · 简体中文 · 繁體中文 · 한국어 · 日本語 · Русский · Français

CodexRunway logo

CodexRunway

Как долго ещё сможет работать ваш Codex?

CodexRunway — нативное приложение для строки меню macOS, которое показывает квоту Codex и Grok. Оно также даёт статус сброса Codex за сегодня, reset credits, эквивалентную стоимость API и локальные сессии, а также отдельное управление несколькими аккаунтами для каждого провайдера.

Возможности

  • Смотреть оставшуюся квоту Codex в строке меню.
  • Переключаться вкладками Codex | Grok; строка меню и контекстное меню следуют выбранному провайдеру.
  • Смотреть включённую квоту Grok, разбивку по продуктам (Build / Imagine / Chat), недельные/месячные периоды, предоплаченный баланс и использование по требованию через официальный CLI chat-proxy billing API.
  • На панели Grok использовать те же модули Token Usage (теплокарта / линия / столбцы) и API Equivalent Cost, что и у Codex, плюс недавние локальные сессии из логов Grok CLI.
  • Управлять несколькими аккаунтами Grok OAuth / SuperGrok: изолированный вход, импорт текущего входа, вставка токена/JSON, обновление, псевдонимы, порядок, удаление и явное переключение.
  • Смотреть 5-часовые, недельные и дополнительные окна квоты.
  • Видеть, сбросились ли сегодня лимиты Codex (данные с www.codexrunway.com, со ссылкой на связанный публичный пост).
  • Включать раздел «сброс сегодня?» в настройках и задавать его интервал обновления (по умолчанию включён, каждые 5 минут).
  • Управлять несколькими аккаунтами Codex: вход через браузер, импорт локального auth.json, вставка токена/JSON (включая /auth/session), импорт файлов или добавление API-ключа.
  • Безопасно переключать аккаунты после подтверждения атомарной записью ~/.codex/auth.json, с необязательным перезапуском Codex, чтобы CLI / IDE оставались синхронными.
  • Показывать текущий аккаунт, уровень подписки и срок действия.
  • Оценивать недельную квоту Codex по официальному проценту использования и дневным Credits, сравнивать с прошлыми оценками, чтобы заметить снижение. Модуль включается в настройках (по умолчанию включён).
  • Смотреть число кредитов сброса, статус и время истечения.
  • Смотреть эквивалентную стоимость API и использование токенов за сегодня, текущий цикл, предыдущий цикл, этот месяц или свой диапазон; диапазон по умолчанию настраивается.
  • Показывать график использования токенов с начала года под квотой на главной панели (теплокарта / линия / столбцы; по дням / неделям / накопительно); стиль можно менять на панели и в настройках, по умолчанию теплокарта; можно выключить.
  • Использовать локальный инкрементальный индекс сессий для более быстрых сканирований стоимости.
  • Смотреть недавние сессии Codex, проекты, статус и сводки использования.
  • Восстанавливать локальный индекс сессий.
  • Поддерживать светлое, тёмное и системное оформление, а также English, 简体中文, 繁體中文, 한국어, 日本語, Русский, Français.
  • Поддерживать встроенную проверку обновлений.
  • Предлагать виджеты рабочего стола macOS 14+ для обзора квоты, тренда токенов, ключевого показателя и статуса сброса сегодня.

Снимки экрана

Обзор квоты CodexRunway Сведения о кредитах сброса CodexRunway Эквивалентная стоимость API CodexRunway Страница настроек CodexRunway Несколько аккаунтов CodexRunway Квота Grok в CodexRunway

Установка

Homebrew (рекомендуется)

Установка из поддерживаемого проектом Licoy Homebrew Tap:

brew install --cask licoy/tap/codex-runway

CodexRunway также поддерживает обновления в приложении. Чтобы Homebrew проверил и установил обновление, используйте:

brew upgrade --cask --greedy codex-runway

Удаление по умолчанию сохраняет настройки и копии управляемых аккаунтов. --zap также удаляет данные в ~/.codex-runway, но не удаляет официальные каталоги ~/.codex или ~/.grok и сессии:

brew uninstall --cask codex-runway
brew uninstall --cask --zap codex-runway

Ручная установка

Скачайте подходящий DMG с GitHub Releases:

  • Apple Silicon: CodexRunway-macos-arm64.dmg
  • Intel: CodexRunway-macos-x86_64.dmg

Откройте DMG и перетащите CodexRunway.app в Applications или скачайте и распакуйте ZIP той же архитектуры.

Блокировки безопасности macOS

Текущие выпуски подписаны ad-hoc и не нотаризованы. Если macOS сообщает, что разработчика нельзя проверить или приложение не проверено на вредоносное ПО, нажмите Control по CodexRunway.app и выберите «Открыть», либо перейдите в «Системные настройки > Конфиденциальность и безопасность» и нажмите «Всё равно открыть».

Если macOS говорит, что CodexRunway.app повреждено и его нужно переместить в Корзину, обычно виноват атрибут карантина загрузки. После помещения приложения в Applications выполните:

xattr -dr com.apple.quarantine /Applications/CodexRunway.app

Затем откройте приложение снова.

Требования

  • macOS 12+

  • Рекомендуется установленный и использованный на этом Mac Codex

  • Импорт из локального ~/.codex/auth.json или добавление аккаунтов в приложении (вход через браузер, вставка учётных данных, импорт файлов и т. д.)

  • Перед использованием панели Grok установите официальный Grok CLI:

    curl -fsSL https://x.ai/cli/install.sh | bash
  • Управление аккаунтами Grok и биллинг поддерживают только OAuth / SuperGrok и совместимые legacy-сессии. Выполните grok login --oauth, войдите из приложения, импортируйте текущий вход или вставьте ~/.grok/auth.json / JSON учётных данных. Учётные данные только с API-ключом не добавляются как управляемые аккаунты.

  • Если задан GROK_HOME, приложение использует этот каталог; иначе — ~/.grok. См. xAI Settings.

Локальный запуск

swift run CodexRunway

На macOS 14+ эта команда автоматически собирает и регистрирует отдельное приложение CodexRunway Dev и расширение виджета, затем запускает его. Приложение разработки находится в .build/codex-runway-widget-dev/CodexRunway-dev.app и его можно добавить из системной галереи виджетов. Сначала закройте другие запущенные экземпляры CodexRunway. Задайте CODEX_RUNWAY_DISABLE_DEV_APP=1, только если нужен сырой неупакованный процесс командной строки без виджетов.

Самопроверка:

swift run CodexRunway --self-check

Самопроверка читает только локальное состояние и не делает сетевых запросов. Она печатает обезличенную диагностику Codex плюс версию Grok CLI, статус учётных данных и идентичность аккаунта. Токены и API-ключи никогда не печатаются.

Виджеты рабочего стола

Виджеты требуют macOS 14 или новее. Начиная с выпуска с этим исправлением, публичные релизы и локальные сборки разработки включают расширение виджета. Каждый виджет может независимо выбрать Codex, Grok или оба в «Править виджет»; «Сброс сегодня» только для Codex. После обновления macOS регистрирует производственный виджет из Contents/PlugIns приложения.

swift run CodexRunway использует отдельные идентификаторы swift-dev и не заменяет существующую установку. Можно также упаковать приложение с виджетом вручную с идентификаторами .dev:

INCLUDE_WIDGET=1 \
RUNWAY_BUNDLE_ID=com.github.codex-runway.dev \
RUNWAY_APP_GROUP_ID=group.com.github.codex-runway.dev \
RUNWAY_WIDGET_STORAGE_MODE=local \
bash Scripts/package-app.sh

Приложение записывается в dist/CodexRunway.app. Публичные выпуски с этим исправлением и локальные ad-hoc сборки используют версионированный снимок только для чтения ~/.codex-runway/widget-snapshot.json с правами 0600. Сборка Developer ID с зарегистрированной App Group может задать RUNWAY_WIDGET_STORAGE_MODE=app-group. В снимке нет почты, ID аккаунта, токена, auth JSON или исходного текста внешнего события. Подпись Developer ID, регистрация App Group и нотаризация остаются будущей работой по распространению.

Сетевой прокси

В разделе Панель управления → Общие → Сеть выберите Системные настройки, HTTP-прокси или SOCKS5-прокси. Для собственного прокси поддерживаются имя пользователя и пароль. Настройка действует на запросы Codex, запросы и операции CLI Grok, запускаемые приложением, открытые источники статуса и цен, а также проверку обновлений, примечания к ним и загрузку файлов. Страницы входа в браузере и уже запущенные внешние CLI сохраняют свои сетевые настройки; системный прокси не изменяется.

Нажмите Сохранить настройки прокси, чтобы применить изменения; начатое обновление использует исходную конфигурацию. Проверить соединение загружает только открытую ленту обновлений с текущими несохранёнными настройками, не отправляя данные аккаунта и не сохраняя настройки. Данные авторизации прокси хранятся в Связке ключей macOS отдельно от обычных настроек. При повреждении конфигурации, недоступности данных авторизации или сбое собственного прокси прямое соединение не включается; исправьте настройки или явно выберите Системные настройки.

Конфиденциальность

  • Токены читаются из локального ~/.codex/auth.json; учётные данные нескольких аккаунтов хранятся только в ~/.codex-runway/accounts/<id>/auth.json (каталог 0700, файл 0600). Индекс аккаунтов index.json никогда не содержит токенов.
  • Официальные учётные данные Grok читаются из $GROK_HOME/auth.json (или ~/.grok/auth.json, если не задано). Управляемые копии лежат в ~/.codex-runway/accounts/grok-<stable-id>/auth.json с каталогом 0700 и файлом 0600; отдельный ~/.codex-runway/accounts/grok-index.json не содержит токенов.
  • Квота Grok запрашивается локальными OAuth-учётными данными у официальной конечной точки CLI chat-proxy /v1/billing?format=credits (тот же официальный API, что использует Grok CLI). Приложение не читает cookie браузера и не выводит фальшивую квоту из локальных сессий.
  • При обновлении текущего аккаунта Grok официальный CLI может ротировать токены; приложение зеркалирует получившиеся официальные учётные данные только в этот управляемый аккаунт. Не текущие аккаунты используют изолированный GROK_HOME и никогда не пишут официальные учётные данные.
  • Переключение аккаунта Grok заменяет только области OAuth / совместимого legacy-входа в официальных учётных данных, сохраняя API-ключ и неизвестные области. Переключение гарантировано только для новых сессий. Запущенные процессы Grok не завершаются и могут записать предыдущий аккаунт обратно, поэтому перед продолжением показывается строгое предупреждение.
  • Официальный ~/.codex/auth.json перезаписывается только при подтверждении переключения аккаунта (атомарная запись), чтобы Codex CLI / IDE оставались синхронными.
  • Обновление неактивного управляемого аккаунта обновляет только его копию в библиотеке, не официальный auth.json. Обновление активного аккаунта синхронизирует официальный auth и копию в библиотеке.
  • Недействительные или mock-учётные данные никогда не записываются обратно в официальный ~/.codex/auth.json.
  • Access token, refresh token, ID token и API-ключи не должны попадать в журналы, README, шаблоны issues или вывод самопроверки.
  • Эквивалентная стоимость API по умолчанию считается по локальным JSONL-журналам сессий, с производными данными вроде локального инкрементального индекса в ~/.codex-runway/. Содержимое сессий не загружается.
  • Оценка недельной квоты сохраняет только производные суммы Credits и проценты в ~/.codex-runway/quota-estimate-history.json. Без токенов и ключей.
  • Онлайн-использование дополняет эквивалентную стоимость API только когда нет локальных данных о токенах. Серия графика «Официальная статистика (все устройства)» берётся из статистики профиля текущего аккаунта и может запаздывать или пересматриваться; «Локальные журналы (все сессии)» сканирует сессии на этом Mac, и история может охватывать несколько аккаунтов. Дневные значения используют даты UTC, чтобы оба источника делили одну границу суток. Это не отношение подмножества, их нельзя вычитать.
  • Восстановление сессий затрагивает только ~/.codex/session_index.jsonl, создаёт резервную копию перед записью и никогда не удаляет файлы сессий.
  • «Сброс сегодня?» скачивает только публичную ленту статуса. Оно не отправляет аккаунт Codex, токен или содержимое локальных сессий.
  • Проверка обновлений запрашивает только сведения о версии. Данные аккаунта и сессий Codex не загружаются.
  • Снимок виджета содержит только несекретные производные данные квоты, баланса, стоимости, дневных токенов и статуса сброса. Главное приложение — единственный писатель; виджеты только читают.

Источники данных

  • Сброс сегодня?: данные с https://www.codexrunway.com/api/status.json. Неофициально и только для справки; могут запаздывать или временно отсутствовать.
  • Квота / reset credits / оценка недельной квоты / официальное использование токенов / часть онлайн-использования: при входе запросы используют локальные учётные данные к официальным API ChatGPT / Codex. Официальное использование токенов относится к текущему аккаунту и показывает дату статистики бэкенда. Оценка квоты неофициальна: недельный лимит экстраполируется из процента использования и дневных Credits (1000 Credits ≈ $40, версия credits-usd-2026-08-26).
  • Квота Grok: возвращается только официальной конечной точкой CLI chat-proxy /v1/billing?format=credits с локальным входом OAuth / SuperGrok. Второго источника нет, статистика API-биллинга или локальных сессий в эту квоту не смешивается.
  • Эквивалентная стоимость API Grok / локальные сессии: считается по локальному ~/.grok/sessions использованию turn_completed по официальным ценам xAI Text API (input / cached / output; prompt ≥ 200k — длинный контекст; прайс xai-builtin-2026-08-13). Неизвестные модели не выдаются как точная стоимость. CLI costUsdTicks — учёт кредитов подписки и не используется как эквивалент API.
  • Использование токенов по локальным журналам / эквивалентная стоимость API / недавние сессии: по умолчанию считается по локальным журналам сессий ~/.codex и локальному индексу. У исторических локальных журналов нет надёжной привязки к аккаунту, поэтому они могут включать несколько аккаунтов.

Разработка и вклад

swift test
swift build
swift build -c release

Заметки по вкладу см. в CONTRIBUTORS.md.

Сообщество

Лицензия

Проект следует LICENSE репозитория.