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 it does not enable control on the basis of product family, chip name, or familiar-looking SMC keys, but only where it discovers a complete fan topology live. Models without discovered fans remain monitoring/System-only.

WarningBounded is not risk-free

Smart Breeze’s safeguards reduce the chance that a stale request, lost app, bad input, or failed write leaves an unexplained manual state. They cannot establish that Apple supports the operation, diagnose a hardware problem, or make a custom curve appropriate for every workload and environment.

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

The curve document is constrained before it can run: reference table
BoundaryBuild 37 behaviorRisk it reduces
Point countRequires 2–8 unique points.Rejects an undefined or unboundedly complex curve document.
TemperatureRequires finite values from 35–100 °C and at least 3 °C between adjacent points.Rejects invalid, duplicate, and near-overlapping temperatures.
Fan percentageRequires 0–100% and a nondecreasing sequence.A hotter curve point cannot deliberately ask for a lower percentage.
Fan RPMMaps percentages inside each fan’s firmware-reported minimum and maximum.Prevents the curve from requesting an arbitrary out-of-range RPM.
ReleaseCustom 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.

NoteTarget is not actual

The dashboard presents requested target RPM, live actual RPM, and controller separately. A safe test checks all three. Persistent failure to approach a substantial target is an investigation condition, not a reason to keep raising the curve.

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.

Independent watchdogs limit dependence on the dashboard: reference table
InterruptionBuild 37 response
App connection closesHelper requests System ownership.
Manual heartbeat expiresIndependent supervisor restores System.
Manual temperature becomes staleHelper restores System after the bounded timeout.
Helper reconnectsStartup first performs a verified System handoff before new control.
Mac wakesSmart Boost intent and an unexpired Max timer can be reconciled; arbitrary Manual targets are not restored.

Use a responsible test protocol

  1. Verify helper readiness, discovered fan bounds, live temperatures, and System ownership.
  2. Record one repeatable System baseline under the same workload, duration, power source, power mode, and room setup.
  3. Start with a built-in profile. Change only one curve variable when the baseline gives you a reason.
  4. Watch the controlling sensor, requested target, actual RPM, owner, and thermal pressure throughout the run.
  5. End the workload and verify the complete hysteresis/cooldown transition back to System.
  6. Keep or reject the curve based on repeatable evidence and acceptable noise, not a single lower number.

MethodDo not optimize around a fault

Blocked vents, unstable placement, unexplained fan noise, failed readback, missing sensors, kernel panics, shutdowns, or Apple Diagnostics reference codes require troubleshooting or service. A more aggressive curve can obscure a symptom without identifying its cause.

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 Mac's result does not predict another model's behavior, 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

Related docs: Safety model, Compatibility, Troubleshooting

Build 37 documents the helper boundary, readback, watchdogs, protective Max, and verified route back to macOS. Review Smart Breeze safety