EvidenceHeat
Real-time CPU, GPU, and system temperatures in your menu bar. Fan control when things get hot. One Swift file, zero dependencies.
No Homebrew. No background daemons. No subscription. Reads the SMC directly.
What It Does
Every Sensor
CPU proximity, die, e-cluster, per-core temps. GPU die, VRAM, heatsink. Memory, battery, thunderbolt, palm rest, ambient, airflow. If the SMC reports it, EvidenceHeat reads it.
Fan Control
Three modes: Auto (let macOS handle it), Proactive (ramp fans between 40–75°C), or Max (100% override). Prompts for admin privileges only when needed.
Menu Bar Native
Color-coded temp in the menu bar — green under 50°C, orange under 75°C, red above. Click to see all sensors. Celsius or Fahrenheit. Updates every 3 seconds.
What You See
Click the menu bar icon to see all active sensors. Color-coded by severity.
| Category | Sensor | Reading | Status |
|---|---|---|---|
| CPU | CPU Proximity | 42.3°C | Normal |
| CPU | CPU Die | 68.1°C | Warm |
| CPU | CPU Core 1 | 81.5°C | Hot |
| GPU | GPU Die | 62.7°C | Warm |
| GPU | GPU VRAM | 48.2°C | Normal |
| Other | Battery | 33.8°C | Normal |
| Fans | Fan 1 | 3,240 RPM | Active |
| Fans | Fan 2 | 3,180 RPM | Active |
Fan Modes
Auto
macOS handles fan speed. Default behavior. No admin needed.
Proactive
Ramps fans proportionally between 40–75°C. Keeps temps in check before throttling kicks in.
Max (100%)
Full blast. For sustained workloads, compiles, exports, or when you just need it cool now.
Admin privileges: Fan control writes to the SMC, which requires admin access. EvidenceHeat will prompt for your password via the standard macOS dialog — no credentials stored, no background daemon.
Setup
Download
Grab EvidenceHeat.app from this page. It's a standalone .app bundle — no installer, no Homebrew, no dependencies.
Move to Applications
Drag it into /Applications or wherever you keep your apps. Right-click → Open the first time to bypass Gatekeeper (unsigned app).
Done
Temperature appears in the menu bar immediately. Click it to see all sensors and fan controls.
Gatekeeper: Since EvidenceHeat isn't signed with an Apple Developer certificate, macOS will block it on first launch. Right-click the app → Open → Open. You only have to do this once.
Recompiling from source: If you modify main.swift, rebuild with:
Tech Stack
Deliberately minimal.
- Swift — single file, compiled native binary
- IOKit — direct SMC communication via IOConnectCallStructMethod
- Cocoa / AppKit — native NSStatusItem menu bar integration
- Generic fixed-point decoder — handles every Apple SMC data type (fpe2, fp88, fpc4, fpa6, sp78, sp96, and all variants)
One file. ~600 lines. Zero dependencies beyond macOS itself.
Get EvidenceHeat
macOS only. Intel and Apple Silicon. MIT License.
Free to use, modify, and distribute.