jonathan.costin
← All projects

macOS app

Fan Curve

A macOS menu-bar app that sets fan speed from CPU temperature. A root helper clamps every target to the fan's limits and hands control back to macOS on sleep, quit or a lost heartbeat.

  • Swift
  • AppKit
  • launchd
  • Homebrew

Three small programs

  • The menu-bar app reads CPU temperature, evaluates the curve and writes a control file. It never touches the fan hardware, so a GUI process can't leave the fans in a bad state.
  • A root helper reads that file, checks the heartbeat, the owner and the fan limits the Mac reports, and only then sets the fans. If the heartbeat goes stale it restores automatic control on its own.
  • fan-curve-curve runs the same curve code from the command line with no hardware, which is how the curve math is tested on machines that aren't Macs. The demo above is that tool.

Install

brew install --cask jonathancostin/tap/fan-curve, then install the helper once with an administrator password. It has been fully tested on one Mac model so far, a two-fan M5 Pro MacBook Pro.