Skip to content
This repository was archived by the owner on Sep 29, 2026. It is now read-only.

Latest commit

 

History

207 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stoplight

Stoplight is now Station. Station is Onramp and Stoplight in one app: your PRs' checks in the menu bar, plus review windows for the diff and your agents. This repo is archived; download Station.

macOS menu bar app + widget showing CI status for your open pull requests as three dots: red, yellow, green. Nothing else.

Spec: tasks/prd-stoplight.md

Install

bash -c "$(curl -fsSL https://raw.githubusercontent.com/timmywheels/stoplight/main/install.sh)"

One command. Downloads the latest release, Developer ID signed and notarized by Apple, installs to /Applications, makes sure the GitHub CLI is installed and signed in, and launches. No Xcode, no security prompts, works on managed Macs.

Re-run the same command to update. Prefer building from source? STOPLIGHT_FROM_SOURCE=1 in front of the command (needs Xcode and xcodegen).

Build from a checkout

brew install xcodegen
xcodegen generate
open Stoplight.xcodeproj      # or: scripts/build-local.sh to build + install

Core logic tests:

cd StoplightCore && swift test

Diagnostics

While the app runs:

curl -s http://127.0.0.1:47391/status.json

Auth state, last error, per-source counts, agent config. No secrets.

Layout

  • Stoplight/ — menu bar app (SwiftUI MenuBarExtra)
  • StoplightWidget/ — WidgetKit extension, reads prs.json from the App Group
  • StoplightCore/ — Swift package: models, GitHub provider, rollup logic, tests
  • project.yml — XcodeGen spec. The .xcodeproj is generated and gitignored.

Auth

Stoplight runs gh auth token at launch and holds the token in memory. If gh isn't installed, paste a fine-grained PAT in the popover; it's stored in Keychain.

Release

scripts/release.sh          # → dist/Stoplight-<version>.dmg and .zip, ad-hoc signed

Releases are Developer ID signed and notarized. The script archives, exports with the Developer ID profile, submits to Apple's notary service, staples the ticket, and packages a DMG and zip. Falls back to ad-hoc signing when no Developer ID certificate is in the keychain. One-time setup is in the script header.

Signing

Set your team in Xcode (or DEVELOPMENT_TEAM in project.yml) before running. The App Group entitlement needs a real team id to work at runtime.

About

🚥 stoplight - the macOS menu bar app to monitor GitHub actions

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages