Mac Performance Monitor
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
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.
- GPU and Neural Engine: Total, Reads, and Writes share a historical
- Ask About This Mac: on macOS 27, ask a plain question such as "Why is my
- AI agents: hand a harder question to Claude Code, Codex or another agent.
claude mcp add --scope user mac-performance-monitor -- "/Applications/Mac Performance Monitor.app/Contents/MacOS/mpm" mcp
Run mpm help for the command-line tool. The AI agents guide
covers Claude Code, Codex, Claude Desktop, Cursor and VS Code, what agents
can ask, and what leaves your Mac.
- Usage Timeline: right-click a process to see when the recorder observed
- Saved ranges: history views start at 30 minutes and remember their own
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.
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.
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
- Processes: sort and filter the process table, inspect memory and CPU
- Groups: collect related apps and helpers into a group and track their
- Energy: view battery health, charge, power flow, temperatures, fans, and
- Network: follow download and upload rates, inspect adapters, and enable
- Disk: chart throughput, IOPS, and service time. Inspect drive health,
- Disk Map: scan a disk or folder, explore its space as a treemap, and find
- GPU: see device and per-process activity, power, memory, and thermal
- Hardware: browse a searchable inventory of the chip, memory, displays,
- History and diagnostics: choose recording detail and retention, find top
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.
Processes
A live process table with a detailed inspector for the selected process.
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.
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.
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 app
bundle needs Xcode 27 for its App Intents metadata and the macOS 27 SDK. Core
builds and tests use Swift 6. Bundling needs Xcode's xcstringstool too.
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. If you hand an investigation to an AI agent such as Claude Code, the agent sends what it reads to its provider. 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.

