CoolCurve notes

Fan control on Apple silicon: which apps set a speed, and which only watch

Eight fan and sensor apps for Apple silicon Macs, sorted by what each vendor documents on 23 July 2026: which set a fan speed, which only read one, and what CoolCurve's own source documents as its own limits.

On this page

Facts verified

This table reports what each vendor publishes about its own app, checked in one sitting on 23 July 2026, and linked. Nobody strapped a tachometer to a fan to build it: every row, including CoolCurve's own, reports documented capability rather than a measured result. Six of the eight apps below document a real fan speed setting capability on Apple silicon, several with a limit the vendor states in its own words: a Mac App Store build that cannot touch fans, a mode its developer calls legacy. The other two do not: smcFanControl sets a floor rather than a curve, and Sensei documents reading a fan speed, not setting one.

I build CoolCurve. This post names other fan and sensor apps, including free ones. Prices and version numbers were checked on 23 July 2026 and link to each developer's own page. If I got something wrong about your app, email support@taperlark.com and I will fix it and say what changed.

I build CoolCurve. Nothing here is a benchmark: this post contains no measurements, and where a number appears it comes from CoolCurve's own code, a vendor's published page, or Apple's documentation, and it says which. Product behavior describes CoolCurve's current shipped build. Facts about other apps were checked on 23 July 2026.

The matrix

App and makerSets a fan speedVendor's stated limitPrice, 23 July 2026VersionSource
CoolCurve (mine)Yes, via a privileged helperRestores Automatic on quit, crash, or heartbeat timeout, not on sleep or wakeOne time, priced belowShown on the product pageCoolCurve
TG Pro, TunabellyYes: System, Max, Auto Max, Manual, Auto Boost"Has to completely take over" fan control on Apple silicon and T2 Macs$10, 50 percent off a $20 list price2.103 (19 March 2026)tunabellysoftware.com
Macs Fan Control, CrystalIDEAYes, constant speed or sensor based Custom mode"Works in monitoring only mode" once every fan is back on AutoFree core; Pro $14.95, or $24.95 with Windows1.5.21 (13 April 2026)crystalidea.com
iStat Menus 7, BjangoYes, direct download onlyMac App Store build "can not control fan speeds"$11.99 single, $14.99 family7.3 directbjango.com
ChillBlades, y0gme1sterYes, clamped to Apple's own fan limitsAuto Boost has three fixed temperature bands, not a full curve$25 list, 50 percent code live on 23 July 20260.1.25, build 22Gumroad listing
Stats, Serhiy MytrovtsiyYes, automatic and manual modesDeveloper calls fan control "in legacy mode," no updatesFree, MIT, no paid tier3.0.9 (19 July 2026)mac-stats.com
smcFanControl, Hendrik HoltmannSets a minimum only, not a curveWill not go "below Apple's defaults"Free, GPL 2.02.6, stable since 2016GitHub
Sensei, Cindori ABNo, reads a fan speed onlyAdvertises tracking fan speeds, not setting themFree download; $29 a year or $59 once, up to 3 MacsmacOS 11 and higher (page metadata, 30 March 2026)cindori.com

Every cell above is something a vendor publishes about its own app. I did not install any of these seven apps. Where a vendor documents a limit, I quote the vendor. Where a vendor says nothing about a capability, the cell says the vendor says nothing, which is a different fact from a no.

Reading a fan speed and setting one are different products

macOS exposes both jobs through the same interface, the System Management Controller, but they carry different risk. Reading a fan's speed is a query any app can make once it can talk to the SMC at all. Setting one means writing a mode key that tells the firmware to stop deciding for itself, then writing a target the firmware has to accept. Several apps below do only the first.

What Sensei's page advertises, and what it does not

Cindori's product page for Sensei advertises tracking temperature sensors and fan speeds (Cindori, Sensei product page, checked 23 July 2026). Nowhere on that page does Cindori advertise a way to set or automate a fan speed. That is not a shortcoming to hide. It is a monitoring tool, priced and marketed as one.

Stats reads fan speed in its Sensors module, and its fan control is something else

mac-stats.com lists fan speed as one of several readouts next to temperature, voltage and power (checked 23 July 2026). Fan control is a separate matter, and the developer is blunt about its condition: the project's own FAQ says it "is in legacy mode," gets no updates, and stays in the app mainly because it still works acceptably on older Macs. That is a maintainer telling you plainly where his attention is.

Fans that macOS has already switched off

This is the case that decides a purchase on M3 and M4 hardware, and every vendor here has tripped over it at some point.

Tunabelly's release notes for TG Pro 2.95, dated 3 March 2025, say the release "Added complete fan control for all M4, M4 Pro, and M4 Max Macs, allowing TG Pro to manage fans even when the hardware has turned them off." That claim is scoped to the M4 generation. Tunabelly's live FAQ says the opposite for older machines, listing the 2018 MacBook Air and 13 inch MacBook Pro models from 2015 through 2020, where "TG Pro isn't able to control the fans" once the hardware has switched them off.

CrystalIDEA's release notes tell the same story from the other side: a "Limited fan control warning on M3(M4) Pro/Max macbooks" in version 1.5.17 (16 December 2024), then bringing "back complete fan control on M3/M4 MacBook Pro" in 1.5.18 (19 June 2025). A vendor does not ship a fix for a problem that never existed.

Bjango's known issues page is the flattest of the three, quoted exactly rather than summarized, because summarizing is where affiliate pages in this space go wrong: "On M3, M3 Pro, M3 Max, M4, M4 Pro, and M4 Max Macs, fan control may not work correctly in situations where macOS has turned the fans off" (Bjango known issues page, checked 23 July 2026). No "still," no "unfixed." Bjango did not say those things.

ChillBlades' developer makes a broader claim this post cannot check from outside: that "Apple actively guards fan control on the M3 and M4 generations, which is why several older fan utilities quietly stopped working there," and that ChillBlades "handles the new mechanism properly." That is his own claim, on his own product page, not independently tested here.

None of the four can simply route around the problem. Moving a fan off Automatic means asking the SMC firmware to accept a manual mode key, and the firmware is free to refuse. When it refuses, no app in user space has a second channel to force the issue. A vendor can only find whatever key sequence the current firmware accepts and ship it, which is why "it worked on Sonoma" is true and useless: the firmware you had on Sonoma is not the firmware deciding your fan's fate today.

A repository is not a release

smcFanControl's Apple silicon code exists, and it is not in anything you can download

Most of the internet gets this one wrong. It is false to say smcFanControl cannot control fans on Apple silicon, and false to call the project abandoned. Neither claim survives contact with its own repository.

smcFanControl is free and open source under the GPL 2.0 licence. Its most recent stable release, version 2.6, shipped 16 October 2016, and its most recent build of any kind, a 2.6.1 beta, shipped 11 August 2018. Both are Intel only x86_64 binaries that run under Rosetta 2 on Apple silicon, a requirement the project's own Homebrew cask flags outright. Apple silicon support itself was merged into the master branch on 3 December 2022, adding a Universal 2 build and Apple silicon sensor keys, and that work has never appeared in a published release. The last commit on the default branch is dated the same day, and the repository is public and not archived. That code has existed for more than three years and nobody has cut a release that ships it, which is a distribution fact about a one maintainer project, not a capability fact about the code.

Its design choices hold up regardless of platform. By its own F.A.Q., smcFanControl "lets the fans stay in automatic mode and just sets the minimum fan speed," because the developer deliberately skipped temperature driven control: a background program that crashed or stopped working correctly "could probably damage the machine." Its README states it will not let you set a fan "below Apple's defaults," the words of someone who thought about the failure mode.

If monitoring is enough, three free options cover it

If everything you want is a number, not a lever, get one of these for nothing and stop reading here. Stats is free and open source under the MIT licence, no paid tier, no ads, and its Sensors module reads fan speed alongside temperature, voltage and power. The core Macs Fan Control app is also free, and runs in monitoring only mode whenever every fan sits back on Auto. smcFanControl, distribution problems and all, is free and GPL licensed. None of the three charges you to find out whether your fan is doing what you think, worth knowing before anything with a price tag, mine included.

What CoolCurve does, and where it draws the line

Here is what the code actually does

CoolCurve finds your fans by reading the FNum key, then walking the per index keys after it, checking both F<i>Md and F<i>md because the mode key's case is not consistent across machines. Temperatures come from a private IOKit sensor API resolved at runtime rather than linked directly, with dlopen and dlsym so a renamed symbol degrades to an SMC fallback instead of crashing the app.

Getting a fan into manual mode takes more than one write. The mode key is asserted, the SMC's busy response is treated as expected rather than failure, and the write retries roughly every tenth of a second for up to ten seconds, because on at least one machine the mode key reports itself released well before the SMC will actually accept the manual write behind it. Holding the target afterward is not a one time act either, since thermalmonitord reclaims manual control the moment you stop reasserting it.

The privileged helper is registered with SMAppService.daemon, which never shows a password prompt; it leaves the helper's status at requires approval until you flip it on yourself in System Settings, General, Login Items and Extensions. Four independent paths hand fans back to Apple's automatic control regardless of how you exit: quit and signal handlers, the XPC connection tearing down, a heartbeat the helper expects every few seconds, and a startup sweep that resets every fan's mode key before it starts listening. A hard ceiling, ninety five degrees Celsius, is enforced inside the helper rather than the interface, releasing every fan to Automatic no matter what the on screen curve says. CoolCurve does not try to out think Apple's thermal management past that point. It gets out of the way.

Every one of those safety releases is terminal for the session, not self healing: the ceiling, the missed heartbeat, and a blind sensor read all drop the plan to all Automatic and stop the hold loop right there. CoolCurve does not resume your curve on its own once the machine cools back down or the connection comes back. Getting your curve running again means reapplying it yourself.

Two things I have not fixed

A comparison that only finds fault with other rows is not one worth trusting, so here are two limitations of my own app, stated without hedging.

CoolCurve has no fanless Mac detection. A Mac with no fans returns an empty fan list, and every screen shows the same generic "No fans detected" message, whether the Mac is fanless by design or something else went wrong reading it. I have not built a check that maps model identifiers to fan presence: Apple's lineup changes faster than a hand maintained list could keep up with, and an honest empty state beats a guess dressed up as certainty.

There is no way inside the app to remove the helper once installed: the function that would do it exists in the code and is called from nowhere. Taking it out today means opening System Settings, General, Login Items and Extensions yourself, the same place you approved it in the first place.

How I built this table

Seven vendor pages, read on one day, 23 July 2026, each linked above at the claim it supports. A couple of forum threads about specific machines did not make the table, because a forum post is not the vendor. If something above reads wrong, the correction address in the disclosure box goes to me, not a support queue.

Questions people ask

Why did fan control stop working in my app after a macOS update?

Setting a fan speed depends on the SMC firmware accepting a manual write, and Apple has changed what it accepts more than once around the M3 and M4 generations. The app that worked before is not broken. It is asking the same question and getting a different answer.

Which of these apps can raise a fan that macOS has already switched off?

TG Pro's release notes claim this for M4, M4 Pro and M4 Max Macs, and Macs Fan Control's release notes claim a similar fix for M3 and M4 MacBook Pro. Both vendors also document machines where the claim does not hold, so check the row for your exact chip before buying either one.

If an app cannot set my fan speed, is it doing anything useful at all?

Yes. Knowing your fan speed and your temperature at the same moment is most of what you need to judge whether a loud fan is normal for what your Mac is doing right now, and Stats, the free core of Macs Fan Control, and smcFanControl all give you that for nothing.

Which ones can I try without paying?

Stats and the core Macs Fan Control app are free outright. smcFanControl is free too, though its only downloadable builds predate Apple silicon. ChillBlades documents a seven day free trial with no card and no account required (ChillBlades Gumroad listing, checked 23 July 2026). TG Pro documents a 30 day refund window handled through Paddle (Tunabelly Software, checked 23 July 2026), and Cindori documents a 14 day refund window for Sensei before the license activates (cindori.com, checked 23 July 2026).

What happens to my fans if the app crashes or I log out?

In CoolCurve, four separate paths hand control back to Apple's automatic management, including a heartbeat check that does not depend on a clean quit. Tunabelly's FAQ documents that quitting or uninstalling TG Pro immediately resets fan settings to macOS defaults (Tunabelly Software FAQ, checked 23 July 2026), and the ChillBlades developer documents that quitting the app sends every fan straight back to macOS automatic control (ChillBlades Gumroad listing, checked 23 July 2026). Neither documents what happens if the app crashes instead of quitting cleanly, and I found no published recovery detail at all, crash or clean quit, for Macs Fan Control, iStat Menus, Stats, smcFanControl or Sensei.

Does the Mac App Store version of iStat Menus control fans?

No. Bjango's own documentation states plainly that the Mac App Store build "can not control fan speeds." If fan control is why you want iStat Menus, buy it from Bjango's own site instead.

If step 8 is where you would land on a loud fan you cannot explain, work through the checklist before you buy any of this.

Try it on your own machine before you decide.

If your Mac has no fan, CoolCurve shows an empty fan list and the words "No fans detected," and it will not tell you your Mac is fanless by design, so do not buy it expecting an explanation it cannot give. Requires macOS 13.0 or later, Apple silicon only. See the full feature list or read the blog.

TG Pro, Macs Fan Control, iStat Menus, ChillBlades, Stats, smcFanControl and Sensei are the names and marks of their respective makers: Tunabelly Software, CrystalIDEA Software, Bjango Pty Ltd, y0gme1ster, Serhiy Mytrovtsiy, Hendrik Holtmann and Cindori AB. Each is used here only to describe that vendor's own published claims about its own app.

Changelog: 23 July 2026, first published.

  • TG Pro is a trademark of Tunabelly Software.
  • Macs Fan Control is a trademark of CrystalIDEA Software.
  • iStat Menus 7 is a trademark of Bjango Pty Ltd.
  • ChillBlades is a trademark of y0gme1ster.
  • Stats is a trademark of Serhiy Mytrovtsiy.
  • smcFanControl is a trademark of Hendrik Holtmann.
  • Sensei is a trademark of Cindori AB.

Taperlark is not affiliated with, endorsed by, or sponsored by any of these companies.

Back to CoolCurve