项目链接:GitHub - DengyingFu/CodexMeter · GitHub

# CodexMeter

CodexMeter 是一个适用于 Windows 11 的轻量桌面悬浮窗,用来实时显示
Codex CLI 的剩余额度和重置时间。

它使用 PySide6 构建,不联网、不调用额外 API,只读取本机 Codex 会话日志。

## 功能

- 三种显示模式:展开、极简、圆环数字
- 圆环模式仅显示剩余额度,外圈同时表示剩余比例
- 深色与浅色主题,半透明 Fluent 风格界面
- 始终置顶、位置锁定、鼠标穿透和开机启动
- 自动刷新、重置倒计时和陈旧数据提示
- 支持主额度周期、第二额度周期及 Credits 信息
- 单实例运行和系统托盘控制
- 设置自动保存在本机

## 显示模式

| 模式 | 内容 |
|---|---|
| 展开 | 剩余额度、进度条、重置时间、第二额度周期和数据状态 |
| 极简 | 状态点、剩余额度、迷你进度条和倒计时 |
| 圆环数字 | 仅显示剩余额度数字,圆环表示剩余比例 |

### 展开模式

### 极简模式

### 圆环数字模式

双击悬浮窗可以按“展开 → 极简 → 圆环数字”循环切换,也可以在右键菜单或设置窗口中直接选择。

## 工作原理

CodexMeter 默认读取以下目录中的 Codex CLI 会话日志:

```text
~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl
```

程序从最新的 `event_msg / token_count` 事件中解析 `rate_limits` 快照。
如果设置了 `CODEX_HOME` 环境变量,则会读取 `$CODEX_HOME/sessions`。

只有运行过 Codex 会话后才会产生额度数据;Codex 未产生新日志时,悬浮窗会继续显示最近一次快照并标记数据时间。

## 系统要求

- Windows 10/11,推荐 Windows 11
- Python 3.10 或更高版本(仅源码运行需要)
- 已使用过 Codex CLI,以便本机存在会话日志

## 从源码运行

```powershell
git clone https://github.com/DengyingFu/CodexMeter.git
cd CodexMeter
python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python main.py
```

## 构建 Windows 应用

双击 `build.bat`,或在终端中运行:

```powershell
.\build.bat
```

构建结果位于:

```text
dist\CodexMeter\CodexMeter.exe
```

PyInstaller 使用 `onedir` 模式。分发时需要复制整个 `dist\CodexMeter` 文件夹,而不只是 EXE。

## 使用方式

| 操作 | 效果 |
|---|---|
| 左键拖拽 | 移动悬浮窗并自动保存位置 |
| 双击 | 循环切换三种显示模式 |
| 右键 | 打开功能菜单 |
| 托盘图标左键 | 显示或隐藏悬浮窗 |
| 托盘图标右键 | 打开功能菜单 |

右键菜单还可以立即刷新、锁定位置、开启鼠标穿透、切换置顶状态以及退出程序。

## 配置

配置保存在:

```text
%APPDATA%\CodexMeter\settings.json
```

可配置项目包括刷新间隔、背景不透明度、低额度阈值、显示模式、主题、第二额度周期、置顶和鼠标穿透等。

开机启动使用当前用户的注册表项:

```text
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
```

## 测试

```powershell
python -m pytest tests -q
```

## 项目结构

```text
CodexMeter/
├── main.py # 开发入口
├── build.bat # PyInstaller 构建脚本
├── requirements.txt
├── app/
│ ├── main.py # QApplication、单实例和系统托盘
│ ├── core/ # 设置、状态机和开机启动
│ ├── data/ # Codex 日志读取与额度解析
│ ├── ui/ # 面板、设置窗口和自定义控件
│ └── assets/ # 应用图标
├── tests/ # 单元测试
└── tools/ # 图标和调试辅助工具
```

## 隐私

CodexMeter 不会上传会话内容,也不会调用远程服务。日志只在本机读取,程序仅使用其中的额度快照字段。

## 说明

Codex CLI 日志格式可能随版本变化。如果额度长期不更新,请先确认 Codex CLI 已产生新的会话记录,然后通过右键菜单执行“立即刷新”。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐