Apple Silicon thermal governor

Gcoolers

Cool under load. Quiet when idle.

brew install gabe-mills/gcoolers/gcoolers

Apple SiliconmacOS 14+Free · MIT

Install

Two lines. Then quiet.

Apple Silicon · macOS 14+ · MIT. First gcool asks for your password once.

zsh — gcoolers.com
brew install gabe-mills/gcoolers/gcoolers
gcool
What does gcoolers install change?
  1. /Library/Application Support/Gcoolers/bin/heatwatch-fanRoot-owned fan helper

    Copied out of your home so the NOPASSWD rule never points at a user-writable path.

  2. /etc/sudoers.d/gcoolersOne sudoers rule

    NOPASSWD for that helper only. Validated with visudo. Password once.

  3. ~/Library/LaunchAgents/com.gcoolers.daemon.plistUser LaunchAgent

    Starts the governor at login. Logs to ~/Library/Logs/gcoolers.log.

  4. ~/Applications/Gcoolers.appMenu bar app

    Built locally with swiftc. Widget included.

  5. ~/Library/Application Support/GcoolersLocal state

    config, state, history, learn — never leave the Mac.

FAQ

Questions

How do I install it?

brew install gabe-mills/gcoolers/gcoolers, then run gcool once. First run asks for your password for the fan helper.

Is it free?

Yes. MIT licensed, no account, no paid tier. Donations on the support page are optional.

What does install change?

Root-owned fan helper, one sudoers rule, a LaunchAgent, Gcoolers.app, and a local state folder. Details under Install.

Kernel extension?

No. User-space IOKit helper only. Fans return to macOS when Gcoolers stops.

Which Macs?

Apple Silicon, macOS 14+. Fanless Macs get sensors and history, not fan control.

Does it run locally?

Yes. No network calls from the governor. State stays on your Mac.

Meeting Mode?

Detects call apps and holds fans at 42%. Or force it with gcoolers meeting on.

How do I remove it?

Unload the LaunchAgent, brew uninstall gcoolers, remove /etc/sudoers.d/gcoolers and both Gcoolers Application Support folders, then delete ~/Applications/Gcoolers.app.