Native, lightweight macOS menu-bar system monitor.
Peakmon shows live CPU, GPU, Memory, Battery, Disk, Network, and top-process metrics right in your menu bar — no Activity Monitor, no Electron, no telemetry. Configure exactly what you want to see, pick your colours, and forget it is there.
- Native. SwiftUI + Swift Concurrency + Swift Charts. No Combine, no NSTimer, no third-party UI / DI / logging frameworks.
- Lightweight. Lives quietly in the menu bar, sips CPU, and stays out of your way.
- Apple Silicon first. Uses unified-memory metrics, IOReport channels, and HID sensor services.
- Modular & open. Code is split into local Swift Packages so a new contributor can navigate the entire codebase in under an hour.
- macOS 14.0 Sonoma or newer.
- Xcode 26.4 or newer.
- Apple Silicon recommended; Intel best-effort.
# Open in Xcode and Run, or:
xcodebuild \
-project Peakmon.xcodeproj \
-scheme Peakmon \
-destination 'platform=macOS' \
buildPer-package tests:
swift test --package-path Packages/PeakmonCorebrew install crafcat7/cellar/peakmonThis installs the latest release of Peakmon into your Homebrew
prefix and prints instructions for symlinking it into /Applications
if you want it to show up in Spotlight.
Each release also ships an ad-hoc signed .app.zip on the
GitHub Releases page. Download, unzip, and drop the
.app into /Applications.
App Sandbox is intentionally disabled so Peakmon can read system-level metrics. The binary is ad-hoc signed; on first launch right-click → Open to bypass Gatekeeper.
Mac App Store release is not planned for the near future.
Peakmon/ # App target sources (MenuBarExtra entry)
Packages/
PeakmonCore/ # Models, scheduler, store, logger facade
PeakmonCollectors/ # CPU / GPU / Memory / Battery / Disk / Network / Processes
PeakmonUI/ # Reusable views (sparkline, color hex helpers…)
See Docs/CONTRIBUTING.md. TL;DR:
- Swift 6.2+, macOS 14.0+ SDK.
- SwiftUI + Swift Concurrency. No Combine, no NSTimer for metric polling.
- Only
MetricsSchedulerpolls the system. Views readMetricsStore. - Run
swiftlintbefore committing. CI runs--strict. - Conventional Commits (e.g.
feat(collectors): add NetworkCollector).
Peakmon is released under the Apache License 2.0.

