Skip to content

aahoughton/StatusMonitor

Repository files navigation

StatusMonitor

Build License: MIT macOS 14+

A macOS app and desktop widget for monitoring service status pages. Just paste a URL and the backend is detected automatically. Track uptime, view incident history, and get at-a-glance status from your desktop.

Status Monitor

Full disclosure

This is almost entirely vibe coded. I have neither the time nor the inclination to learn Swift, but I do need a handy desktop widget to keep an eye on the services I care about. Claude wrote most lines. If you spot places it could have done better, I'm all ears -- open an issue.

Download

Grab the latest notarized build from GitHub Releases, unzip, and drag to Applications.

Features

  • Monitor multiple status pages (GitHub, Claude, OpenAI, Cloudflare, etc.)
  • Uptime history bar with per-component breakdown where available
  • Automatic backend detection -- just paste the URL
  • Desktop widget showing current status
  • Per-service refresh with configurable interval
  • Smooth green-yellow-red gradient based on actual downtime duration

Build from source

Requires macOS 14+, Xcode 15+, and XcodeGen.

git clone https://github.com/aahoughton/StatusMonitor.git
cd StatusMonitor
cp Local.xcconfig.example Local.xcconfig
xcodegen generate
open StatusMonitor.xcodeproj

The defaults in Local.xcconfig.example work for local builds. Edit Local.xcconfig to set your Team ID and bundle ID if you want to use the widget (see Enabling the widget).

Build and run (Cmd+R). To enable the widget, see Enabling the widget below.

Enabling the widget

The desktop widget requires an App Group so the app and widget can share data.

  1. Set your Team ID and bundle ID in Local.xcconfig

  2. Register the App Group in your Apple Developer account:

    • Identifier: group.<YOUR_TEAM_ID>.<YOUR_BUNDLE_ID_BASE>
    • Enable App Groups on both your app and widget App IDs
  3. Regenerate and rebuild:

    xcodegen generate

Without this setup the app works normally but the widget can't read your service list.

Project structure

StatusMonitor/          # Main app (SwiftUI)
StatusMonitorWidget/    # Widget extension (WidgetKit)
Shared/                 # Shared code (models, networking, persistence)
Tests/                  # Unit tests
scripts/                # Build and release scripts
project.yml             # XcodeGen project definition

Supported status pages

Just paste the URL and the backend is detected automatically:

  • Atlassian Statuspage -- per-component uptime bars with incident attribution
  • incident.io -- page-level uptime with component current status
  • Instatus -- component status and active incidents
  • Hyperping -- service status with 90-day uptime snapshots
  • Statuspal -- hierarchical services with incident history
  • OpenStatus -- monitor status from *.openstatus.dev pages

License

MIT

About

macOS menu bar app and widget for monitoring service status pages. Auto-detects Atlassian Statuspage, incident.io, Instatus, Hyperping, Statuspal, and OpenStatus backends. Shows live status, 30-day uptime history, and incident details at a glance

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages