MacSlowCooker visualizes Mac GPU usage, SoC temperature, fan RPM, and power as an animated cooking-pot Dock icon. The pot's color tracks heat (white → red), the flame underneath grows with GPU load, and steam rises with fan RPM. Sustained load triggers a boiling animation.
Open source under Apache License 2.0. Universal Binary for Apple Silicon and Intel Macs (macOS 14+).
Features
Animated Dock icon
3D drum-shape pot rendered with cylindrical shading, dome lid, and chunky loop handles. Pot color blends from white (cool) to red-orange (95 °C). The flame underneath ramps with GPU usage; soft puff steam rises and fades with fan RPM (or temperature on fanless Macs).
Floating dashboard
Activity Monitor "GPU history"-style window with charts and metric tiles for GPU, Temperature, Fan, and Power. Optional float-above-other-windows. Numbers shift white → yellow → red with risk.
Apple Silicon and Intel
Universal Binary. Sampler choice keys off the host CPU at runtime, so a Universal Binary's x86_64 slice running under Rosetta still gets the right data. Fanless Macs (MacBook Air M-series) auto-hide the Fan UI and fall the steam back to a temperature ramp.
Honors Low Power Mode
Animation drops to 5 fps and flame wiggle disables while Low Power Mode is on, with a status row in Preferences explaining the override.
Why no App Store?
MacSlowCooker installs a root LaunchDaemon helper (via SMAppService.daemon), spawns /usr/bin/powermetrics, and reads AppleSMC + IOHIDEventSystem directly. All three are incompatible with App Store Sandbox rules:
- App Store apps may only use
SMAppService.loginItem(user-level), notSMAppService.daemon(root). - Sandbox forbids spawning
powermetrics(which itself requires root). IOHIDEventSystem*and theAppleSMCuser-client are private APIs.
This is the same reason iStat Menus, Stats, and TG Pro distribute outside the App Store. App Store distribution would mean cutting most of what makes the icon meaningful, so MacSlowCooker stays open source instead.
Install
There is no signed DMG release at the moment. Build from source:
git clone https://github.com/hakaru/MacSlowCooker.git
cd MacSlowCooker
# Set your Apple Developer Team ID (the privileged helper validates it)
bin/set-team-id.sh ABC1234XYZ
# Generate the Xcode project and build
brew install xcodegen
xcodegen generate
xcodebuild -project MacSlowCooker.xcodeproj -scheme MacSlowCooker \
-configuration Release -derivedDataPath build build \
CODE_SIGN_STYLE=Automatic DEVELOPMENT_TEAM=ABC1234XYZ \
ONLY_ACTIVE_ARCH=NO
See CONTRIBUTING.md for the full build / deploy / sign cycle.
FAQ
Why does it need root?
powermetrics requires root to sample GPU power and thermal state. To keep the main app unprivileged, MacSlowCooker delegates sampling to a small root LaunchDaemon helper and talks to it over XPC. The helper rejects any caller whose code-signing requirement (Team OU) doesn't match.
Does it slow my Mac down?
Idle CPU is essentially zero — the animator timer auto-stops when the icon doesn't need to change, and the Dock icon update is dedup'd via a quantized hash. The helper's powermetrics process is the same one Activity Monitor uses internally.
What about my Intel Mac / MacBook Air?
Both supported. Intel Macs use a different powermetrics schema (gpu_busy / busy_ns); the parser handles both. Fanless Macs (MacBook Air M-series) auto-hide the Fan chart and the steam falls back to a temperature ramp.
Can I contribute?
Yes — issues and pull requests are welcome. See CONTRIBUTING.md.
Contact
Questions or bug reports:
GitHub Issues (preferred) or hirose@hakaru.net