frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Building a macOS app to know when my Mac is thermal throttling

https://stanislas.blog/2025/12/macos-thermal-throttling-app/
70•angristan•5h ago

Comments

Neywiny•2h ago
Seems like good work. From what I've heard developing on MacOS has not gotten easier over the years. I do question the point, though. I suppose there's merit in knowing if your configuration causes thermal throttling, but what are you able to do about it? There's no fan profile to tweak or anything. Can you undervolt them?
amelius•1h ago
You can move to a colder place or turn the room temperature down.
nottorp•1h ago
In the northern hemisphere you can just open a window at this time of the year.

Remember to put your coat and hat on!

angristan•1h ago
> but what are you able to do about it?

On Macbooks with fans, I started tuning my fan curve with iStat Menus (https://bjango.com/help/istatmenus7/fans/#custom-fan-curve) because I noticed the default curve was lagging behind and thermal throttling kicked in before the fan even reach max speed.

For Apple Silicon specifically, I recently discovered that there is a "high power mode" (https://support.apple.com/en-us/101613) that allows the fans to run at higher speed. So I don't use the custom fan curves anymore, it helped me a lot (but it does get quite noisy on a 14" M4 Max)

For a Macbook Air, not much you can do besides closing stuff, or elevating the macbook and pointing a fan at it or things like that... but yeah it's a bit desperate!

somat•54m ago
An open question on fan curves

Environment: I am currently playing with a pid control function for my gpu fan, that is instead of saying "map temp x to fanspeed y"(fan curve) say "set fan to speed needed for temp z"(pid control)

Question: is there a reason pid type control is never a thermal option? Or put another way, is there something about the desired thermal characteristics of a computer that make pid control undesirable?

As a final thought, I have halfway convinced myself that in a predictable thermal system a map would match a set of pid parameters anyway.

embedding-shape•39m ago
> "set fan to speed needed for temp z"(pid control)

Why though? I generally don't care about the specific temperatures of my CPU and GPU, just that they don't get too warm, so for the CPU (AIO) I basically have "0% up until 45C, then increment up to 100% when it hits 90C" and the same for the GPU except it's always at 10%.

I guess I could figure out target temperatures, and do it the other way, but I'm not sure what the added complexity is for? The end results (I need at least) remains the same, cool down the hardware when it gets hotter, and for me, the simpler the better.

I also have two ambient temperature sensors in the chassi itself, right at the intake and the outtake. The intake one is just for monitoring if my room gets too warm so the computer won't be effective at cooling (as the summers here get really warm) and the outtake one is to check overall temperature and control the intake fans. In reality, I don't think I need to do even this, just the CPU+GPU temperature + set fan speed based on that feels simple enough to solve 99% of the things you'd like to be able to do here.

jtbayly•1h ago
I wanted this app to exist. Now it does!

I sometimes face thermal throttling because a process has gone wacko, and all I have to do is kill it. But first I have to notice it.

I rarely notice until half my battery is gone!

Neywiny•1h ago
You know what, fair point. I know because my fans go haywire (except that one time my fans decided to just not work until I ran some incantations. The joys of Linux). If you're passively cooled, you get no feedback on CPU load. Makes sense.
jtbayly•1h ago
Yeah I’m on a MacBook Air, so no fans.
angristan•34m ago
Indeed, that's why apps like iStat Menus, Stats, Sensei etc (for macOS at least) are very useful, I keep the CPU usage and power usage in my menu bar at all times, this is very useful on battery. For example I know that my Macbook Air idles at ~2W-5W, so if I'm doing nothing special and it's using 15W, a process is doing some funny stuff
nicoburns•43m ago
> but what are you able to do about it

Quit some apps probably. I often have a bunch of stuff running in the background that I haven't bothered to close yet. It also sounds like it'd be good for detecting software that's gotten stuck in a busy loop or similar.

And/or possibly take a tea break while it chills out.

embedding-shape•41m ago
> but what are you able to do about it?

Depends on the environment, back when I had a MacBook, they still had fans, but the new ones are all passive, I think. So then the surface (or lack of it) below it would matter the most. If you keep it in your lap, on top of a hairy blanket, it'll be a lot effective at getting rid of the heat compared to if you have it sitting on a stone table, as just one example.

saagarjha•27m ago
MacBook Air is passive, MacBook Pro is not
hu3•17m ago
New macbooks still have fans. Depending on the model.
vunderba•41m ago
I've been using Macs-Fan-Control since I picked up a Mac M1 a few years back and it works great. It lets you control the fan RPM based on CPU Core values.

I adjusted it to ramp the fans up at more conservative values because otherwise during intense usage periods it would hit 90C+.

https://github.com/crystalidea/macs-fan-control

giancarlostoro•13m ago
I use TG Pro on my Macbook Pro to auto-cool my Mac. It drives me crazy that Apple lets your Mac burn to a crisp before kicking on the fans.
sys_64738•1h ago
brew install stats
nazgu1•1h ago
There is a problem/bug with thermal pressure notifications. Did you stumbled upon such issue with your app? https://github.com/macmade/Hot/issues/73
angristan•1h ago
Ah! Yeah I did notice that using `ProcessInfo.processInfo.thermalState`, the state didn't update unless I restarted the process (reproducible even with a swift script). But this issue doesn't happen with the technique I use right now (the thermald notification)
nazgu1•1h ago
Thanks, I will check your approach. And your app as well, looks beautiful and useful.
angristan•38m ago
Thank you for the kind words :)
twilo•1h ago
You can just ping your CPU usage to the menu bar and monitor that. I have CPU and total system wattage up there so I always know if something weird is going on.

https://github.com/exelban/stats

angristan•1h ago
Yeah! That's how I initially suspected that it was thermal throttling because I saw in iStat Menus that my wattage was going down for a constantly high CPU usage
rkagerer•1h ago
This would be a really useful thing to indicate via an unobtrusive LED on the chassis somewhere.
echoangle•1h ago
Why would you take an LED over something on the screen? The notification is only really relevant while the laptop is open, and the screen is going to be on anyways.
mschuster91•45m ago
Another thing to keep in mind with MacBook Pro models or any other device that has fans... if you have cats, dogs or other heavily shedding animals, you must regularly (for me, once a year, for people with German Shedders more like once a quarter) open them up and thoroughly clean them.

The amount of fur that manages to squeeze everywhere is insane.

vunderba•37m ago
Husky/Pyr owner here - I have to systematically blow out all of my electronics because she molts enough fur to start my own Etsy brand of stuffed animals.

The WORST thing, though, is that all her fur makes its way into all my musical instruments, including underneath each individual key of my upright piano (now effectively a felt piano).

the_black_hand•10m ago
My 2017 macbook is basically brick. Crazy how just opening chrome sets off fans like a jet engine. How much cpu can checking gmail really use?

Foolish me is considering buying a new macbook this year. I have no choice because Apple and Microsoft will do everything in their power to ship the shittiest personal computing products every year.

marksomnian•5m ago
Site appears to be hugged to death, repo is: https://github.com/angristan/MacThrottle
edwardtay•3m ago
Nice work! This is a practical tool that fills a real gap. A few thoughts:

1. Have you considered adding historical tracking/graphing? Being able to see throttling patterns over time would be super valuable for understanding workload impacts and diagnosing thermal issues.

2. What metrics are you pulling to detect throttling? CPU frequency scaling, temperature sensors via IOKit, or something else? Would be interested in the technical details.

3. Integration with menu bar apps like iStat Menus or Stats could be useful - or even just exporting metrics to a format they can consume.

4. For M-series chips, have you noticed different throttling behavior compared to Intel Macs? The efficiency/performance core split makes this more complex.

5. Any plans to add alerts/notifications when throttling occurs? Or maybe even automated actions (like pausing backup processes when thermal throttling is detected)?

One use case: this would be great for developers running heavy builds or ML training. Knowing when your machine is throttling helps decide whether to optimize code, get better cooling, or just wait it out.

Growing up in “404 Not Found”: China's nuclear city in the Gobi Desert

https://substack.com/inbox/post/182743659
384•Vincent_Yan404•10h ago•146 comments

Calendar

https://neatnik.net/calendar/?year=2026
709•twapi•12h ago•91 comments

tc-ematch(8) extended matches for use with "basic", "cgroup" or "flow" filters

https://man7.org/linux/man-pages/man8/tc-ematch.8.html
5•hamonrye•31m ago•0 comments

Hungry Fat Cells Could Someday Starve Cancer to Death

https://www.ucsf.edu/news/2025/01/429411/how-hungry-fat-cells-could-someday-starve-cancer-death
79•mrtnmrtn•7h ago•22 comments

Replacing JavaScript with Just HTML

https://www.htmhell.dev/adventcalendar/2025/27/
548•soheilpro•16h ago•196 comments

Building a macOS app to know when my Mac is thermal throttling

https://stanislas.blog/2025/12/macos-thermal-throttling-app/
70•angristan•5h ago•30 comments

One year of keeping a tada list

https://www.ducktyped.org/p/one-year-of-keeping-a-tada-list
113•egonschiele•6d ago•37 comments

Designing Predictable LLM-Verifier Systems for Formal Method Guarantee

https://arxiv.org/abs/2512.02080
11•PaulHoule•2h ago•0 comments

Shut Up About the Water

https://prettygoodblog.com/p/shut-up-about-the-water
3•notorious_pgb•1h ago•0 comments

Floor796

https://floor796.com/
874•krtkush•1d ago•106 comments

Never Use Pixelation to Hide Sensitive Text (2014)

https://dheera.net/posts/20140725-why-you-should-never-use-pixelation/
22•basilikum•1w ago•8 comments

Rex is a safe kernel extension framework that allows Rust in the place of eBPF

https://github.com/rex-rs/rex
102•zdw•5d ago•53 comments

Langfuse (YC W23) Is Hiring in Berlin, Germany

https://langfuse.com/careers
1•clemo_ra•5h ago

How we lost communication to entertainment

https://ploum.net/2025-12-15-communication-entertainment.html
567•8organicbits•21h ago•308 comments

Scientists discover beer bottle in the Mariana Trench (2024)

https://www.unilad.com/news/scientist-beer-bottle-deepest-point-ocean-mariana-trench-667878-20240213
16•thunderbong•45m ago•12 comments

Fathers’ choices may be packaged and passed down in sperm RNA

https://www.quantamagazine.org/how-dads-fitness-may-be-packaged-and-passed-down-in-sperm-rna-2025...
241•vismit2000•15h ago•149 comments

Gpg.fail

https://gpg.fail
405•todsacerdoti•1d ago•234 comments

Dialtone – AOL 3.0 Server

https://dialtone.live/
85•rickcarlino•13h ago•40 comments

Functional programming and reliability: ADTs, safety, critical infrastructure

https://blog.rastrian.dev/post/why-reliability-demands-functional-programming-adts-safety-and-cri...
121•rastrian•17h ago•115 comments

Rainbow Six Siege hacked as players get billions of credits and random bans

https://www.shanethegamer.com/esports-news/rainbow-six-siege-hacked-global-server-outage/
244•erhuve•21h ago•102 comments

Streaming Uploads with LiveView

https://fly.io/phoenix-files/streaming-uploads-with-liveview/
3•m5r•6d ago•0 comments

The Origins of APL (1974) [video]

https://www.youtube.com/watch?v=8kUQWuK1L4w
41•ofalkaed•6d ago•6 comments

Project Vend: Phase Two

https://www.anthropic.com/research/project-vend-2
162•kubami•6d ago•69 comments

Last Year on My Mac: Look Back in Disbelief

https://eclecticlight.co/2025/12/28/last-year-on-my-mac-look-back-in-disbelief/
156•vitosartori•7h ago•106 comments

Text rendering hates you (2019)

https://faultlore.com/blah/text-hates-you/
166•andsoitis•6d ago•69 comments

Windows 2 for the Apricot PC/Xi

https://www.ninakalinina.com/notes/win2apri/
150•todsacerdoti•22h ago•35 comments

Immer – A library of persistent and immutable data structures written in C++

https://github.com/arximboldi/immer
110•smartmic•6d ago•12 comments

Liberating Bluetooth on the ESP32

https://exquisite.tube/w/mEzF442Q4hUXnhQ8HmfZuq
106•todsacerdoti•18h ago•18 comments

'PromptQuest' is the worst game of 2025 (trying to make chatbots work)

https://www.theregister.com/2025/12/26/ai_is_like_adventure_games/
25•dijksterhuis•3h ago•17 comments

Show HN: Ez FFmpeg – Video editing in plain English

http://npmjs.com/package/ezff
385•josharsh•1d ago•190 comments