macOS gives you no fan readout at all. No RPM anywhere in Activity Monitor, System Settings or System Information, which is a strange gap for the one component in your Mac you can actually hear.
The reason is the same as for temperature. There is no public API for it. Fan speeds live in the System Management Controller, a separate coprocessor you reach through IOKit, and the request layout is undocumented.
Every fan app on the Mac is reading the SMC. The keys are not a secret at this point: FNum reports how many fans the machine has, and each fan then has a key for its live speed and two more for the range it can run in.
Putting it in the menu bar
AirStats is free and open source. Turn on Fan Speed as a menu bar metric in settings, or open the panel for the Thermal module, which lists each fan's current RPM.
Min and max RPM are fixed properties of the chassis, so they get read once at startup rather than every cycle, and only the live speed is sampled continuously. An SMC read is a round trip to another chip and costs around 0.2 ms, which is not free, so it is worth not doing the same read forever.
Charting fan speed over time
A single RPM tells you less than the shape. Set the Fan Speed item's display style to Graph or Text & Graph and the menu bar draws the fan's history as a small chart, so a fan that has been creeping up for ten minutes looks different from one that just kicked on.
The chart holds the last five minutes, one sample every two seconds. Both are settings, the history from thirty seconds to an hour and the interval from half a second to a minute. The baseline is always zero. A fan has no ceiling the app can know, so the top of the chart follows the highest RPM in the window.
On an Apple silicon laptop, expect a flat line along the bottom for most of the day. That is not the chart failing. The fans are stopped, and the next section is about why.
Your fans probably say 0, and that is correct
This is the part that sends people looking for a second opinion, so it is worth saying clearly.
Apple silicon laptops park their fans completely. Not slow. Stopped, at 0 RPM. They stay stopped through everything most people do, and only spin up well past sustained high temperatures. A MacBook Pro reading 0 RPM while you work is the machine operating exactly as designed.
Some Macs have no fan at all. The Apple silicon MacBook Air is passively cooled. There is no fan to read, so FNum reports zero and a correct app shows you nothing rather than inventing a number.
A stopped fan and a failed read are different things, and an app that shows you 0 for both is lying to you half the time. In AirStats a failed read drops that fan out of the reading entirely, so a 0 you see is a real measurement of a real fan that is really not spinning.
When the fans do come on
Compare the RPM trend with CPU and GPU activity. A fan that stays audible after work stops needs a different check from one that rises during an export. The MacBook fan troubleshooting guide walks through the workload, cooling conditions and next diagnostic steps.
Questions
How do I check fan speed on a MacBook Pro?
Install AirStats and turn on Fan Speed in Settings. The menu bar shows the live RPM, read from the System Management Controller every update, and the Thermal module in the panel lists each fan separately.
Can AirStats control fan speed?
No. AirStats reads the System Management Controller and never writes to it, so it cannot set a fan curve or force a fan on. Apps that control fans work by writing to that controller.
Why does my MacBook fan read 0 RPM?
Because it is stopped, and on an Apple silicon laptop that is the normal state through ordinary work. The fans only spin up after sustained heat. AirStats drops a fan whose read failed rather than showing 0, so a 0 on screen is a measurement.
Does the MacBook Air have a fan?
The Apple silicon MacBook Air has none. Its controller reports a fan count of zero, so AirStats shows no fan reading at all instead of inventing one.
How do I test that my Mac fans work?
Give the machine sustained work, a long export or compile, and watch the RPM in the menu bar. On Apple silicon it can take minutes of heat before the number leaves zero, so a thirty second test proves nothing. A fan that has vanished from the Thermal module, rather than reading 0, is a failed read.