Raycast extension that monitors status pages so you can quickly answer: is the outage on my side or theirs?
Add status page URLs, get a color-coded list of services, and drill into component-level detail with uptime history — without opening a browser tab.
Site list — parallel fetch, status subtitles, and quick access to details.
Detail view — component breakdown, active incidents, and 90-day uptime history.
The extension auto-detects the provider when you add a URL. Detection order: Railway → AWS → Salesforce Trust → incident.io → Better Stack → Instatus → Statuspage → Checkly → Uptime.com → RSS.
| Provider | Examples | Detection |
|---|---|---|
| Railway | status.railway.com | Hostname match |
| AWS | health.aws.amazon.com | Hostname match |
| Salesforce Trust | status.salesforce.com/products/Heroku, status.heroku.com | Hostname match |
| incident.io | status.openai.com | /proxy/{host}/component_impacts API |
| Better Stack | status.yachtway.com | /index.json JSON:API |
| Instatus | instat.us | /summary.json |
| Statuspage.io | status.claude.com, GitHub, Vercel | /api/v2/summary.json |
| Checkly | status.mistral.ai | __NUXT_DATA__ payload in page HTML |
| Uptime.com | status.uptime.com, uptime.com/statuspage/hackerrank | React props payload in page HTML |
| RSS fallback | status.x.ai | /feed.xml (and common feed paths) |
incident.io is checked before Statuspage because some Statuspage hosts expose proxy-style URLs that look similar but lack incident.io-only endpoints like component_impacts.
Instatus must also be checked before Statuspage: Instatus pages serve a Statuspage-compatible /api/v2/summary.json shim, so the Statuspage detector matches them even though the payload lacks Statuspage-only fields.
Checkly has no public JSON API for status pages, so its adapter parses the Nuxt (__NUXT_DATA__) payload embedded in the page HTML. It is checked late because its detection requires downloading the full page.
Uptime.com status pages embed their full state as React props in the page HTML; the adapter parses that payload and also calls the page's /history JSON endpoint for 90-day uptime and past incidents. Like Checkly, it is checked late because detection requires downloading the page. Both hosted (uptime.com/statuspage/{slug}) and custom-domain pages work.
The RSS fallback is checked last and covers pages whose APIs and HTML are blocked (e.g. status.x.ai sits behind a Cloudflare challenge but keeps /feed.xml reachable). It is incident-only: components are derived from incident titles, day history marks incident days, and no uptime percentage is available.
The AWS adapter reads the Health Dashboard's public currentevents endpoint (UTF-16 JSON) plus the 12-month historyevents.json S3 export. Components cover service–region pairs that have reported events; services with no events in the window don't appear.
The Salesforce Trust adapter uses the public api.status.salesforce.com/v1 API and covers any product page on status.salesforce.com (Heroku, Tableau, Mulesoft, Slack, …). Add https://status.salesforce.com/products/{Product} to monitor one product; the bare domain maps to the core Salesforce Services product. status.heroku.com is deprecated in favor of Salesforce Trust, so it maps to the Heroku product automatically.
Requires Raycast, Node.js, and npm.
npm install
npm run dev # run in Raycast dev mode
npm run lint # lint + format check
npm run build # production build
src/
alive.tsx # main list command
adapters/
index.ts # provider detection + registry
statuspage.ts # Statuspage.io v2 API
aws.ts # AWS Health Dashboard public events
betterstack.ts # Better Stack /index.json API
checkly.ts # Checkly __NUXT_DATA__ HTML payload
incident-io.ts # incident.io proxy API
instatus.ts # Instatus public /summary.json API
railway.ts # Railway status API
rss.ts # generic RSS feed fallback (e.g. status.x.ai)
salesforce.ts # Salesforce Trust API (also covers status.heroku.com)
uptimecom.ts # Uptime.com React props payload + /history JSON
components/
site-form.tsx # add / edit form
site-detail.tsx # preview with uptime charts
hooks/use-sites.ts # local storage CRUD
lib/
fetch-json.ts # shared JSON fetch helper
snapshot-text.ts # uptime labels + status descriptions
status-colors.ts # indicator + component colors
uptime-chart.ts # SVG chart generation + uptime math
url.ts # URL normalization + Railway host check
types/ # shared + provider-specific API types
SiteProvider variant in src/types/index.tssrc/types/ if neededStatusAdapter (detect? + fetchSnapshot) in src/adapters/src/adapters/index.ts and update detectProviderEach adapter normalizes its API into a shared StatusSnapshot shape so the UI stays provider-agnostic.
MIT