Skip to content
Back to skills

Codex Ratelimit Notify

ASecurity

Send an IFTTT mobile push \"codex rate limit detected\" when an OpenAI Codex CLI run hits a rate/usage limit. The companion codex skills (/codex-review, /codex-2nd) fire this automatically via codex-rate-limit.js. Invoke manually whenever a codex run that BYPASSES that path — /codex-imagegen, /codex:codex-rescue, or an ad-hoc `codex exec` — shows \"you've hit your limit\", \"rate limit\", \"usage limit\", \"too many requests\", \"quota exceeded\", \"429\", or a reset time, even if the flow ot...

  • 12 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
toolsbashnode

Works with

  • claude code
  • terminal
  • cli

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add Takazudo/claude-resources --skill codex-ratelimit-notify --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Codex Ratelimit Notify?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Codex Ratelimit Notify
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/takazudo-codex-ratelimit-notify/badge)](https://www.skillsdirectory.com/skills/takazudo-codex-ratelimit-notify)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: codex-ratelimit-notify
description: "Send an IFTTT mobile push \"codex rate limit detected\" when an OpenAI Codex CLI run hits a rate/usage limit. The companion codex skills (/codex-review, /codex-2nd) fire this automatically via codex-rate-limit.js. Invoke manually whenever a codex run that BYPASSES that path — /codex-imagegen, /codex:codex-rescue, or an ad-hoc `codex exec` — shows \"you've hit your limit\", \"rate limit\", \"usage limit\", \"too many requests\", \"quota exceeded\", \"429\", or a reset time, even if the flow otherwise stays silent. Also use to test the notification."
allowed-tools:
  - Bash(node *)
---

# Codex Rate Limit → IFTTT Notify

Fire a mobile push **"codex rate limit detected"** the moment an OpenAI Codex CLI run
hits a rate/usage limit. This matters because the codex skills deliberately **silently
fall back to Opus** and never surface the limit in the terminal — so a phone push is the
only way the user learns Codex is throttled.

## How it's wired (usually automatic)

All rate-limit state, notification, and dedupe live in one script:
`$HOME/.claude/scripts/codex-rate-limit.js`.

The companion codex skills (`/codex-review`, `/codex-2nd`) already run `codex-rate-limit.js check-output` after
each Codex run. When it detects a limit it marks a lockout **and** fires the push — so for
those skills the notification happens on its own. You do **not** need this skill for them.

## When to invoke manually

Some Codex paths bypass `codex-rate-limit.js` entirely: `/codex-imagegen`,
`/codex:codex-rescue`, and any ad-hoc `codex exec` you run directly. If Codex output on one
of those paths shows a rate/usage limit, funnel it into the same script so both the push and
the shared lockout happen:

```bash
node "$HOME/.claude/scripts/codex-rate-limit.js" mark
```

`mark` records a 60-minute lockout (so the companion skills also back off) and fires the
deduped push. Prefer `mark` over a bare notification — a real limit should set the lockout.

Recognize a limit from these cues in Codex stdout/stderr:

- `you've hit your limit`
- `rate limit` / `too many requests` / `429`
- `usage limit` / `quota exceeded`
- a reset time like `resets 5pm`

The script's automatic detection (`check-output`/`check-stderr`) matches the phrase patterns
above but **not** a bare `429` or loose reset phrasings like `resets in 40 min` — so those
can slip past even the companion skills, which is another reason to funnel a limit you spot
into `mark` yourself.

## Notify without a lockout / test the push

To fire the push without touching the lockout (e.g. a quick end-to-end test of the IFTTT
wiring):

```bash
node "$HOME/.claude/scripts/codex-rate-limit.js" notify "test from codex-ratelimit-notify"
```

Check that the push arrives on the phone. Nothing else changes — Codex stays available. If
the key isn't configured, it prints `IFTTT_WEBHOOK_KEY not set — nothing sent.` instead.

## Mechanism

- **Channel**: IFTTT Webhooks event `Claude Code` (the same applet used by

  `hooks/notify-ifttt.sh`), key read from the `IFTTT_WEBHOOK_KEY` env var. If the key is
  unset on this machine, the notification is skipped silently.

- **Payload**: `value1` = `codex rate limit detected`, `value2` = reset detail (or, for the

  `notify` subcommand, the message you pass), `value3` = current working directory.

- **Dedupe**: fires at most once per lockout window — a second codex skill hitting the same

  wall won't buzz the phone again until the lockout expires.

- **Best-effort**: a failed webhook never breaks rate-limit tracking.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.