Skip to content
Apple SMC library in C
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Move move header to include dir Oct 3, 2014
include Function comment fix Oct 4, 2014
src Fix #8: Data to write to SMC should be in inputStruct Apr 2, 2015
.gitignore clibs install fix Oct 4, 2014
LICENSE Add GPLv2 license & .gitignore Sep 3, 2014
Makefile Rename project to libsmc Oct 3, 2014 Update README Oct 21, 2014
package.json clibs install fix Oct 4, 2014


Apple System Management Controller (SMC) API in pure C from user space for Intel based Macs. The API works by talking to the AppleSMC.kext (kernel extension), the closed source driver for the SMC.

For a Swift based version see SMCKit.

System Management Controller

"The System Management Controller (SMC) is an internal subsystem introduced by Apple Inc. with the introduction of their new Intel processor based machines in 2006. It takes over the functions of the SMU. The SMC manages thermal and power conditions to optimize the power and airflow while keeping audible noise to a minimum. Power consumption and temperature are monitored by the operating system, which communicates the necessary adjustments back to the SMC. The SMC makes the changes, slowing down or speeding up fans as necessary." -via Wikipedia

For more see:


Via clib

$ clib install beltex/libsmc


  • OS X 10.6+

C vs Swift

While the Swift based version of the API is preferred, there are several reasons why the C based one might be needed:

  • Wider OS X target range
    • Since Swift on OS X is only supported on 10.9 and above
  • Application written primarily in C


With credits to:


Handy I/O Kit references:


This project is under the GNU General Public License v2.0.

You can’t perform that action at this time.