Codex 会给用户分配一定的使用额度,并在额度周期内重置。
但无论是 Codex App 还是 Codex CLI,当前都不太方便直接查看具体的额度重置状态。所以我写了一个小工具 codex-reset-expiry,用来读取本地 Codex CLI 的登录信息,并查询额度与重置相关接口。
codex-reset-expiry 是什么
codex-reset-expiry 是一个很小的 Python CLI 工具,主要做三件事:
- 自动读取本地 Codex CLI 的
auth.json - 解析
access_token里的 JWT payload,并校验账号 ID - 请求
rate-limit-reset-credits接口,输出当前额度和重置状态
它本身不会修改 Codex 的配置文件,也不会写入新的登录信息。脚本只读取本地 auth.json,然后带着其中的 access_token 去请求接口。
安装
项目依赖很少,只需要 Python 3 和 requests。
git clone https://github.com/Abyss/codex-reset-expiry.git
cd codex-reset-expiry
pip install requests
如果不想 clone 仓库,也可以只下载 codex-reset-expiry.py,然后确认当前 Python 环境已经安装 requests。
pip install requests
基础用法
最简单的使用方式是直接运行脚本:
python codex-reset-expiry.py
默认情况下,它会读取:
~/.codex/auth.json
然后输出几类信息:
- 本地
auth.json中记录的账号 ID access_token解析出来的 JWT payload- 本地账号 ID 和 JWT 中账号 ID 的匹配情况
- 额度与重置接口返回的原始结果
这样就能确认当前登录账号是否匹配,以及接口返回的额度状态是否符合预期。
指定 auth 文件位置
如果你的 Codex 配置目录不是默认路径,可以手动指定目录和文件名:
python codex-reset-expiry.py --dir /path/to/codex --file auth.json
常用参数如下:
| 参数 | 说明 | 默认值 |
|---|---|---|
--dir | auth 文件所在目录 | ~/.codex |
--file | auth 文件名 | auth.json |
--proxy | 请求接口时使用的代理地址 | 无 |
比如 auth 文件在临时目录里,可以这样指定:
python codex-reset-expiry.py --dir /tmp/codex-profile --file auth.json
使用代理
如果你的网络环境需要通过代理访问接口,可以传入 --proxy:
python codex-reset-expiry.py --proxy http://127.0.0.1:7890
脚本会把这个代理用于接口请求,不会修改系统代理,也不会改动 Codex CLI 的配置。 如果DNS配置使用fake-ip的,强烈建议手动指定代理。
使用时需要注意
这个工具的行为比较简单,但它会读取本地 auth.json 并使用其中的 access_token 发起请求,所以使用时还是要注意:
- 只在可信环境中运行
- 不要把
auth.json、完整终端输出或 token 信息发给他人 - 不要在公共机器或不可信服务器上执行
- 使用前可以先阅读脚本源码,确认行为符合预期
如果你只是想确认额度状态,运行一次脚本看输出就够了。不要把它包装进公共服务,也不要把 token 输出记录到日志系统里。