Codex 重置次数也能查:做一个可安装的 Reset Credits Skill

最近我在整理 Codex 的本地使用体验时,发现除了统计 token 用量,还有一个很实际的小问题:
在这里插入图片描述

我现在到底还有几次 Codex 重置次数?每一次什么时候过期?过期前能不能提前提醒我?

这个问题看起来很小,但对高频使用 Codex 的人来说很真实。尤其是当你把 Codex 当成日常开发工作流的一部分,而不是偶尔打开问两句的聊天窗口时,reset credits 就会变成一种需要管理的资源。

所以我把这个能力做成了一个可安装的 Codex Skill:

GitHub 仓库:

https://github.com/huajiexiewenfeng/codex-reset-credits

这个 Skill 解决什么问题

它做的事情很简单:

  • 查询当前可用的 Codex 重置次数
  • 展示每一次重置还有多久过期
  • 展示中国时间的过期点
  • 自动计算两个提醒时间:过期前 1 天、过期前 1 小时
  • 支持普通中文输出,也支持 JSON 输出,方便后续接自动化提醒

查询结果类似这样:

在这里插入图片描述

为什么要做成 Skill,而不是只放一个脚本

单独写一个 Python 脚本当然也能解决问题。

但我更希望它成为 Codex 工作流的一部分。也就是说,以后不用记脚本路径,不用每次翻命令,只要对 Codex 说一句:

Use $codex-reset-credits 用中文展示我的 Codex 重置次数、每次过期时间和提醒时间。

Codex 就能知道该调用哪个脚本、该怎么展示结果、该注意不要暴露 token。

这就是 Skill 的价值:它不是简单的工具文件,而是把“怎么使用这个工具”的上下文也封装进去。

安装方式

使用 Skills CLI 安装:

npx skills add https://github.com/huajiexiewenfeng/codex-reset-credits --skill codex-reset-credits

也可以先列出仓库里的可用 skill:

npx skills add https://github.com/huajiexiewenfeng/codex-reset-credits --list

安装后,可以直接在 Codex 里使用:

查询我的 Codex 重置次数,每一次还有多久过期,并显示提醒时间。

也可以直接运行脚本

如果你不想通过 Skill 调用,也可以直接运行仓库里的 Python 脚本。

在仓库根目录执行:

python -B skills/codex-reset-credits/scripts/query_reset_credits.py

如果需要 JSON 输出:

python -B skills/codex-reset-credits/scripts/query_reset_credits.py --json

JSON 输出里会包含 available_count、每次 credit 的过期时间,以及提醒时间:

{
  "available_count": 2,
  "credits": [
    {
      "index": 1,
      "remaining": "23天 15小时 22分钟 22秒",
      "expires_at_utc": "2026-07-26T23:45:22+00:00",
      "expires_at_china": "2026-07-27T07:45:22+08:00",
      "reminders": [
        {
          "label": "过期前 1 天",
          "at_china": "2026-07-26T07:45:22+08:00"
        },
        {
          "label": "过期前 1 小时",
          "at_china": "2026-07-27T06:45:22+08:00"
        }
      ]
    }
  ]
}

实现原理

核心逻辑并不复杂。

脚本会读取本地 Codex 登录状态里的 auth.json

DEFAULT_AUTH_FILE = Path(os.environ.get("CODEX_HOME", Path.home() / ".codex")) / "auth.json"

然后从中取出 access token,请求 ChatGPT Web 后端的 reset credits 接口:

URL = "https://chatgpt.com/backend-api/wham/rate-limit-reset-credits"

请求头里带上:

"Authorization": f"Bearer {token}"

接口返回后,脚本读取:

  • available_count
  • credits[].expires_at

再把 UTC 时间转换成中国时间,并计算:

  • expires_at - 1 day
  • expires_at - 1 hour

这样就能得到完整的过期和提醒信息。

输出字段说明

字段 含义
available_count 当前可用重置次数
credits[].remaining 距离过期还剩多久
credits[].expires_at_utc UTC 过期时间
credits[].expires_at_china 中国时间过期点
credits[].reminders[] 过期前 1 天和过期前 1 小时的提醒时间

如果你只是自己看,普通中文输出就够了。

如果你想接自动化提醒,JSON 输出更适合。

隐私和边界

这个工具有一个必须说清楚的边界:

它需要读取本地 Codex 的 auth.json,并使用里面的 access token 请求 ChatGPT Web 接口。

所以这里有几个原则:

  • 不打印 access token
  • 不提交 auth.json
  • 不提交 .codex 目录
  • 不提交 session 日志或 SQLite 数据库
  • 仓库 .gitignore 已经排除了这些本地敏感文件

另外,这个接口是 ChatGPT Web 使用的内部接口,不是一个长期稳定承诺的公开 API。

因此它适合做个人工作流工具,但不适合当成强依赖的生产系统接口。如果未来接口路径、返回格式或登录状态结构变化,脚本也需要跟着调整。

仓库结构

当前仓库结构保持和 Codex Skill 的常见发布方式一致:

codex-reset-credits/
├── README.md
├── README.zh-CN.md
├── LICENSE
├── .gitignore
└── skills/
    └── codex-reset-credits/
        ├── SKILL.md
        ├── agents/
        │   └── openai.yaml
        └── scripts/
            └── query_reset_credits.py

其中:

  • SKILL.md:告诉 Codex 什么时候使用这个 skill,以及如何展示结果
  • openai.yaml:给 Skills CLI / Codex UI 使用的元数据
  • query_reset_credits.py:真正执行查询的脚本

验证方式

我本地做了两类验证。

第一,直接运行查询脚本:

python -B skills/codex-reset-credits/scripts/query_reset_credits.py --json

第二,用 Skills CLI 检查仓库是否能被识别:

npx skills add . --list

能看到:

Available Skills
  codex-reset-credits

这个小工具背后的思路

我现在越来越倾向于把 Codex 里的小能力沉淀成 Skill,而不是只停留在一次性脚本。

一次性脚本解决的是“这次能跑”。

Skill 解决的是“下次 Codex 还知道怎么用”。

对于开发者来说,这个差别很大。因为很多日常工作并不是大项目,而是一堆小而重复的操作:

  • 统计 token 用量
  • 查询 reset credits
  • 检查本地状态
  • 生成发布草稿
  • 做仓库结构校验
  • 创建提醒或自动化任务

这些任务单独看都不大,但每次重新解释一遍就很浪费。把它们封装成 Skill,本质上是在给自己的 Codex 建一个可复用的工作记忆。

总结

codex-reset-credits 这个 Skill 做的事情很小:

它只是帮你看清楚还有几次 Codex 重置次数、每次什么时候过期,以及应该什么时候提醒。

但我觉得它代表了一种很实用的工作方式:

把一次性的自动化脚本,升级成可安装、可复用、可被 Codex 理解的 Skill。

这样下一次你不用再找脚本、翻命令、解释上下文。

你只要说一句:

查询我的 Codex 重置次数。

Codex 就知道该怎么做。

项目地址:

https://github.com/huajiexiewenfeng/codex-reset-credits

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐