perfmon.knhome.nl — A lightweight macOS menu bar app that gives you real-time system metrics at a glance — CPU, memory, network, disk, GPU, battery, and Bluetooth, all in a clean popover interface.
More screenshots (all detail views and settings) in screenshots/.
- Apple Silicon (M1 or later) — this build is arm64-only and will not run on Intel Macs
- macOS 14 (Sonoma) or later
- Signed auto-updates — in-app updates are cryptographically verified (Ed25519) before installation
- Beta channel — separate "Performance Monitor Beta" app for testing pre-releases alongside the stable app
- Lighter footprint — process sampling only runs while visible; all system reads off the main thread
- First-run onboarding, VoiceOver support, and local (never uploaded) crash reports
See CHANGELOG.md for the full version history.
- Overall usage percentage updated every second
- Per-process breakdown (Top CPU) with usage normalized across all logical cores
- Performance and Efficiency core counts (Apple Silicon)
- Historical usage chart
- Real-time breakdown: Used, Wired, Compressed, Free
- Memory pressure indicator
- Historical usage chart
- Live upload and download throughput
- Butterfly chart in detail view: download up, upload down, shared scale with axis labels
- VPN indicator: shield icon always visible — green (VPN on), blue (FortiClient), grey (off)
- Connection type indicator: WiFi and/or Ethernet icon; primary connection is green, secondary is white
- Local IP address (tap to copy)
- Public IP address (tap to copy)
- Wi-Fi SSID and signal strength in dBm with visual bar indicator
- Historical speed chart
- Read and write throughput per second
- Free and total disk space
- Historical I/O chart
- Live GPU utilization % via IOAccelerator (same source as Activity Monitor)
- Switchable card view: chart sparkline, ring gauge, or display info
- Connected display names with native pixel resolutions and Retina badge
- Quick link to Display Arrangement settings
- Charge percentage and charging state
- Time remaining / time to full
- Battery health percentage and condition
- Cycle count and design cycle count
- Temperature, voltage, and amperage
- Connected and paired device list
- Battery percentage per device:
- AirPods — Left, Right, and Case shown separately
- BLE devices (e.g. Logitech MX Master) — battery read via GATT Battery Service
brew install --cask inequitas/tap/performance-monitorGatekeeper note: The app is ad-hoc signed (no Apple Developer ID). On first launch, right-click the app → Open to bypass the unidentified developer warning.
- Download the latest
Performance Monitor.appfrom Releases - Unzip and drag to
/Applications - Launch — the app appears in your menu bar
- Grant Bluetooth permission when prompted to see Bluetooth device info
Gatekeeper note: The app is ad-hoc signed (no Apple Developer ID). On first launch, right-click the app → Open to bypass the unidentified developer warning.
Beta builds let early testers try upcoming changes before they reach the stable channel.
- Workflow: new features are developed on the
betabranch (branched frommain). Beta builds are taggedvX.Y.Z-beta.N(e.g.v1.1.0-beta.1) and published as GitHub pre-releases. Stable releases are still taggedvX.Y.Zfrommain, as before. - Building a beta:
bash build_app.sh --betaproduces "Performance Monitor Beta" with its own bundle ID (com.performancemonitor.beta, so its settings are separate from the stable app) and a badged icon.scripts/release.sh X.Y.Z-beta.N --beta [--publish]builds, tags, and publishes it as a pre-release. - Update channel: each build embeds a
PMUpdateChannelkey (stableorbeta) in itsInfo.plist. Stable installs only ever see stable releases (GitHub's "latest" endpoint never returns a pre-release). Beta installs check the full releases list and are offered the newest version — beta or stable — so a beta install eventually rolls onto the corresponding stable release once one ships. The channel is shown in Settings → Updates when running the beta build.
Requires an Apple Silicon Mac, Xcode Command Line Tools, and Swift 5.10+.
git clone https://github.com/inequitas/performancemonitor.git
cd performancemonitor
bash build_app.sh
open ".build/bundle/Performance Monitor.app"The build script compiles a release binary, assembles the .app bundle (under the hidden .build/bundle/, so Spotlight doesn't index it), embeds the icon, injects the version from VERSION, and applies an ad-hoc code signature. Only the signed .zip for distribution is written to dist/. Pass --beta to build the beta-channel variant instead.
| Permission | Why |
|---|---|
| Bluetooth | Read paired device names and battery levels |
No data is collected or transmitted. Everything runs locally.
Performance Monitor is free and will stay free — no paywalled features, ever. If it saves you the price of a paid alternative, consider sponsoring on GitHub or buying a coffee on Ko-fi; it helps cover Apple's Developer Program fee so the app can be notarised. A ⭐ on the repo helps too. Supporters are listed in SUPPORTERS.md.
- Configurable metric: CPU, Memory, Network, or Disk
- Two display styles: Sparkline (mini live chart + current value) or Text only
- Sparkline shows the last 30 seconds of history, updated every second
- CPU, GPU, and Battery temperatures read from the SMC via IOKit — works across all Apple Silicon (M1–M4)
- All three temperatures shown on the main overview card, colour-coded green → yellow → orange → red
- Extended sensor detail in the Thermal view: individual CPU cores, GPU clusters, Trackpad, Storage, Memory, and System board sensors
- Grouped rows with expandable chevrons — tap to see individual core or cluster readings
- System group (Trackpad, WiFi/Airport proximity, Charger) shown expanded by default
- Fan speeds (Left/Right) with min/max range, position bar, and intake airflow temperature
- System thermal pressure level (Nominal → Critical)
- Swift / SwiftUI — UI and app lifecycle
- IOKit — CPU, disk, battery, and HID device metrics
- CoreWLAN — Wi-Fi signal strength
- IOBluetooth — Paired Bluetooth device list
- CoreBluetooth — BLE GATT Battery Service reads
- Swift Package Manager — No Xcode project required



