Skip to content

Releases: raycalrui/CodexMeter

CodexMeter 1.7.0

Choose a tag to compare

@raycalrui raycalrui released this 11 Oct 01:16

CodexMeter 1.7.0

中文

  • 新增可选的额度恢复远程提醒,支持 Bark、Gotify、Telegram 和 Discord,四个渠道默认关闭,可独立开启。
  • 设置侧边栏新增「通知」,集中管理 Mac 本地低额度/消耗偏快提醒和远程渠道;可分别选择 5 小时与周额度恢复提醒。
  • 每个渠道提供测试通知、发送状态和安全错误提示;断网、限流或服务器临时故障最多尝试三次。切换账号、修改发送目标或关闭相关提醒会取消旧任务。
  • 提醒显示实际观测到的剩余额度,不会把部分恢复误报为 100%;重复观测进行客户端去重,不会因未使用额度的重置时间滑动而发送通知。
  • Bark 密钥、Gotify/Telegram Token 和 Discord Webhook 使用本地钥匙串保存;旧明文配置仅在迁移成功后删除,失败会显示提示并保留原值。
  • 不增加额度查询频率,禁用渠道时不发送请求,也不增加闲置推送定时器。通知只发送窗口名称和剩余额度,不发送账号邮箱或 Token 历史。

感谢 @WuBarlynn 在 PR #10 中贡献 Bark/Gotify 功能。

使用方式:打开 Settings → Notifications(设置 → 通知),填写需要的渠道配置,再发送测试通知。CodexMeter 必须运行且联网;服务器接受不代表手机已展示或消息已读。网络响应丢失后的重试仍可能重复送达,应用关闭期间的重置不会补发。

要求:Apple Silicon(arm64),macOS 13 或更高。DMG 沿用 ad-hoc 签名,未经过 Apple 公证;首次打开可能需要右键选择「打开」。更新后,macOS 也可能再次询问钥匙串访问权限。

English

  • Added optional quota-replenishment reminders through Bark, Gotify, Telegram, and Discord. All four channels are disabled by default and can be enabled independently.
  • Added a Notifications settings category for existing local low-quota/over-pace alerts and remote channels, with separate five-hour and weekly replenishment switches.
  • Added test messages, server-acceptance status, and safe error feedback. Transient network failures, rate limits, and server errors get at most three attempts. Account changes, destination changes, and disabled reminders cancel pending old jobs.
  • Notifications report the actual observed remaining quota, including partial recovery. Client-side event deduplication avoids repeated observations; unused full-quota windows with sliding reset dates do not notify.
  • Push credentials and Discord webhook URLs are stored in the local Keychain. Legacy plaintext settings are removed only after successful migration; failures remain visible and preserve the previous value.
  • No additional quota polling or idle push timers. Remote messages contain only the window name and observed remaining percentage, not account email or token history.

Thanks to @WuBarlynn for the Bark/Gotify contribution in PR #10.

Configure channels under Settings → Notifications, then send a test message. CodexMeter must be running and online. Server acceptance does not prove display or reading on the phone. A retry after a lost response can still deliver a duplicate; resets while the app is closed are not replayed.

Requires Apple Silicon (arm64), macOS 13+. The DMG is ad-hoc signed and not notarized; a first launch may require Control-click → Open. macOS may ask for Keychain access approval again after an update.

CodexMeter 1.6.3

Choose a tag to compare

@raycalrui raycalrui released this 01 Oct 16:08

English

This maintenance release makes CodexMeter recover more reliably, stops repeated alerts, and makes quota history totals more accurate.

  • Recover automatically when Codex App Server fails or stalls during startup, instead of staying stuck until the app is relaunched. A malformed quota response no longer freezes refreshing.
  • Prevent a rare crash when CodexMeter wrote to an App Server process that had just exited.
  • Over-pace notifications no longer repeat when usage hovers near the ideal pace. Alerts re-arm after a quota reset, follow the correct window when Codex reorders them, and are not repeated after relaunching CodexMeter.
  • Quota History now shades long gaps that span whole reset cycles and labels the affected totals as lower bounds ("At least …").
  • Quota windows without reset timing now show their recorded history instead of an empty chart.

The core test suite passes (112 tests). This build is ad-hoc signed and is not notarized.

简体中文

这个维护版本提升了 CodexMeter 的自动恢复能力,避免重复提醒,并让额度历史统计更准确。

  • Codex App Server 启动时出错或卡住,现在会自动恢复,不再一直卡住直到重启 App;额度响应格式异常时也不会再停止刷新。
  • 修复向刚退出的 App Server 进程写入数据时可能导致 CodexMeter 崩溃的罕见问题。
  • 用量在理想节奏附近波动时,不再反复发送超速提醒;额度重置后会重新允许提醒,Codex 调整窗口顺序时提醒仍对应正确的窗口,重新启动 CodexMeter 后也不会重复提醒。
  • 额度历史现在会为跨越整个重置周期的长时间空档显示阴影,受影响的统计会标注为下限(「至少 …」)。
  • 缺少重置时间的额度窗口现在也会显示已记录的历史,不再是空白图表。

112 项核心测试全部通过。此版本采用 ad-hoc 签名、尚未公证。

CodexMeter 1.6.2

Choose a tag to compare

@raycalrui raycalrui released this 24 Sep 03:42

English

This maintenance release reduces background work in CodexMeter while keeping the menu bar responsive.

  • Poll quota every 10 seconds while the popover is open and every 60 seconds while it is closed. App Server change notifications and manual refresh still update immediately.
  • Skip redundant history-store checks when quota data has not meaningfully changed; keep the 15-minute history anchor and account boundaries.
  • Reduce menu bar digit-fade redraws and repeated Token Activity chart calculations.

The core test suite passes (101 tests). This build is ad-hoc signed and is not notarized. Actual battery savings should be evaluated over several days under comparable usage.

简体中文

这个维护版本减少了 CodexMeter 在后台的工作量,同时保留菜单栏的及时反馈。

  • 打开面板时每 10 秒查询额度,关闭后改为每 60 秒;App Server 变化通知和手动刷新仍会立即更新。
  • 额度没有实质变化时跳过重复的历史记录检查,同时保留每 15 分钟的记录锚点和账号隔离。
  • 减少菜单栏数字渐隐动画的重绘次数,以及 Token Activity 图表数据的重复计算。

101 项核心测试全部通过。此版本采用 ad-hoc 签名、尚未公证。实际省电效果建议在相近使用场景下观察数天。

CodexMeter 1.6.1

Choose a tag to compare

@raycalrui raycalrui released this 19 Sep 17:17

中文

  • 新增菜单栏额度下降提示:变化的数字变红 0.5 秒,再用 2 秒渐变恢复;百分号保持原色,并适配“减少动态效果”。
  • 额度自动刷新间隔从 60 秒缩短至 10 秒,账号与 Token Activity 保持约每分钟查询。失败时自动退避,减少未变化数据的重复写入和历史图表刷新。
  • 左下角 Updated 时间显示到秒。
  • 优化菜单面板滚动条:macOS 15 及以上打开时不再闪现,首次滚动后保留系统渐隐;增加右侧留白,避免遮挡内容。
  • 修复默认 NVM 目录安装的 Codex 无法被识别的问题。感谢 @HY916-cn 的贡献(#6)。

安装

下载 DMG,将 CodexMeter 拖入 Applications。当前安装包面向 Apple Silicon,要求 macOS 13 或更新版本。采用 ad-hoc 签名,尚未经过 Apple 公证,首次启动可能需要在系统设置的“隐私与安全性”中允许打开。已有支持 Sparkle 的版本可通过应用内检查更新安装。

English

  • Added a menu bar quota-decrease highlight: changed digits turn red for 0.5 seconds, then fade back over 2 seconds. The percent sign keeps its normal color; Reduce Motion is respected.
  • Reduced automatic quota polling from 60 to 10 seconds while keeping account and Token Activity polling at roughly one-minute intervals. Added failure backoff and reduced redundant history writes and chart refreshes.
  • The Updated timestamp now includes seconds.
  • Refined popover scroll indicators: on macOS 15+, indicators stay hidden on opening and resume native fading after the first scroll. Added a trailing gutter to avoid covering content.
  • Fixed discovery of Codex installed in the default NVM directory. Thanks to @HY916-cn for contributing #6.

Installation

Download the DMG and drag CodexMeter into Applications. This build targets Apple Silicon and requires macOS 13 or later. It is ad-hoc signed, not Apple-notarized; macOS may require approval in System Settings > Privacy & Security on first launch. Existing Sparkle-enabled installations can update in-app.

Full changelog: v1.6.0...v1.6.1

CodexMeter 1.6.0

Choose a tag to compare

@raycalrui raycalrui released this 16 Sep 06:22

中文

新功能

  • 新增完整历史备份与恢复:导出 .codexmeterbackup,将所有账号当前保留的额度与 Token 历史迁移到另一台 Mac。
  • 恢复前校验备份并自动保存现有历史,支持失败回滚和恢复中断保护。恢复后请退出并重新打开 App。
  • 设置整合为独立窗口,包含通用、菜单栏与面板、历史与备份、开发者和关于。
  • About 与更新选项直接显示在设置窗口内;历史与备份采用统一的分组布局。

修复

  • 修复短暂异常的重置时间导致额度历史曲线重叠、累计消耗偏高的问题。

安装与说明

  • 适用于 Apple Silicon Mac,macOS 13 或更新版本。
  • 下载 DMG,将 CodexMeter 拖到 Applications;已有 Sparkle 更新功能的版本也可检查更新。
  • 备份不包含登录凭据、邮箱或 App 偏好设置;已删除的历史无法恢复。备份文件上限为 512 MiB。
  • 此版本使用 ad-hoc 签名,未经过 Apple 公证,首次安装可能出现 Gatekeeper 提示。

English

New

  • Full history backup and restore: export a .codexmeterbackup file to move retained quota and token history for all accounts to another Mac.
  • Backups are validated before restore, with an automatic copy of existing history, failure rollback, and interrupted-restore recovery. Quit and reopen the app after restoring.
  • A unified settings window groups General, Menu Bar & Popover, History & Backup, Developer, and About.
  • About and update controls now appear inside settings. History and backup controls use a consistent grouped layout.

Fixed

  • Ignore transient backward reset timestamps that could overlap quota-history curves and inflate observed usage.

Installation and notes

  • Apple Silicon Macs running macOS 13 or later.
  • Download the DMG and drag CodexMeter into Applications, or check for updates in a Sparkle-enabled version.
  • Backups exclude login credentials, email addresses, and app preferences. Deleted history cannot be recovered. Maximum backup size: 512 MiB.
  • This release is ad-hoc signed and is not notarized by Apple. Gatekeeper may display a warning on first installation.

CodexMeter 1.5.5

Choose a tag to compare

@raycalrui raycalrui released this 09 Sep 21:30

CodexMeter 1.5.5

English

Improvements

  • Added an appearance preference so the CodexMeter interface can follow the system or stay in Light or Dark mode.
  • Restored automatic menu-bar selection of the quota window with the lowest remaining percentage while preserving explicit user selections.
  • Bounded App Server output reads and JSON-RPC message buffering to prevent oversized responses from consuming memory indefinitely.
  • When an oversized response stops the connection, CodexMeter now retains the last successful quota as stale data and can reconnect on a later refresh.
  • Replaced raw App Server and system error details with localized messages to avoid displaying potentially sensitive account or credential information.
  • Updated Sparkle from 2.9.5 to 2.9.6 for upstream security fixes.

Thanks to @Qiaozb for contributing the App Server hardening and Sparkle update in #4.

Notes

  • This build is ad-hoc signed and not notarized. On first launch, macOS may require approval in Privacy & Security.

简体中文

改进内容

  • 新增应用外观选项,CodexMeter 界面可以跟随系统,也可以固定使用浅色或深色模式。
  • 恢复菜单栏自动选择剩余额度最低窗口的行为,同时保留用户明确指定的额度窗口。
  • 限制 App Server 每次读取的数据量和单条 JSON-RPC 消息的缓冲大小,避免异常超大响应持续占用内存。
  • 超大响应导致连接停止时,保留上一次成功获取的额度并标记为过期数据,后续刷新时可以重新连接。
  • 使用本地化提示替代 App Server 和系统的原始错误内容,避免界面显示可能包含账号或凭证的信息。
  • 将 Sparkle 从 2.9.5 升级到 2.9.6,包含上游安全修复。

感谢 @Qiaozb 通过 #4 贡献 App Server 输出处理改进和 Sparkle 升级。

注意事项

  • 此版本使用 ad-hoc 签名,尚未经过 Apple 公证。首次启动时,macOS 可能要求在“隐私与安全性”中手动允许打开。

CodexMeter 1.5.4

Choose a tag to compare

@raycalrui raycalrui released this 07 Sep 16:48

CodexMeter 1.5.4

English

What's new

  • Fixed an issue where npm-installed Codex CLI launchers could fail when CodexMeter was opened from the macOS GUI because /usr/bin/env node could not find Node.js.
  • CodexMeter now supplies the selected Codex executable directory and common local package paths to the App Server child process without invoking a login shell.
  • Improved App Server failure messages with a clear missing-Node explanation and an exit code for other unexpected exits.

Notes

  • Standalone Codex CLI installations continue to work as before.
  • App Server diagnostics retain only a small bounded tail in memory and are not written to disk.
  • This build is ad-hoc signed and not notarized. On first launch, macOS may require approval in Privacy & Security.

简体中文

更新内容

  • 修复通过 npm 安装的 Codex CLI 在 macOS 图形界面启动 CodexMeter 时,可能因为 /usr/bin/env node 找不到 Node.js 而无法启动的问题。
  • CodexMeter 现在会为 App Server 子进程补充所选 Codex 可执行文件目录及常见本地软件包路径,无需调用登录 Shell。
  • 改进 App Server 启动失败提示:缺少 Node.js 时会显示明确原因,其他异常退出则会显示退出码。

注意事项

  • Codex CLI 独立版的使用方式保持不变。
  • App Server 诊断信息只在内存中保留一小段受限内容,不会写入磁盘。
  • 此版本使用 ad-hoc 签名,尚未经过 Apple 公证。首次启动时,可能需要在 macOS 的“隐私与安全性”中手动允许打开。

CodexMeter 1.5.3

Choose a tag to compare

@raycalrui raycalrui released this 07 Sep 14:23

CodexMeter 1.5.3

English

What's new

  • The menu bar popover now fits the visible height of the current display, keeps the header and Settings/Quit controls fixed, and scrolls only its dynamic content.
  • Fixed translucent fixed regions revealing or overlapping scrolling content.
  • The default layout keeps the standard 5-hour quota, weekly quota, Quota History, Reset Opportunities, and Token Activity visible while hiding the GPT-Reserve weekly quota.
  • Reset opportunity lifetime bars now use the normal color at 20% or more, warning yellow below 20%, and critical red below 10%.
  • Reset opportunity bars follow the configured normal, warning, and critical colors and update correctly across Light and Dark appearances.

Notes

  • Existing saved popover customization is preserved; Restore Default Layout applies the current defaults.
  • Reset opportunities remain read-only and cannot be consumed from CodexMeter.
  • This build is ad-hoc signed and not notarized. On first launch, macOS may require approval in Privacy & Security.

简体中文

更新内容

  • 菜单栏弹出面板现在会适配当前显示器的可用高度,并固定顶部标题及底部的“设置/退出”区域,仅滚动中间的动态内容。
  • 修复半透明固定区域可能显示或遮挡滚动内容的问题。
  • 默认布局显示标准 5 小时额度、周额度、额度历史、重置机会和 Token 活动,同时默认隐藏 GPT-Reserve 周额度。
  • 重置机会的有效期进度条在剩余时间不低于 20% 时使用正常颜色,低于 20% 时显示黄色,低于 10% 时显示红色。
  • 重置机会进度条会使用已配置的正常、警告和严重颜色,并在浅色与深色外观之间正确更新。

注意事项

  • 已保存的菜单栏面板自定义设置会继续保留;使用恢复默认布局可应用当前版本的默认设置。
  • 重置机会仍然只用于查看,无法在 CodexMeter 中直接使用。
  • 此版本使用 ad-hoc 签名,尚未经过 Apple 公证。首次启动时,可能需要在 macOS 的“隐私与安全性”中手动允许打开。

CodexMeter 1.5.2

Choose a tag to compare

@raycalrui raycalrui released this 03 Sep 06:35

What’s Changed

  • Fixed the default quota selection when the App Server returns multiple seven-day quota buckets.
  • The menu bar and compact Quota History now default to the standard Codex Weekly quota.
  • Other quota buckets, including Gpt-Reserve, remain available in the full history view.

更新内容

  • 修复 App Server 返回多个 7 天额度桶时,默认额度可能选错的问题。
  • 菜单栏和紧凑版 Quota History 现在默认显示标准的 Codex Weekly quota。
  • 其他额度桶(包括 Gpt-Reserve)仍可在完整历史记录中查看。

CodexMeter 1.5.1

Choose a tag to compare

@raycalrui raycalrui released this 30 Aug 09:07

CodexMeter 1.5.1

English

  • Fixed quota progress bars falling back to system accent blue after switching between Light and Dark appearances.
  • Recreates the native progress control for the active color scheme so configured normal, warning, and critical quota colors remain applied.

中文

  • 修复在系统深色与浅色模式之间切换后,Quota 进度条错误回退成系统蓝色的问题。
  • 进度条会随当前外观重新创建原生控件,确保正常、警告和临界状态颜色始终正确应用。