14
votes

How do I get CPU temperature and fan speeds in OS X?

I understand that information is obtained from IOHWSensor in IOKit, but I'm unable to find any reliable information on how to exactly do that.

I've found an article with a sample program - http://www.booktou.com/node/148/0321278542/ch10lev1sec7.html, but all I get with it is the GPU temperature. I'm sure there are CPU temperature sensors on the unibody Macs, so that means I'm doing something wrong.

2

2 Answers

8
votes

The source code for this Prefpane that's called FanControl is avilable; it shows temperatures and fan speeds: http://www.lobotomo.com/products/FanControl/index.html

4
votes

If you have npm installed, there is also cli tool called macstats. You can install it using:

[sudo] npm install macstats -g

Then just run the command and it will give you output like:

--- CPU Stats ---
CPU Temp:        33.75°C

--- Fans Stats ---
Fan 0 speed:     1996 RPM
Fan 1 speed:     2003 RPM

--- Battery Stats ---
Charged:         82%
Capacity:        92%
Cycle Count:     692 (69%)
Max Cycle Count: 1000
Current Charge:  5189 mAh
Maximum Charge:  6316 mAh
Design Capacity: 6900 mAh
Time Remaining:  6.54 h
Temperature:     30.06°C

The tools also exposes API that you can use in a custom application.
See https://github.com/jkuri/macstats for more information.