Uninstall Stats on Mac
Stats installs a privileged system helper for fan and SMC readings alongside the menu bar app itself, so a full removal needs an administrator password step that a plain drag-to-Trash does not trigger. Mole's tests uninstalled both the Homebrew cask stats and the official download from Stats' GitHub releases, which install the same app and the same helper, so the steps below apply to both.
Quit Stats and remove it
Quit Stats from its menu bar icon and leave Stats.app in Applications until the bundled uninstall script below finishes. It removes the app, the privileged helper, and app data, so export or copy any settings you want to keep first:
sh /Applications/Stats.app/Contents/Resources/Scripts/uninstall.sh
If you already trashed Stats.app before running it, the same script is in the project's repository as Kit/scripts/uninstall.sh. Read it there, save it, and run the saved copy with sh; do not pipe a download straight into a shell.
The script asks for an administrator password, since the SMC helper below runs as root and needs that authorization to remove. Stats' project documentation covers this uninstall script along with the rest of the app.
Where Stats keeps its data
| Location | What it holds | What to do |
|---|---|---|
~/Library/Application Support/Stats |
App settings and state | Unselected with Remove data and settings with apps off (the default); eligible app-owned data can be preselected when it is on |
~/Library/Caches/eu.exelban.Stats |
Regenerable cache | Selected by default |
~/Library/Containers/eu.exelban.Stats.Widgets and ~/Library/Group Containers/RP2S87B72W.eu.exelban.Stats.widgets |
Desktop widget state, only used if you turned on macOS widgets in Stats' settings | The widget container is selected by default and the group container is listed but not selected; both stay nearly empty if you never enabled widgets |
/Library/LaunchDaemons/eu.exelban.Stats.SMC.Helper.plist and /Library/PrivilegedHelperTools/eu.exelban.Stats.SMC.Helper |
The privileged helper that reads fan speed and SMC sensors, installed with administrator authorization | Root-owned; only Stats' own uninstall script or an admin-authorized step in Mole can remove it, never a plain Trash move |
Check the result
Run these read-only commands in Terminal:
pgrep -il stats
launchctl print system/eu.exelban.Stats.SMC.Helper
ls -d ~/Library/Application\ Support/Stats
ls -d /Library/PrivilegedHelperTools/eu.exelban.Stats.SMC.Helper
No output from pgrep means no matching Stats process was found. launchctl print system/eu.exelban.Stats.SMC.Helper queries the system helper directly: a service-not-found error means that service is not loaded in the system domain; a printed service record means it is still registered, and its state and pid show whether it is running. A permission or other query error leaves that check unresolved. The two ls checks distinguish a surviving data folder or helper binary from a missing path; also check /Library/LaunchDaemons/eu.exelban.Stats.SMC.Helper.plist separately. After the uninstall script finishes, check whether Stats.app remains; if it does, move the remaining app to the Trash. Restart if fan control needs to return to automatic mode.
If you installed it with Homebrew
Mole skips --zap when its list reaches unchecked or shared data, or cannot be fully checked, and still cleans the leftovers you selected.
Here is what brew uninstall --cask --zap stats does when you run it yourself. The cask's own uninstall step unloads the SMC helper's LaunchDaemon and quits the app, but it does not delete the helper's files by itself: removing /Library/LaunchDaemons/eu.exelban.Stats.SMC.Helper.plist and /Library/PrivilegedHelperTools/eu.exelban.Stats.SMC.Helper, with administrator rights, is part of the --zap step. The rest of the zap list covers Application Support, Caches, Cookies, HTTPStorages, preferences, the widget Containers and Group Containers, and the LaunchAtLogin and Widgets helpers' Application Scripts paths. In the recorded test, the widgets group, preferences and helper were all cleared, and the SMC helper's removal required Touch ID (or a password) authorization during the uninstall. Homebrew Stats cask
brew uninstall --cask stats
Without --zap, this still runs the cask's own uninstall step, so the SMC helper's LaunchDaemon is unloaded and the app quits, but the helper's plist and binary stay on disk under /Library, root-owned and no longer loaded; it also leaves Application Support, Caches and the widget containers behind. Run the uninstall script above, or --zap, if you want the helper files gone too.
What Mole lists
When you remove it with Mole:
~/Library/Application Support/Statsis unselected with Remove data and settings with apps off (the default); turning it on can preselect eligible app-owned data, so untick it to retain settings.~/Library/Caches/eu.exelban.Stats, the widget container~/Library/Containers/eu.exelban.Stats.Widgetsand its Application Scripts folder are selected by default; the group container~/Library/Group Containers/RP2S87B72W.eu.exelban.Stats.widgetsis listed but not selected.- The SMC LaunchDaemon and privileged helper binary under
/Libraryrequire administrator authorization (Touch ID or a password) to remove, the same as any other root-owned helper; Mole asks for it as part of the uninstall. - The
LaunchAtLogin,SMCandHelperrows in Mole's Startup list are informational while Stats is installed and disappear from that list once Stats is uninstalled.
What this test covered
Stats was installed from the Homebrew cask stats and uninstalled through Mole on September 17, 2026, with the widgets Group Container, preferences, and the SMC helper all cleared, no leftover launchd job found afterward, and Touch ID authorization required to remove the SMC helper. On September 26, 2026, Stats 3.0.17 from the official GitHub download was installed again and removed with a development build of Mole with every row ticked: the app and 10 listed items went to the Trash and none of the ten reviewed paths remained. That run never installed the SMC helper, so the helper was covered only by the first test. Stats' own bundled uninstall.sh script was not run in either test; its command is included above from the project's own documentation.
