explaingit

arnabau/thermalpulse

0SwiftAudience · developerComplexity · 3/5ActiveSetup · moderate

TLDR

macOS SwiftUI app for live hardware monitoring (CPU/GPU temps, usage, power) and optional manual fan-speed control via a privileged helper.

Mindmap

mindmap
  root((ThermalPulse))
    Inputs
      Hardware sensors
      User fan profile
      Helper install consent
    Outputs
      Menu bar metrics
      Dashboard charts
      Fan speed commands
    Use Cases
      Watch CPU GPU temps
      Override fan curve
      Track power draw
    Tech Stack
      Swift
      SwiftUI
      Combine
      XPC

Things people build with this

USE CASE 1

Monitor Mac CPU and GPU temperatures from the menu bar

USE CASE 2

Switch fan control to a manual Aggressive profile during heavy workloads

USE CASE 3

Track real-time power draw and disk usage on Apple Silicon Macs

Tech stack

SwiftSwiftUICombineXPCServiceManagement

Getting it running

Difficulty · moderate Time to first run · 30min

Requires macOS 26+ on Apple Silicon and a privileged helper tool install to use manual fan control.

In plain English

ThermalPulse is a macOS app for keeping an eye on what is going on inside your Mac and for taking control of the cooling fans. It is built with SwiftUI, Apple's framework for designing native Mac and iPhone interfaces, and the README describes it as lightweight with a glass-like translucent look that fits in with the rest of macOS. The current release listed is version 1.0.17. On the monitoring side, the app shows live CPU and GPU temperatures, how busy the processor, graphics chip, and memory are, how much disk space is used, and how much power the machine is drawing. These can be displayed inside a popover dashboard with charts, or as small icons in the menu bar at the top of the screen, with the user picking which numbers they want to see there. Updates happen in real time but are throttled to avoid using too many resources. Fan control is the second main feature. By default the Mac's own automatic fan logic stays in charge. If the user installs an extra component called a privileged helper tool, they can switch to manual profiles named System, Balanced, or Aggressive and adjust the fan speed directly. The README stresses that this is opt-in, requires explicit user permission, and uses Apple's standard ServiceManagement framework and XPC communication channels. When the app quits, the fans are returned to automatic mode. Internally the code follows the Model-View-ViewModel pattern, with separate layers for state, hardware monitoring, privileged operations, and the user interface. The README also mentions reactive updates through Combine publishers, persistence with UserDefaults, and thread safety with @MainActor. Requirements are strict: macOS 26 or later, and an Apple Silicon Mac with an M1 through M5 chip, with no support for older Intel-based Macs. Installation is either by downloading a .dmg and dragging the app to the Applications folder, or by cloning the source from GitHub and building it. The README lists localization and better error messages as outstanding to-do items.

Copy-paste prompts

Prompt 1
Walk me through installing ThermalPulse and its privileged helper on an M2 Mac
Prompt 2
Show me how the XPCClient talks to the helper tool to set fan speed
Prompt 3
Add a new manual fan profile called Quiet to the DashboardViewModel
Prompt 4
Explain how HardwareMonitorManager polls sensors and throttles updates
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.