mac-performance-monitor README

The project's README from github.com/Zesty0wl/mac-performance-monitor. As one markdown file: README.md.

Mac Performance Monitor

CI Latest release Downloads Homebrew cask Stars

macOS 15+ Apple silicon Swift 6 Notarized No telemetry Crowdin License

A native macOS performance monitor and recorder. See what your Mac is doing now, then go back to the moment a slowdown or spike began. Compare CPU, memory, GPU, network, disk, battery, and sensor readings with the processes behind them.

Use it as a live menu bar readout, a quiet background recorder, or a window you open when needed. The menu bar and history recorder have separate switches.

Free and open source. No usage telemetry. Recorded samples stay on your Mac.

2.2 release notes · Changelog · Documentation

Explorer showing linked machine and process charts with a value inspector

New In 2.2

This update adds more GPU history, an opt-in Ask preview, process usage timelines, and saved time ranges. The app still supports Apple silicon Macs on macOS 15 or later.

New history grows from new recordings; older logs stay gaps for fields they never stored. See the release notes for requirements and limits, and the release checklist for verification details.

New In 2.1

All six Energy cards open larger charts and explanations. Charge, runtime, Mac power draw, and battery temperature have their own detail ranges. Health and Cycles show daily history over months and years, kept separate for each battery pack. Long-term history grows from new readings with recording on.

Runtime uses macOS estimates or recent steady use. A dashed forecast stays separate from real charge data. It assumes the same workload, not a fixed promise of how long the battery will last.

The Accessories panel shows the battery levels macOS reports for mice, keyboards, AirPods, and other devices. Optional low-battery alerts live in Settings > Alerts. Checks run at most once a minute; unknown values stay unknown.

Process detail and Explorer can show earlier, non-overlapping runs of the same program, with gaps at restarts. The Dashboard also shows uptime and the boot date.

Energy guide

New In 2.0

Explorer: Investigate A Moment

Explorer replaces the Analytics start screen with a workspace for live and recorded data. Pick a time, add the signals you need, and compare up to eight processes, including ones that have exited.

Hover to move a shared cursor across the charts. Click to pin a time. Hold Command and scroll to zoom around the pointer; ordinary scrolling still moves the page. Use a grid, a list, or an expanded chart for a closer look.

The inspector shows source values, timestamps, known bounds, and stored machine rows. Export the visible data as CSV, or share process history in a trace file. Older data keeps its retained resolution; zooming does not invent detail. Hardware inventory is a current snapshot, separate from history.

Explorer guide

Alerts Based On Change

High swap usage alone is not a reason to warn you. The new rules look for continued growth or paging strain. They can report further worsening without first waiting for usage to fall below an old fixed limit.

Process-growth checks reject stale readings and growth that has settled. Modest findings stay as quiet observations, not a diagnosis of a memory leak. A separate fast-growth check can catch runaway use without waiting 20 minutes.

Click the menu bar alert badge for active issues and their evidence. Snooze an ordinary alert for an hour, or open it in Explorer at the relevant time. Related memory alerts share a notice, and only critical notices request sound.

Adaptive alert rules and limits

Upgrading From 1.x

Existing alert choices and history carry forward. The old swap threshold is no longer used, but explicit process-memory budgets remain available. Alert state is local and separate from full history recording. New database fields preserve detail from new samples; they cannot restore missing older readings.

Back up the app's data before testing a downgrade. Review the upgrade notes and privacy policy before sharing trace files, reports, or screenshots.

Clearer Charts And Details

Dashboard and Explorer charts show a clear average over the translucent recorded range. Short bursts stay visible, missing readings stay missing, and historical shapes remain stable as new data arrives.

Dashboard cards open larger detail views with values and explanations. The menu bar panels keep stable layouts as readings change. The Dock icon follows the window, with a setting to keep it visible.

Monitor Your Mac

Screenshots

GPU, Ask, and Usage Timeline examples use the real native views with sample data. They illustrate the interface, not a benchmark or a verified AI diagnosis. Capture details are in the release checklist.

Dashboard

The current overview: pressure, memory, CPU, network, disk, and thermal trends.

Dashboard with metric cards, memory breakdown, and recorded activity charts

Processes

A live process table with a detailed inspector for the selected process.

Processes

Process Usage Timeline

Sampled running history and optional Apple activity occupy separate lanes. This example uses sample data, not a person's activity records.

Usage Timeline showing sampled running, app activity, and media activity separately

Ask Preview

Current measured reports remain available with AI off. This example uses sample readings. Questions, explanations, and Siri sharing have separate controls.

Ask Preview showing a current memory report with on-device AI off

Energy

Battery health, power flow, and accessory batteries. This overview is cropped to leave the battery serial number out of the image.

Energy

GPU

GPU memory and awake-time history, separate ANE cards, and the bandwidth Preview chart. The approximation caveat appears once beneath the chart. This current-source capture uses sample readings.

GPU preview showing recorded bandwidth for total, reads, and writes alongside utilization and clock states

ANE Time and ANE Power have independent units and history. These are sample readings, not evidence that an app used a particular processor.

Separate Neural Engine activity and power charts with ms/s and watt axes

Install

For the latest published build, download MacPerformanceMonitor.pkg from Releases and double-click it. Published packages are Developer ID signed and notarized by Apple. Sparkle handles app updates.

Homebrew

brew install --cask mac-performance-monitor

This installs the same signed, notarized pkg from the main homebrew-cask repository. Homebrew's version can lag a new release until its cask update lands. The app also keeps itself current through Sparkle. To include it in brew upgrade, pass --greedy.

Build From Source

git clone --branch main https://github.com/Zesty0wl/mac-performance-monitor.git
cd mac-performance-monitor
swift build
swift test
Scripts/run.sh

You need Apple silicon and macOS 15 (Sequoia) or later. Building the current preview app bundle needs Xcode 27 for its App Intents metadata. Core builds and tests use Swift 6. The optional local-inference worker also needs Xcode's Metal Toolchain: install it with xcodebuild -downloadComponent MetalToolchain. Bundling needs Xcode's xcstringstool too. Model weights download separately. The run script uses a signing identity when available, or falls back to ad-hoc signing. Ad-hoc builds cannot use the privileged helper. See CONTRIBUTING.md for signing options and test coverage.

Privacy

No usage telemetry or analytics. Recorded performance data and alert evidence stay on your Mac. Exports leave it only when you choose to share them.

Update checks, model downloads, signed content downloads, and network tools make network requests. They do not upload your recorded performance history. Ask uses local models and clears its conversation when closed. Optional Siri and Shortcuts sharing follows Apple's processing rules and can pass results to other actions. See Security and privacy for these separate choices.

Contributing

Contributions are welcome. See CONTRIBUTING.md and the Code of Conduct. Security reports go through SECURITY.md.

The app ships in English, Simplified Chinese, German, and French. German and French began as AI translations and await review by native speakers. New 2.0 strings in Simplified Chinese also include generated copy awaiting review. Translate or review in your browser on Crowdin, or edit one file and open a pull request. See TRANSLATING.md for the translation history and review process.

License

Released under the MIT License. Bundles GRDB.swift (MIT) and Sparkle (MIT). Local inference also uses MLX and llama.cpp, with their dependency licences in the app bundle. Model downloads include their own licence and attribution files.

mac-performance-monitor (Zesty0wl/mac-performance-monitor)

menubar
Searching Database…

What is this?A native macOS performance monitor and recorder that tracks CPU, memory, GPU, network, disk, battery, and sensor readings, letting you compare them against the processes behind them. It works as a menu bar readout, a quiet background recorder, or a window you open when needed.
Is this just a live menu bar readout, or does it also keep history?Both: the menu bar display and the history recorder have separate on/off switches, so you can run a live readout, silently log history in the background, or both at once and jump back to when a slowdown started.
Does it run on Intel Macs?No, it needs Apple silicon and macOS 15 (Sequoia) or later; building it from source instead requires Xcode 27 and Swift 6 for the app bundle.
Is the built-in AI 'Ask' feature trustworthy?It's an opt-in Preview that answers questions locally using on-device models (or optional Qwen3/DeepAnalyze downloads), but the README states it 'cannot run commands or change settings, and answers can still be wrong,' so treat it as evidence-based explanation, not ground truth.
Does any of my performance data leave my Mac?No, recorded performance data and alert evidence stay on your Mac, and exports only leave when you choose to share them; network requests are only for update checks and model downloads, never for uploading your history.
What can the Explorer view do?Explorer lets you pick a time, overlay the signals you need, and compare up to eight processes (including exited ones) with a shared cursor, pinning, zoom, and CSV/trace export.
Can it show me what's eating my disk space?Yes, the Disk Map feature scans a disk or folder and shows its usage as a treemap, with options to reveal large or old files in Finder or Quick Look.
Does it recognize local AI tools running on my Mac?Yes, the GPU view can recognize AI runtimes such as Ollama, MLX, and LM Studio and show their GPU activity, memory, and power use.
What languages is the app available in?English, Simplified Chinese, German, and French, though the German, French, and some new Simplified Chinese strings started as AI translations awaiting native-speaker review.
Creator
Zesty0wl
Size
40.7 MB
Stars
941
Age
3mo
Commits · 90 Days