skills/codex-ratelimit-notify/SKILL.md
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, /codex-research, /codex-writer, /codex-translator) 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.
npx skillsauth add takazudo/claude-resources codex-ratelimit-notifyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
All rate-limit state, notification, and dedupe live in one script:
$HOME/.claude/scripts/codex-rate-limit.js.
The five companion codex skills (/codex-review, /codex-2nd, /codex-research,
/codex-writer, /codex-translator) 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.
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:
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 limitrate limit / too many requests / 429usage limit / quota exceededresets 5pmThe 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.
To fire the push without touching the lockout (e.g. a quick end-to-end test of the IFTTT wiring):
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.
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.
tools
Acceptance gate for a branch produced by an OpenAI Codex CLI run — usually Codex implementing a /big-plan epic that was handed off to it. Codex reports the work 'done' (or the user flags it WIP with corrections); this skill confirms the branch actually fulfils the original spec, fixes what falls short, and routes larger discoveries into GitHub issues. Use when: (1) User says '/finalize-codex-work', 'finalize codex work', 'confirm the codex work', 'check the codex branch', or 'codex said it's done', (2) A branch is the result of a Codex CLI session and needs verification against its spec issue/PR, (3) After assigning a /big-plan epic to Codex CLI. Pass -m/--merge to run /pr-complete -c at the end.
tools
Read a Figma design node directly from a share URL via the Figma REST API — no Dev Mode subscription, no MCP, no desktop app. Renders the node to PNG and dumps its full style/layout JSON so the design can be described, compared, or implemented. Use whenever the user gives a Figma design URL (figma.com/design/... or /file/...) and wants to see, read, inspect, reference, or implement that node — including `/fig-url-refer <url>`. This is the URL-based counterpart to `/figrefer` (which needs a Dev-plan desktop MCP); prefer this one when the input is a URL rather than a live desktop selection.
tools
Sync the user's Claude Code workflow skills into the OpenAI Codex CLI settings repo ($HOME/.codex) as Codex-native ports, fix the Codex .gitignore for new local state, then commit and push. Use when: (1) user says '/dev-codex-sync-settings-from-claude', 'sync codex settings', 'sync claude skills to codex', 'port skills to codex', or 'update codex from claude'; (2) after updating ~/.claude workflow skills (big-plan, x, x-as-pr, x-wt-teams) and Codex should catch up; (3) the $HOME/.codex repo has drifted behind $HOME/.claude. The ports are condensed Codex-native REWRITES, never file copies.
development
Analyze a video file (mov, mp4, webm, etc.) or a YouTube video by extracting still frames with ffmpeg and reading them chronologically with vision — Claude cannot ingest video files directly. Use whenever the user provides a video file path or YouTube URL and wants to know what happens in it: "read this video", "watch this video", "check this recording", "what happens in this .mov/.mp4", analyzing a screen recording of a UI bug, or verifying UI behavior captured in a video, even if they don't name this skill.