← Codex UsageCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Codex Usage
Snapshot Sep 30, 2026 · 23:15 UTC · version 0.2.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "codex-usage",
"description": "Run the bundled local reader to check remaining Codex usage, weekly or five-hour limits, reset times, and reset-card availability. Use for Codex quota questions in a local Codex task, including ChatGPT Plus/Pro users. Requires access to that computer's local terminal.",
"included_files": [
{
"relative_path": "references/troubleshooting.md",
"size_in_bytes": 3737
},
{
"relative_path": "scripts/codex_usage.py",
"size_in_bytes": 16278
}
],
"skill_md_contents": "---\nname: codex-usage\ndescription: Run the bundled local reader to check remaining Codex usage, weekly or five-hour limits, reset times, and reset-card availability. Use for Codex quota questions in a local Codex task, including ChatGPT Plus/Pro users. Requires access to that computer's local terminal.\n---\n\n# Codex usage\n\nAnswer in the user's language. A usage question is a request to **run the\nquery**, not just supply a command or offer to locate the script later.\n\n## Run the installed reader\n\n1. Use the local terminal tool for the computer running the user's Codex task.\n If tools are deferred, discover the host's terminal/execution tool first.\n A cloud code interpreter cannot read another computer's Codex history.\n2. Resolve [scripts/codex_usage.py](scripts/codex_usage.py) relative to the\n actual installed location of this `SKILL.md` supplied by the skill catalog.\n Use the host's resource reader when it supplies a skill resource URI instead\n of a filesystem path. Do not treat `plugin://` or `skill://` as a file path.\n3. Run that verified script using the local terminal:\n\n```sh\npython3 \"<this-skill-directory>/scripts/codex_usage.py\" --json\n```\n\nReplace the placeholder with the resolved absolute directory before executing.\nThe script is bundled **inside the plugin**; `~/.codex` holds the user's data.\nThe plugin does not install `~/.codex/usage/codex_usage.py`. Do not invent that\npath or copy a path from the publisher's computer. If the script, Python, or\nlocal terminal is missing, follow [troubleshooting](references/troubleshooting.md)\nbefore responding with an unavailable result.\n\nRequires Python 3.9+ with no third-party packages. On Windows, use an available\nPython 3.9+ interpreter such as `py -3` if `python3` is absent. The reader uses\n`$CODEX_HOME` when set, otherwise `~/.codex`; `--codex-home` selects a specific\ninstallation. `--timezone Asia/Shanghai` sets display times; the default is the\nmachine's local timezone. No browser or new login is needed.\n\n## Interpret the result\n\nReport the remaining percentage, used percentage, reset time with timezone,\nsnapshot time, and source file. The reader scans only structured usage events in\n`sessions` and `archived_sessions`; it does not output conversation text.\n\n- Identify windows by duration: 10080 minutes is weekly, 300 minutes is five\n hours. Either can appear in `primary` or `secondary`.\n- Local results are recorded account snapshots, not a live balance. If the reset\n time has passed, describe the result as an expired snapshot; do not claim the\n old percentage still applies or assume it reset to 100%.\n- Local history cannot verify which account is currently signed in. If the user\n mentions an account switch, explain that limitation before attributing a\n snapshot to an account. Keep different limit IDs separate.\n- `credits.balance` describes paid credits, **not reset cards**. Missing reset\n card data means unknown, not zero. `available_count: 0` is a known zero only\n when an explicit reset-card summary supplies it. Card details can be partial.\n- Do not convert percentages or cumulative conversation token counts into a\n fixed number of messages. A `pro` plan value does not by itself establish 20×.\n\nIf no usable snapshot exists (`limits` is empty, the requested window is absent,\nor its reset time has passed), run one bounded read through the existing Codex\nCLI authentication. Also use this read when the user\nasks about unrecorded reset cards or explicitly wants a live refresh:\n\n```sh\npython3 \"<this-skill-directory>/scripts/codex_usage.py\" --live --json\n```\n\nThis only calls `initialize` and `account/rateLimits/read` on the installed\nCodex app server. It does not start an agent task or read credential files.\nThe reader detects both a CLI on `PATH` and the CLI bundled with the macOS\nChatGPT/Codex app; `diagnostics.codex_cli` reports the detected path. A missing\n`codex` shell command does not by itself mean the CLI is unavailable.\nKeep live results separate from local history and identify which source answers\nthe question. If the CLI has no applicable authentication, retain the local\nresult and report `live_status`. Do not launch a login flow\nor browser merely to answer a local usage question.\n\nFor an unavailable result, state the actual failure stage: terminal access,\nscript installation, Python, or the reader's `local_status`. Include the checked\nCodex home and file counts from `diagnostics` when the reader ran. An empty\nhistory means this installation has no recorded quota; installing the plugin\ndoes not transfer another computer's records. Never claim to have checked local\nrecords without an execution result, or report a missing balance as zero.\n\nThe plugin does not redeem cards, buy credits, alter authentication, or modify\nCodex history. Requests for those actions are outside its query capability.\nMissing files or malformed records should produce an honest unavailable result,\nnot an invented balance. Do not dump raw logs, auth files, or account identifiers\nto troubleshoot a missing snapshot.\n"
}SHA-256: 91ccad5293feabce14314b7441f37dc62a1ef33d711ad8046ea699f4c91dbf7e