fanfan is a small macOS menu bar app that lets the user control the fan speeds on their Mac. The repository is written in Swift and ships under the MIT license. The README notes it is a fork of solofan, with credit to the original team. The architecture is the interesting part. Writing fan speeds on macOS requires root because it pokes the System Management Controller. Rather than running the whole user interface as root, fanfan installs a small C LaunchDaemon called fanfan-smcd that owns the SMC handle. The app itself stays unprivileged. The two pieces talk over a Unix socket using only three commands: PING to check the daemon is alive, SET to write a fan speed, and AUTO to hand control back to the firmware default. Temperature readings go through IOKit directly from the app, since reading sensors does not need root. Installation is offered in three ways. The Homebrew route is brew tap hoobnn/tap followed by brew install --cask fanfan. A DMG is available on the GitHub releases page. There is also a curl-piped-to-bash install script at scripts/install.sh in the repository. The README says only one password prompt appears on first launch, which is the moment the LaunchDaemon is set up. The project requires macOS 26 or newer, and runs on both Apple Silicon and Intel Macs. Swift 6 is listed as the build language. The README is short overall and points to a Chinese translation at README.zh.md for users who prefer that. There are no instructions for building from source in the README, and no command-line interface is described. The app is presented as a menu-bar utility, with the daemon doing the privileged work behind it.
Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.