A lightweight, native fan controller for the macOS menu bar, designed specifically for Intel architectures. It allows you to monitor system temperatures and take manual or automatic control of fan RPMs.
- Real-time monitoring: Direct reading from the SMC (System Management Controller) for CPU and GPU temperatures.
- Manual and automatic control: Intuitive interface to set the RPM of each fan independently or return control to the operating system.
- Bilingual UI (On-the-fly): Instantly toggle the interface language between English and Spanish directly from the menu, without reloading the application.
- Native macOS Integration: Built entirely with Cocoa/Objective-C APIs (
NSMenu,NSView) for a seamless, native look and feel. - Secure privilege escalation: Uses a setuid C binary, allowing hardware modifications without asking for the administrator password every time a fan is adjusted.
- Intel Macs only: This software interacts with the
AppleSMCAPI and theIOKitframework, which are specific to Intel architecture. It is not compatible with Apple Silicon (M1/M2/M3). - Disclaimer: Modifying fan speeds can affect your computer's thermal dissipation. Use at your own risk.
- Go to the Releases tab of the repository and download the
FanControl-1.0.pkgfile. - Double-click the installer. (macOS will ask for your administrator password to configure hardware permissions).
- Search for Fan Control in your Launchpad or Applications folder and run it.
- A fan icon will appear in your menu bar.
The project is divided into two main layers to maintain security and performance:
- The C Helper (Low level): Written in pure C using
IOKit. This compiled binary (smc-helper) is the only component that communicates with the hardware. During installation via the.pkgpackage, it is granted root privileges (chown root:wheelandchmod 4755), acting as a secure bridge. - The Python Interface (High level): Developed with
rumps(for the menu bar) andtkinter(for the control window). It handles the user logic and invokes the helper transparently.
If you want to compile the application and generate the installer yourself, you need Python 3, clang, and Apple's development tools installed.
# 1. Clone the repository
git clone [https://github.com/Lakypayiui/FanControl.git](https://github.com/Lakypayiui/FanControl.git)
cd FanControl
# 2. Install Python dependencies
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# 3. Run FanControl
python3 src/fan_control_native.py