Reading real CPU temperature on Intel and Apple Silicon Macs

Tim LidRun
7 menit bacaJun 2026

There is no thermometer you can just ask. To read Mac CPU temperature, software talks to the SMC, the small controller that sits between the operating system and the sensors, and decodes whatever format that particular Mac happens to use. Intel and Apple Silicon do it differently enough that the same idea needs two implementations, which is also why two temperature apps on the same machine can disagree.

How the SMC reports temperature

The SMC exposes sensors as four-character keys, each with a type that tells you how the bytes are encoded. Get the wrong decoder and the number is garbage, so the format matters as much as the key.

On Intel Macs, temperatures come back in the sp78 fixed-point format: a signed value with eight integer bits and eight fractional bits. On Apple Silicon, the same readings come back as IEEE flt floating point. Fan speed has its own encoding too, usually fpe2 or flt depending on the machine.

So even before you ask which sensor to read, you have to know which decoder to apply for that Mac. LidRun reads the keys directly and decodes sp78 or flt as appropriate, rather than guessing.

Why there is no single 'CPU temp' key

You might expect one tidy key called CPU temperature. There isn't. Different Mac models expose different sensors, and the naming differs by architecture.

Intel Macs use the TC0x family of keys for CPU core sensors. Apple Silicon is more fragmented: it exposes many per-cluster keys in the Tp__ and Tg__ families, covering performance cores, efficiency cores, and the GPU, because the chip simply has more distinct thermal zones to report.

Because no single key is present on every Mac, LidRun tries a list of candidate keys and takes the hottest valid reading. That sounds blunt, but it is the honest approach: the hottest live sensor is the one that matters for a thermal limit, and probing a list survives the model-to-model differences far better than betting on one name.

On top of the numeric reads, LidRun also looks at ProcessInfo.thermalState, the coarse signal macOS itself publishes. It only has a few levels and is not a temperature, but it reflects how the system is feeling about heat, which is a useful sanity check next to a raw sensor number.

Panduan terkaitKontrol kipas Mac untuk developer

Why two apps show different numbers

If one tool says 68 and another says 74 on the same Mac at the same moment, neither is necessarily wrong. They are almost certainly reading different sensors, or picking the representative number a different way.

One app might average a set of core sensors; another might report a single package sensor; a third might do what LidRun does and surface the hottest valid key it found. Those are three reasonable choices that produce three different numbers from the same hardware.

The lesson is to treat any single CPU temperature as a reading from a chosen sensor, not as one true value. What matters for safety is the trend and the peak, not whether your number matches a friend's tool to the degree.

Reading temps is not the same as controlling fans

Reading is the easy direction. Writing back, telling the fans to spin at a chosen RPM, is where the hardware draws a line. On Apple Silicon, fan RPM write-control is largely restricted by the firmware and SIP, so manual fan curves on M-series Macs are mostly off the table. This is a real platform limit, not a missing feature.

LidRun is honest about that. It reads temperatures and fan RPM on both architectures and offers cooling profiles within what the hardware allows, but it does not promise manual fan curves on Apple Silicon, because it cannot deliver them. Tools like Macs Fan Control face the same wall on M-series for the same reasons.

Practically, this means temperature on Apple Silicon is mostly something you respond to rather than override. Knowing the real number lets you set a sensible thermal threshold and trust the safety governor to back off when it is crossed, which is the part you can actually control.

Coba ini ketimbang melawan tidur saat layar tertutup

LidRun menjaga pekerjaan Anda tetap jalan saat layar tertutup, dengan perlindungan baterai dan suhu bawaan.

Unduh untuk macOS

Sering ditanyakan

How does software read CPU temperature on a Mac?

It talks to the SMC and reads four-character sensor keys, decoding sp78 fixed-point on Intel or IEEE flt floating point on Apple Silicon. There is no general API that just returns a temperature.

Why is there no single CPU temperature key?

Models expose different sensors and name them differently. Intel uses the TC0x family; Apple Silicon exposes many per-cluster Tp__ and Tg__ keys. LidRun tries a list of candidate keys and takes the hottest valid reading.

Why do two temperature apps show different numbers?

They are reading different sensors or choosing the representative value differently, for example an average versus a package sensor versus the hottest key. Treat any single number as a reading from a chosen sensor, not one true value.

Can LidRun control my fans on Apple Silicon?

No. Fan RPM write-control is largely restricted by firmware and SIP on Apple Silicon. LidRun reads temps and offers cooling profiles within what the hardware allows, but it does not promise manual fan curves on M-series Macs.

Read Mac CPU Temperature on Intel and Apple Silicon Macs