Skip to content

v0.3.0 — GPU/CPU die temperature (SMC)

Choose a tag to compare

@GoodOlClint GoodOlClint released this 07 Jul 16:33
v0.3.0
a6e0eb7

Adds optional gpuTemperatureC / cpuTemperatureC (°C), read sudoless from the AppleSMC sensors.

  • IOReport turned out not to expose usable temperature (M5 has no GPU-temp channels; M4's read back 0 via the documented accessor), so temperature comes from SMC — matching the MIT mactop.
  • SMCReader enumerates flt-typed sensors once by prefix (Tg=GPU, Tp/Te=CPU) — pattern-match, no per-chip key table that rots — and averages each group per sample. No new SwiftPM target (Package.swift unchanged).
  • Validated idle → Metal burn: M5 Max 43.6 → 72 °C, M4 Max 35.1 → 53.8 °C, both tracking GPU load.
  • Rationale / deviation from the IOReport-first plan: ADR 0001.

Tested only on macOS 26 (M4 Max, M5 Max); degrades to nil elsewhere but other OS versions are unvalidated.