December 28, 2025
Hot takes on hot Macs
Building a macOS app to know when my Mac is thermal throttling
Mac too hot? Dev makes a “throttle alert” app; commenters ask what you can actually do
TLDR: A dev built MacThrottle to flag when a Mac slows down from heat and found Apple’s signals don’t match, so they tapped a system notification. Comments split: some say it’s handy visibility, others shrug since you can’t adjust fans or undervolt, with warnings the data may be buggy.
A developer’s fanless M2 MacBook Air got sluggish driving a fancy 4K 120Hz monitor, so they built MacThrottle—a tiny app that tells you when thermal throttling (your laptop slowing itself to cool down) kicks in. Cue the plot twist: Apple’s own signals don’t agree. One tool lumps everything into “fair,” another calls it “moderate” vs “heavy.” So the dev ditched the confusing readouts and wired into a behind-the-scenes system notification (no admin password needed) to get a clearer signal. Nerdy? Yes. Useful? The comments are a storm.
Skeptics fire first: What can you even do if a Mac has no fans and you can’t undervolt? Meanwhile, pragmatists flex the menu-bar life: “Just pin CPU and watts” with stats and vibe. Bug hunters crash the party waving receipts, warning Apple’s thermal notifications can be flaky (issue #73). One hardware romantic even dreams of a tiny LED that glows when your Mac is cooking. The memes write themselves: “If my Air had fans, I’d listen for screaming.” The split is real—visibility vs resignation. The app won’t cool your laptop, but it might tell you when to unplug that monster display or close those cursed tabs. And yes, the takes are hotter than the Mac itself.
Key Points
- •MacThrottle was built to detect thermal throttling on an M2 MacBook Air under demanding external display use.
- •Monitoring tools show throttling symptoms: CPU at 100% while wattage and performance core frequency drop.
- •Apple’s ProcessInfo.thermalState is too coarse, grouping powermetrics’ moderate and heavy states into “fair.”
- •powermetrics (root required) provides granular thermal pressure levels and diverges from ProcessInfo under stress.
- •Accurate thermal pressure can be read without root by subscribing to com.apple.system.thermalpressurelevel via Darwin notifications in Swift.