Fan curves

How to set a custom fan curve on a MacBook Pro

Begin with a baseline, edit a draft instead of a live guess, and judge the result by verified fan behavior across the same repeatable workload.

Short answer

On a qualified Mac16,7, open Smart Breeze Dashboard, choose Smart Boost, select a built-in profile as a baseline, and choose Customize Curve. Edit 2–8 ordered points, confirm the separate adapter and battery versions, set hysteresis and cooldown, then apply the draft. Re-run the same workload while checking target RPM, actual RPM, controller, thermal pressure, and the verified return to System. Do not use the procedure to bypass Smart Breeze’s exact-model hardware gate.

Do the model and state preflight first

  1. Open Apple menu → About This Mac, then System Report, and confirm the model identifier is Mac16,7.
  2. Install the signed Build 22 app in /Applications and complete helper approval through Smart Breeze; do not keep duplicate app copies.
  3. Select System and confirm the dashboard reports macOS as the verified controller before beginning.
  4. Confirm temperature readings and both actual fan RPM values are available and plausible.
  5. Record whether the Mac is on its power adapter or battery. Each source has a different curve.

Capture a baseline you can reproduce

A curve edit is only interpretable against a consistent baseline. Start in System and run the task you actually care about long enough to include its warm-up and sustained phase. Use the same project, quality settings, window state, power source, and approximate room conditions each time. Do not mix a battery run with an adapter run and call the difference a curve result.

Capture a baseline you can reproduce: reference table
RecordWhy it belongs in the comparison
Selected sensor and live temperatureShows which input would drive the curve and how it changes over time.
macOS thermal-pressure stateAdds system context that one private sensor number cannot provide by itself.
Actual fan RPMCaptures what the fans physically report, not only a requested target.
Workload phase and durationSeparates a short spike from a sustained thermal pattern.
Power source and power modeAvoids attributing a power-policy difference to the curve.

Edit the curve as a staged draft

  1. In the dashboard, choose Smart Boost and select Balanced, Performance, or Quiet Boost as the nearest starting shape.
  2. Select the sensor source: Any Sensor, CPU, GPU, or Battery. If the chosen category is unavailable, Build 22 labels and uses the hottest available fallback.
  3. Choose Customize Curve. Smart Breeze snapshots the current configuration and opens a draft; edits do not become the saved Custom profile until Apply.
  4. Move one temperature or percentage at a time. Add or remove points only when the shape cannot express the transition you need.
  5. Review hysteresis and cooldown, then apply the complete draft as one transaction.
  6. If the result is not useful, restore the previous committed curve rather than trying to remember every value.
Edit the curve as a staged draft: reference table
Build 22 validation rulePurpose
2–8 pointsKeeps a curve defined without allowing an unbounded editor document.
35–100 °C per pointRejects out-of-range temperature inputs at the product boundary.
At least 3 °C between adjacent pointsPrevents duplicate or nearly overlapping temperature steps.
0–100% and nondecreasingA hotter point cannot request a lower percentage than the preceding point.
Hysteresis 1–12 °C; cooldown 5–180 secondsConstrains release behavior to finite supported settings.

Percent is relative to each fan’s reported range. If a fan reports a 1,350 RPM minimum and 5,777 RPM maximum, a 50% curve value maps to about 3,564 RPM before Smart Breeze applies the session’s macOS baseline and nondecreasing-target rule. Do not copy an absolute RPM from a different Mac and assume the percentage is equivalent.

Treat adapter and battery as two tests

The profile editor exposes the curve for the Mac’s current power source. Build 22 saves independent adapter and battery points, then switches automatically when the power state changes. A complete custom profile therefore needs deliberate review in both states, even if you decide that one should remain identical to its preset.

  • Finish and record the adapter draft while the power adapter is connected.
  • Return to System before deliberately changing power state for a controlled comparison.
  • Open the battery curve and make a separate decision; do not assume the adapter points were copied.
  • Account for macOS power mode and normal workload changes when unplugged.
  • Verify which curve is shown after reconnecting power before the next run.

Verify the run, not just the graph

  1. Select the new Custom profile while Smart Boost is watching under System.
  2. Start the same workload from comparable initial conditions.
  3. Confirm the named sensor crosses the first point and the controller changes from macOS to Smart Breeze.
  4. Compare requested target with actual RPM. A momentary difference is expected; a persistent substantial mismatch is a reason to stop and capture diagnostics.
  5. Observe the temperature trend and thermal pressure through the sustained portion, not only one peak reading.
  6. End the workload and verify temperature remains below the release threshold for the cooldown, followed by a confirmed System handoff.

Know the stop and restore conditions

Choose System immediately if the dashboard cannot verify fan ownership, actual RPM persistently fails to approach a substantial target, temperature becomes unavailable, the helper reports an authorization or transport problem, or behavior differs from the written test. Copy Diagnostics before restarting so the state is preserved for investigation.

  • Use Restore Previous Curve when the configuration is the problem.
  • Use System when the current control session is the problem or you simply want macOS to resume normal policy.
  • Do not use Max as a way to hide an unexplained target/readback mismatch.
  • Run Apple Diagnostics when the Mac’s fans, ventilation, or thermal behavior suggests a hardware issue rather than a curve-choice issue.

If you are still deciding which control model fits the task, compare automatic curves, fixed RPM, and timed Max. If the open question is which temperature should drive the curve, use the sensor selection guide.

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.

  1. Smart Breeze compatibility by exact Mac modelSmart Breeze
  2. Smart Breeze helper installation and repairSmart Breeze
  3. Use Apple Diagnostics to test your MacApple Support
  4. Use power modes on your MacApple Support

Before editing

Confirm what Build 22 enables on your exact Mac.

Download the signed public beta, review compatibility, and keep System as the starting and fallback state.

Open the download checklist