codex-wait 是一个零依赖的 Node.js CLI,用本机 Codex 会话记录统计每天等待 Codex 完成任务的时间。
- 一轮等待从
task_started开始,到task_complete结束。 - 使用完成事件中的
duration_ms作为任务时长。 - 默认排除
thread_source=automation的 Codex 定时任务;使用--include-automations可计入。 - 跨午夜任务会按指定时区切分到各自然日。
- 默认不计入尚未完成的任务;传入
--include-active后会计到命令运行时刻。 - 启用
--token时,进行中或中断任务已经产生的 Token 仍会计入;--include-active只控制等待时长。 - 只有未归档且最近 30 分钟仍有事件的未完成任务才判定为“进行中”;历史未闭合记录会被忽略。
- 默认只解析任务边界和耗时字段;即使启用 Token,也不会读取或输出用户提示词、助手回复、工具输入输出。
- Token 默认不解析、不显示。显式传入
--token后,才会根据相邻token_count.total_token_usage累计快照的增量,按事件实际发生的自然日统计输入、缓存输入、输出、推理输出和总量;累计值缺失时才回退到last_token_usage。原有--tokens仍作为兼容别名可用。
缓存输入 Token 是输入 Token 的子集,推理输出 Token 是输出 Token 的子集,不能把这些字段再次加到总量中。
Token 是可选实验统计,归档会话的用量事件可能不完整,结果仅供参考。表格中百万级 Token 使用 M,达到一亿时同时显示两种单位,例如 350.04M(3.50亿);启用 Token 后,JSON 和 CSV 保留原始整数。
这里的“等待”是墙钟时间,不是模型纯推理时间。若任务执行期间 Codex 等待用户确认或用户追加输入,这段时间也会包含在内。
- Node.js 18 或更高版本
- Codex 本地会话目录,默认是
~/.codex
推荐直接安装 GitHub Release 中的最新版(需要 Node.js 18+):
npm install -g https://github.com/ifzc/codex-wait/releases/latest/download/codex-wait.tgz
codex-wait --help以后如果发布到 npm,也可以执行:
npm install -g codex-wait所有历史安装包和校验文件可在 GitHub Releases 下载。
从源码安装时,在项目目录执行:
npm install -g .
codex-wait --help不全局安装也可以直接运行:
node .\bin\codex-wait.js --today# 最近 7 天(默认)
codex-wait
# 今天,包含当前仍在执行的任务
codex-wait --today --include-active
# 最近 30 天
codex-wait --days 30
# 可选显示 Token(归档历史可能不完整)
codex-wait --days 30 --token
# 包含 Codex 定时任务
codex-wait --days 30 --include-automations
# 指定自然日范围和时区
codex-wait --since 2026-08-01 --until 2026-08-31 --timezone Asia/Shanghai
# 逐任务明细(不会显示对话正文)
codex-wait --days 7 --details
# 机器可读格式
codex-wait --all --json > codex-wait.json
codex-wait --days 30 --csv > codex-wait.csv
# 使用其他 Codex 数据目录
codex-wait --codex-home D:\path\to\.codexJSON 输出包含毫秒级原始数值、逐日汇总、逐任务元数据和扫描诊断信息。CSV 输出一行对应一个自然日。
- 所有日期都按
--timezone指定的 IANA 时区计算,默认使用系统时区。 --today是所选时区的今天。--days N包含今天,例如--days 7是今天及之前 6 个自然日。--since和--until都包含指定当天;--since单独使用时默认截止今天。--until单独使用时从本地最早记录统计到指定日期。--all统计本地保存的全部会话历史。- 等待时长跨午夜时会切分到两个自然日;启用 Token 后,按每条用量事件实际发生的日期归属。
npm test
node .\bin\codex-wait.js --codex-home .\test\fixtures\codex-home --days 7CLI 以流式方式扫描 sessions 和 archived_sessions 下的 .jsonl 文件,不会一次性把会话文件加载到内存。
项目已将发布目标固定为 npm 官方仓库。首次发布前先登录,然后发布:
npm login --registry=https://registry.npmjs.org/
npm publish每次再次发布前,需要先递增 package.json 中的版本号。