A Raycast extension that reads the public, unauthenticated CodexRunway API
(https://www.codexrunway.com/openapi/v1) and shows the latest usage-reset
schedule/completion status.
It ships three commands:
GET /records?kind=all|reset_scheduled|reset_completed&page=1&pageSize=10
(pageSize max 10)X-RateLimit-* response headers and a 429 + Retry-After when
exceeded. The menu bar command therefore refreshes every 10 minutes, and
each run makes a single request that serves both the latest record and
the "did it reset today?" check.Run npm test for deterministic status and response checks, npm run lint for
linting, and npm run build to compile the extension into Raycast's local directory.
Requests share a two-minute cache and a rolling 20-request/hour budget across
commands. Manual refresh respects that cache. A 429 pauses all requests until
Retry-After (seconds or an HTTP date); exhausted server quota also respects
X-RateLimit-Reset. During a pause or network failure, cached records remain
visible with a warning and retry time. Requests time out after 15 seconds.
Choose Subscription Plan in extension preferences to scope today's status
and the next plan to your subscription. Records marked all match every plan;
unknown scope is only included with All Plans. The menu bar's command preferences
include Show icon only.
The next-plan summary selects the earliest future or active scheduled window in the latest 10 records. If only an elapsed, unfulfilled plan is available, it stays visible as awaiting confirmation. Cancelled and fulfilled plans are excluded. All displayed times are estimates from the source, not a completion guarantee.
History uses Raycast's native continuous pagination. Search and the Plan action filter only loaded records; loading more extends the searchable set. Changing the record kind restarts pagination. Each command launch initially restores the first page, and duplicate record IDs across pages are collapsed. A failed update or cooldown stops automatic loading and keeps loaded pages visible; use Retry Failed Page to retry that page, or Refresh to restart from page one.
Enable Notify when a new reset is confirmed in the menu bar command's preferences and keep background refresh enabled. Notifications are off by default. Only background runs evaluate notifications; the first successful background check (and the first after changing plans or enabling reminders) establishes a quiet baseline. Later checks notify newly observed completions whose completion time is at or after that baseline, including across midnight. For completed records without an execution timestamp, the completion announcement time is used and explicitly labeled Announced in the notification. Linked scheduled/completed records generate a single notification.
Notifications use macOS Notification Center through AppleScript, with no extra dependency. macOS notification permissions and Focus settings control whether a banner appears; successful delivery to the OS does not guarantee a visible banner. The plugin does not change these settings. Notification errors appear in the menu and are retried on the next successful background check.
Search matches every whitespace-separated word across full announcement text, status, plan, and usage window, ignoring case. While a search or plan filter is active, automatic pagination pauses; Load More Records remains available. History groups are ordered by event date across pages.