# Is a Codex usage-limit reset coming? Check from your terminal with a free API (or MCP)

> Source: <https://dev.to/codexreset/is-a-codex-usage-limit-reset-coming-check-from-your-terminal-with-a-free-api-or-mcp-3enb>
> Published: 2026-09-24 02:24:07+00:00

If you use OpenAI Codex a lot, you've probably hit the weekly limit and asked the same question everyone asks: *is a reset coming, or should I just wait it out?*

There are two different kinds of "reset", and people mix them up:

`/status` inside Codex shows when yours rolls over. Nobody else can predict it for you.
This post is about the second kind. [codex-reset.com](https://codex-reset.com/) tracks those announcements, keeps a dated record with source links, and publishes a probability that another one lands in the next 24 or 48 hours. All of it is available as **free JSON with no API key**, and as an **MCP server** you can plug into Codex itself. Below is how to use both from a terminal.

Disclosure: this account belongs to the project. Everything below is free to use; the only condition is a visible credit if you show the data to other people.

```
curl -sS https://codex-reset.com/api/forecast \
  -A 'my-script/1.0 (+https://example.com)' \
  | jq '{p24: .probabilities.rounded_24h, p48: .probabilities.rounded_48h, confidence, last: .last_reset_at}'
{
  "p24": 20,
  "p48": 35,
  "confidence": "low",
  "last": "2026-09-12T08:09:17.000Z"
}
```

That's a percentage chance of a global reset within 24h and 48h, how confident the model is, and when the last confirmed reset happened. It's a forecast, not a promise: treat 20% as "probably not today".

The `-A` header matters. Server-side readers are asked to send a `User-Agent` that names the project, so the site can tell real integrations from anonymous scrapers.

Every entry in the record links to the original post:

```
curl -sS https://codex-reset.com/api/timeline \
  -A 'my-script/1.0 (+https://example.com)' \
  | jq -r '[.events[] | select(.group == "reset" and .announcement_state == "announced")]
           | sort_by(.announced_at) | reverse | .[0:3][]
           | "\(.announced_at)  \(.url)"'
2026-09-12T08:09:17.000Z  https://x.com/thsottiaux/status/2098685367058612394
2026-09-08T01:34:00.000Z  https://x.com/thsottiaux/status/2097043464538264003
2026-08-31T02:34:27.000Z  https://x.com/thsottiaux/status/2094252447271366730
```

The `announcement_state == "announced"` filter matters. A post that only *promises* a reset shows up in the record too, but a reset only counts once it's actually announced. That's the same rule the site's ✅ alerts use.

When Codex starts failing, check whether it's an outage before you blame your quota:

```
curl -sS https://codex-reset.com/api/status-history \
  -A 'my-script/1.0 (+https://example.com)' \
  | jq -r '.current.surfaces[] | "\(.label): \(.status)"'
Codex Web: operational
Codex API: operational
Codex CLI: operational
VS Code extension: operational
Codex in ChatGPT Desktop: operational
```

The same data is exposed as a read-only MCP server over Streamable HTTP. There's nothing to install, no key, and no account. Add it to `~/.codex/config.toml`:

```
[mcp_servers.codex-reset]
url = "https://codex-reset.com/mcp"
```

Or in Claude Code:

```
claude mcp add --transport http codex-reset https://codex-reset.com/mcp
```

Then just ask, in the agent:

There are three tools, `get_reset_forecast`, `get_reset_timeline` and `get_codex_status`, all read-only. Config for Cursor, VS Code and others is in the [codex-reset-mcp repo](https://github.com/suvadadepolo-blip/codex-reset-mcp). The repo also installs as a Codex plugin.

The record only changes when a reset is announced, so a watcher just compares `last_reset_at`:

``` bash
#!/usr/bin/env bash
# Poll politely: the data refreshes about once a minute; every 5 minutes is plenty.
UA='reset-watch/1.0 (+https://example.com)'
last=""
while true; do
  now=$(curl -sS -A "$UA" https://codex-reset.com/api/forecast | jq -r '.last_reset_at')
  if [ -n "$last" ] && [ "$now" != "$last" ]; then
    osascript -e 'display notification "Codex limits were reset" with title "Codex"' 2>/dev/null \
      || notify-send "Codex limits were reset" 2>/dev/null \
      || echo "Codex limits were reset at $now"
  fi
  last=$now
  sleep 300
done
```

If you'd rather not run anything, the site also pushes the same event to Telegram, Discord and browser notifications.

The API is free and keyless, with CORS open. The terms fit in one line: if you show the data to people, credit it where it appears (`Data: codex-reset.com`, linked), and send an identifying `User-Agent` from servers. Field reference and polling guidance: [codex-reset.com/developers](https://codex-reset.com/developers).

Several open-source menu-bar apps and bots already read it this way. If you build something on it, I'd like to hear about it in the comments.
