Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MenuIP

Menu bar macOS app that displays:

  • Public IP address
  • Estimated IP-based location
  • ISP / network organization

The app runs as an accessory app (LSUIElement) and refreshes every 60 seconds, plus on network path changes.

Behavior

  • Menu bar title format: <IP> · <Location> · <ISP>
  • Visibility toggles for location and ISP in the menu bar title
  • First-launch prompt to enable open-at-login, with persistent toggle in menu
  • Location display format: City, Region, Country
  • Status states: startup, updating, ready, and error
  • Manual actions in menu: refresh, copy IP, open Network settings, toggle open-at-login, quit

Data Sources

  • Public IP: api.ipify.org, with fallback providers
  • Geolocation + ISP: ipapi.co (city, region, country/country_name, org/asn)

Technical Notes

  • Language: Swift 6
  • Package type: Swift Package Manager executable target
  • Platform: macOS 13+
  • Main components:
    • IPService: fetches public IP
    • GeoService: resolves location and ISP
    • AppState: refresh cadence/state handling
    • MenuBarController: status item and menu UI

Packaging

Bundle generation is handled by scripts/package-app.sh.

Supported environment variables:

Variable Default Purpose
VERSION 1.0.0 CFBundleShortVersionString
BUILD_NUMBER 1 CFBundleVersion
BUNDLE_ID com.moises.menuip CFBundleIdentifier
SIGN_IDENTITY - Code signing identity (- for ad-hoc)
ICON_SOURCE ~/Downloads/MenuIP.icon Icon source (.icon, .iconset, .icns, or .png)

Packaging output:

  • dist/MenuIP.app
  • dist/MenuIP-<VERSION>-macOS.zip

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages