A lightweight macOS menu-bar app that monitors your Mac's thermal pressure, CPU usage, memory, and storage — with live graphs and throttling alerts. No admin privileges, no helper daemon.
- Thermal pressure in the menu bar (nominal / moderate / heavy / critical), read from the system's true 5-level signal
- CPU temperature read from the SMC, with automatic discovery of every hardware sensor
- CPU usage and memory usage + pressure indicators with live 10-minute graphs
- Fan speed on Macs with fans
- Sensor browser — see every sensor, pick which drive the headline temperature
- Max-vs-average temperature, °C/°F, configurable refresh interval, detachable graphs window
- Real CPU speed-limit / scheduler-limit readout on Intel Macs
- Configurable throttling notifications
- Launch at Login
- macOS 15.0+ (Sequoia)
- Apple Silicon or Intel
The app is ad-hoc signed but not notarized yet, so macOS quarantines it. Clear the flag once after installing (this is a one-time step).
brew install --cask ishaanpilar/tap/mactelemetry
xattr -dr com.apple.quarantine /Applications/MacTelemetry.app- Download
MacTelemetry-x.y.z.dmgfrom Releases, open it, and drag MacTelemetry to Applications. - Clear the quarantine flag once, in Terminal:
Or without Terminal: double-click the app, dismiss the "could not verify" prompt, then open System Settings → Privacy & Security, scroll to Security, and click Open Anyway.
xattr -dr com.apple.quarantine /Applications/MacTelemetry.app
- Launch it — the vitals icon appears in your menu bar.
On recent macOS, right-click → Open no longer bypasses this, and Homebrew removed the
--no-quarantineflag — thexattrcommand (or Open Anyway) is the reliable way until the app is notarized.
Open MacTelemetry.xcodeproj in Xcode and press ⌘R, or:
xcodebuild -project MacTelemetry.xcodeproj -scheme MacTelemetry -configuration Release build- Thermal pressure — the Darwin notification
com.apple.system.thermalpressurelevel(the same 5-level sourcepowermetricsuses), read without root. - Temperature / fan — read directly from the SMC over IOKit; all
T*sensor keys are enumerated and cached, with an IOHIDEventSystem fallback. - CPU usage —
host_statistics(HOST_CPU_LOAD_INFO), sampled as tick deltas. - Memory —
host_statistics64(HOST_VM_INFO64)(App + Wired + Compressed), swap viavm.swapusage, pressure viakern.memorystatus_vm_pressure_level. - Intel throttle —
pmset -g therm(Intel only; skipped on Apple Silicon).
SMC sensor-key tables are derived from the Stats project.
MIT © 2025 Ishaan Pilar
