Alertivity is a macOS menu bar utility that samples CPU, memory, disk, network, and process data so you can spot trouble early. It summarizes system health as Normal/Elevated/Critical, highlights the metric that triggered the state, and offers quick actions on culprit processes.
- Live system sampling every few seconds with status driven by the highest-severity metric across CPU, memory, disk, and network (with light hysteresis to avoid flapping).
- Menu bar indicator that can show overall status or a specific metric (CPU, memory, disk, network); optional auto-switch swaps on critical severity only using priority CPU > Memory > Disk > Network and a short dwell, and you can hide the indicator unless status is critical.
- Compact menu showing per-metric summaries, network throughput, and high-activity processes for CPU/memory/network with quick actions to reveal the process in Activity Monitor or terminate it (disk is excluded to avoid slow sampling).
- Notifications for critical status or high-activity processes, including the triggering metric/value and culprit metadata; delivery is throttled to avoid spam.
- Settings tabs for Dock visibility, launch at login, menu icon behavior (default icon type, auto-switch, show-only-on-high-activity, show metric icon), notification opt-in, and detection thresholds (CPU percentage and required duration).
- macOS 13.0 or later (uses
SMAppServicefor launch at login) - Xcode 15 or later with Swift 5 / SwiftUI
- Status levels: CPU (<50 / 50–79 / ≥80%), Memory (<70 / 70–84 / ≥85% of total), Disk throughput (<30 MB/s / 30–119 MB/s / ≥120 MB/s aggregated read+write), Network throughput (<5 MB/s / 5–19 MB/s / ≥20 MB/s aggregated send+receive)
- Auto-switch (busiest metric detection): triggers only on Critical severity using the above thresholds, honors priority CPU > Memory > Disk > Network, and requires two consecutive samples before switching
- High-activity process list: CPU ≥80% or Memory ≥25% sustained for 60s
- Open
Alertivity.xcodeprojin Xcode, select theAlertivityscheme, and press Run to launch the menu bar app. - From the command line:
xcodebuild -scheme Alertivity -configuration Release -destination 'platform=macOS' build
- Full suite with coverage (Swift Testing unit/integration + XCUITest UI smoke):
xcodebuild -project Alertivity.xcodeproj -scheme Alertivity -testPlan Alertivity -destination 'platform=macOS' -enableCodeCoverage YES test - UI smoke tests drive a harness window (enabled by the
UITestslaunch argument) to toggle menu/notification settings and verify status rendering; run just the UI layer with-only-testing:AlertivityUITests. - Coverage is emitted in the
.xcresultbundle under DerivedData; unit tests outnumber integration tests (~12:1) and UI tests remain a thin smoke layer to keep the pyramid balanced.
- First launch: choose whether to hide the Dock icon, enable launch at login, and allow notifications if desired.
- Menu bar: pick a default icon (status or a metric) or turn on Auto switch so the indicator follows the busiest metric; optionally show the indicator only when status is critical.
- Status: the menu status row explains which metric triggered the elevated/critical state and lists CPU, memory, disk percentages plus network throughput.
- Processes: high-activity items require sustained load before appearing; buttons let you open Activity Monitor focused on the process or force quit it.
- Notifications: fire on critical status or when a tracked process crosses the high-activity rule; include trigger metadata and process actions.
- Activity Monitor reveal uses AppleScript through System Events; grant Accessibility permission to Alertivity if prompted so the search shortcut works.
- Notifications require user authorization; enable them in Settings > Notifications.
- Launch at login depends on macOS 13+; if registration fails, the app re-reads the system status to keep the toggle accurate.