Short answer
A custom fan curve is not inherently safe merely because its points rise with temperature. Safety depends on exact-model qualification, bounded fan targets, fresh temperature data, verified target and controller readback, independent watchdog behavior, and a reliable handoff to macOS. Smart Breeze Build 22 implements those boundaries only for Mac16,7, but it still uses Apple’s private AppleSMC interface and cannot guarantee lower temperatures, better performance, longer hardware life, or protection from failure.
Start with the honest safety answer
Apple does not publish a supported third-party fan-control API for this use. Smart Breeze reads and writes the private AppleSMC interface. That is why Build 22 does not enable control on the basis of product family, chip name, or familiar-looking SMC keys. The exact Mac16,7 path is physically qualified; all other models remain monitoring/System-only in the public build.
Keep the Mac on a stable surface with unblocked vents, stay within Apple’s documented ambient operating range, and use System unless you have a specific measured reason to add cooling. If the Mac reports a hardware symptom, use Apple Diagnostics or service rather than trying to tune around it.
The curve document is constrained before it can run
| Boundary | Build 22 behavior | Risk it reduces |
|---|---|---|
| Point count | Requires 2–8 unique points. | Rejects an undefined or unboundedly complex curve document. |
| Temperature | Requires finite values from 35–100 °C and at least 3 °C between adjacent points. | Rejects invalid, duplicate, and near-overlapping temperatures. |
| Fan percentage | Requires 0–100% and a nondecreasing sequence. | A hotter curve point cannot deliberately ask for a lower percentage. |
| Fan RPM | Maps percentages inside each fan’s firmware-reported minimum and maximum. | Prevents the curve from requesting an arbitrary out-of-range RPM. |
| Release | Custom hysteresis is limited to 1–12 °C and cooldown to 5–180 seconds. | Rejects nonfinite or unsupported release settings. |
Validation is necessary but not sufficient. A syntactically valid curve can still be noisy, unnecessary, or poorly matched to the chosen sensor. That is why edits are staged as a draft, applied as one committed Custom profile, and paired with a restore-previous action.
Runtime safety depends on state and readback
- System is the default and fallback for missing readings, helper errors, app exit, and failed verification.
- Smart Boost does not engage below its first point and never begins below the fan speed macOS was already requesting.
- While engaged, its requested target does not step down in response to a small temperature decline; release requires hysteresis and cooldown.
- The helper checks live process identity and a separately stored credential before admitting SMC work.
- Commands carry session identity, unique request identity, and expiration so a stale queued request cannot execute later.
- Mode and target writes are read back. A failed write requests a verified all-fan rollback rather than claiming success from the sent command.
Independent watchdogs limit dependence on the dashboard
The root helper does not rely only on the SwiftUI app to notice a dangerous control state. While manual control is active, a missing heartbeat for about 10 seconds restores System. If temperature data is unavailable for about 10 seconds during manual control, the helper also restores System. Closing the last app connection and normal app termination request the same handoff.
The helper independently samples temperature about every two seconds. At 95 °C it forces all fans on qualified hardware to their reported maximum. After temperature remains at or below 88 °C for about 20 seconds, it releases the fans to System. This protective path is independent of the visible curve, so a point above 95 °C does not postpone the override.
| Interruption | Build 22 response |
|---|---|
| App connection closes | Helper requests System ownership. |
| Manual heartbeat expires | Independent supervisor restores System. |
| Manual temperature becomes stale | Helper restores System after the bounded timeout. |
| Helper reconnects | Startup first performs a verified System handoff before new control. |
| Mac wakes | Smart Boost intent and an unexpired Max timer can be reconciled; arbitrary Manual targets are not restored. |
Use a responsible test protocol
- Verify the exact Mac16,7 identifier, helper readiness, discovered fan bounds, live temperatures, and System ownership.
- Record one repeatable System baseline under the same workload, duration, power source, power mode, and room setup.
- Start with a built-in profile. Change only one curve variable when the baseline gives you a reason.
- Watch the controlling sensor, requested target, actual RPM, owner, and thermal pressure throughout the run.
- End the workload and verify the complete hysteresis/cooldown transition back to System.
- Keep or reject the curve based on repeatable evidence and acceptable noise, not a single lower number.
Know what the result cannot establish
- A lower private sensor reading does not prove a safer external case temperature or longer component life.
- A louder or faster fan request does not prove sustained workload performance improved.
- Avoiding one observed thermal-pressure transition does not prove throttling was prevented in other runs.
- One Mac16,7 result does not qualify another model, even if its chip or chassis name looks similar.
- A successful session does not replace macOS, firmware, Apple Diagnostics, or professional hardware service.
For the mechanics behind those boundaries, read how Mac fan-curve points work. To design a narrow, repeatable comparison rather than guessing, use the best-curve method.
Sources and scope
Primary references and product scope
Apple sources define macOS and hardware behavior. Smart Breeze behavior is checked against the signed release and its documented safety boundaries. Where a conclusion is an inference or a method, this guide labels it as such.
- Smart Breeze safety model and limitationsSmart Breeze
- Smart Breeze compatibility by exact modelSmart Breeze
- Keep your Mac laptop within acceptable operating temperaturesApple Support
- Use Apple Diagnostics to test your MacApple Support
Use the bounded path
Read the safety model before taking fan control.
Build 22 documents the helper boundary, readback, watchdogs, protective Max, and verified route back to macOS.