When I recently decided to install the macOS 26 Tahoe beta, I remembered that previous beta versions had the side-effect of causing high CPU load by certain macOS tasks. And usually it’s already a bit late when you notice this only once the Fans kick in, then check the «Activity Monitor.app» to find the culprit.
After searching the web a bit, I found exactly the solution that I wished for: proactive Notification center alerts, if either an App, Process, or the overall System CPU usage reaches critical limits.

Set up a CPU process watcher running in the background of macOS
This simple yet powerful script was originally developed and published by vladzima on GitHub – but after trying it for a bit, I felt it needs some improvements, which I added to my Fork of the project:
Link to GitHub where the setup_cpu_monitor.sh
bash-script can be downloaded
Launch and configure the Mac CPU Monitor script 🚨
Once the ZIP or setup_cpu_monitor.sh
was downloaded, launch the «Terminal.app»:
chmod +x /path/to/setup_cpu_monitor.sh
./setup_cpu_monitor.sh
Then follow the instructions in the Terminal window, and configure your preferred thresholds:
ps
CLI program, are SINGLE-CORE values. Hence a multiplication based on your Mac’s # of CPU cores is strongly recommended!- The %-threshold to alert for a single App/Process CPU usage
- The %-threshold to alert for the overall System CPU usage
- The interval in Seconds the monitor checks the CPU usage
You can find some ideas for their proposed values below.
Good thresholds to use for CPU monitoring of your Mac ⚙️
Generally I prefer the following thresholds, following a bit common “rule of thumb” I’d say.
- Per-process threshold: remember that multi-threaded apps can easily exceed 100%
→0.25 x (#cores x 100)
- Overall system threshold: about 75–85% of max #cores
→0.85 × (#cores × 100)
- Check interval: focus on long-running high CPU, ignoring short-term spikes (“false-positives”)
→300 seconds (5 minutes)
Example: 💻 Apple iMac M3 (8-core)
Monitor | Threshold |
---|---|
Single App CPU usage threshold | 150 |
Overall System CPU threshold | 680 |
Check interval in seconds | 120 |
Example: 💻 Apple MacBook Pro M4 (10-core)
Monitor | Threshold |
---|---|
Single App CPU usage threshold | 250 |
Overall System CPU threshold | 840 |
Check interval in seconds | 300 |
Example: 💻 Apple MacBook Pro – M2 Max (12-core)
Monitor | Threshold |
---|---|
Single App CPU usage threshold | 300 |
Overall System CPU threshold | 1020 |
Check interval in seconds | 300 |
Example: 🖥️ Apple Mac Mini M4 Ultra (24-core CPU)
Monitor | Threshold |
---|---|
Single App CPU usage threshold | 600 |
Overall System CPU threshold | 2040 |
Check interval in seconds | 480 |
Dummy CPU Stress Test for macOS 🧪
Naturally you want to test if the CPU monitor alerts work properly. There’s a free tool from the Mac App Store that is easily configurable for that:
This should be integrated into macOS nativeley (and iOS, and iPadOS, and watchOS, and tvOS, and visionOS)!
Great script, but honestly, configuring it feels more like a core workout than just monitoring one! Those threshold calculations are a brain teaser – I spent more time doing math than actually watching the CPU. And 300 seconds for a check interval? My coffee gets cold before it finishes brewing! Still, if it keeps me from accidentally maxing out the processor while editing my taxes, its a lifesaver. Now, if only macOS could add a Dont Panic button… 😉 angel prophecy deltarune