Mac Activity is a lightweight macOS menu bar utility that shows live system metrics and opens a compact dashboard for deeper inspection.
It ships as:
MacActivityApp: the macOS app that renders the menu bar item and popover dashboard.MacActivityCore: a reusable framework containing metric providers, sampling logic, preferences state, and data formatting.
- Menu bar summary with configurable metrics.
- Live popover dashboard with metric cards.
- Basic network trend visualization (download/upload sparkline).
- Customizable menu bar metrics and launch behavior.
- Launch at login toggle.
- Actives cleanup surface for disk cleanup and process memory.
- Sparkle-based update checks with release, beta, and alpha channels.
- Per-metric sampling cadence (
fast,medium,slow) and history tracking. - Unit tests for core scheduling, summary formatting, preferences, snapshot/history, and dashboard model behavior.
Implemented providers:
- CPU usage
- GPU usage
- Disk usage
- Swap usage
- Memory usage
- VRAM usage
- Network throughput (upload/download rates)
- Battery percentage + charging status
- Temperature from CPU/SMC or Battery when available
- Fan speed when available
- macOS 13.0+
- Xcode 16 (recommended) with Swift 6 toolchain
- XcodeGen (only needed if you want to regenerate
MacActivity.xcodeprojfromproject.yml)
git clone https://github.com/bigtomcat6/mac-activity.git
cd mac-activity- Generate the Xcode project if you changed
project.yml:
xcodegen generate- Open the project and run the
MacActivityscheme.
open MacActivity.xcodeprojswift testIf
swift testfails due to your local Xcode/Swift setup, use Xcode and run theMacActivitytest scheme.
- App launches as an accessory app with a menu bar item by default.
- Clicking the menu bar item opens the dashboard popover.
- You can disable the menu bar item in Preferences; the app remains reachable until you re-enable it.
- When launched with menu bar hidden, the app can still be recovered from the preferences flow.
- Documentation index
- User guide
- Development guide
- Contributing guide
- Support guide
- Security policy
- Release guide
Open Preferences and you can:
- Toggle Show menu bar item
- Toggle Launch at login
- Choose the display language
- Choose the update channel and check for updates
- Choose the temperature source
- Show hardware battery percentage when available
- Show app identifiers in Actives process rows
- Choose Disk Cleanup categories
- Choose which summary metrics appear in the menu bar
Metric order is stable (CPU -> GPU -> Disk -> Swap -> Memory -> VRAM -> Temperature -> Fan -> Network -> Battery), while some metrics may be hidden when not available on the current machine.
The codebase is split into two targets:
Sources/MacActivityCore- metric snapshot/history model
- provider protocol and provider implementations
- scheduler and cadence control
- formatters and presentation models
- persistence for user preferences
Sources/MacActivityApp- status item rendering
- popover/dashboard UI
- app lifecycle and activation handling
- preference window and launch-at-login integration
Contributions are welcome.
- Open an issue describing the problem/idea.
- Include steps to reproduce for bug fixes.
- Keep changes scoped and include/update tests for behavior changes.
- For substantial changes, prefer small incremental PRs.
Licensed under the Apache License 2.0.