This repository is a privacy-focused fork of Stats, a macOS system monitor for the menu bar. It keeps local system monitoring features while removing network-facing services, automatic update checks, telemetry-like paths, and privileged fan-control infrastructure.
- Removed System Stats / Remote monitoring and control, including remote login, tokens, MQTT/WebSocket/API paths, remote settings, and metric upload entry points.
- Removed automatic update checks, update notifications, silent update behavior, updater scripts, and update UI. Updates are manual only.
- Removed public IP lookup and internet connectivity probes, including the previous
api.mac-stats.com/ipcalls, HTTP/ICMP checks, public IP UI, and public IP notifications. - Removed external NTP time sync. The Clock module uses local system time only.
- Removed the SMC privileged helper, helper installation/uninstallation, helper launch daemon plists, and fan write/control paths. Fan data is read-only.
- Removed broad ATS arbitrary-loads configuration and the library-validation entitlement exception.
- Removed in-app support/report shortcut buttons and cleaned localization keys for removed features.
Stats still displays local diagnostic data useful to professional users, including device serial number, interface MAC address, Wi-Fi SSID/BSSID, DNS servers, local IP addresses, and Wi-Fi country code. These values are local display data and are not sent to Stats, system-stats, update, telemetry, or remote-control services.
This fork is based on the original Stats project by Serhiy Mytrovtsiy / exelban. Thank you to the upstream maintainer and contributors for the application, modules, UI, translations, and years of work that made this privacy-focused fork possible.
macOS system monitor in your menu bar.
Download this fork from syo093c/stats releases. Open the downloaded Stats.dmg and move the app to the Applications folder.
Homebrew installs the upstream Stats build, not this privacy-focused fork:
brew install statsLegacy upstream builds for older systems are available from the original Stats project.
Stats is supported on the released macOS version starting from macOS 12 (Monterey).
Stats is an application that allows you to monitor your macOS system.
- CPU utilization
- GPU utilization
- Memory usage
- Disk utilization
- Network usage
- Battery level
- Fan speed display
- Sensors information (Temperature/Voltage/Power)
- Bluetooth devices
- Multiple time zone clock
macOS decides the order of the menu bar items not Stats - it may change after the first reboot after installing Stats.
To change the order of any menu bar icon - macOS Mojave (version 10.14) and up.
- Hold down ⌘ (command key).
- Drag the icon to the desired position on the menu bar.
- Release ⌘ (command key)
macOS 26 introduced a new privacy control under System Settings → Menu Bar. Apps must be explicitly allowed there to display menu bar items. If Stats is running with at least one module active and one widget enabled, but none of its icons show up in the menu bar, this is almost certainly the cause. More details you can find here.
Solution: open System Settings → Menu Bar and toggle Stats ON.
Due to a problem with high data load in the system process (chronod) responsible for communication between the app and widgets, communication is disabled by default on the Stats side. To enable it, the macOS widgets option must be enabled in the Stats settings. More details you can find here.
Solution: open Stats Settings and toggle macOS widgets ON.
Stats tries to be efficient as it's possible. But reading some data periodically is not a cheap task. Each module has its own "price". So, if you want to reduce energy impact from the Stats you need to disable some Stats modules. The most inefficient modules are Sensors and Bluetooth. Disabling these modules could reduce CPU usage and power efficiency by up to 50% in some cases.
Fan control has been removed from this privacy-focused build. Stats no longer installs or communicates with an SMC privileged helper. Fan data is read-only.
CPU/GPU sensors are simply thermal zones (sensors) on the CPU/GPU. They have no relation to the number of cores or specific cores. For example, a CPU is typically divided into two clusters: efficiency and performance. Each cluster contains multiple temperature sensors, and Stats simply displays these sensors. However, "CPU Efficient Core 1" does not represent the temperature of a single efficient core—it only indicates one of the temperature sensors within the efficiency core cluster. Additionally, with each new SoC, Apple changes the sensor keys. As a result, it takes time to determine which SMC values correspond to the appropriate sensors. If anyone knows how to accurately match the sensors for Apple Silicon, please contact me.
First, manually compare your build with the latest release. There is a high chance that a fix preventing the crash has already been released. If you are already running the latest version, check the open issues. Only if none of the existing issues address your problem should you open a new issue.
Most probably because it's a duplicated issue and there is an answer to the question, report, or proposition. Please use a search by closed issues to get an answer. So, if your issue was closed without any response, most probably it already has a response.
See "Privacy Changes In This Fork" at the top of this README for the full removal list.
This privacy-focused build does not perform automatic update checks, public IP lookups, connectivity probes, telemetry, remote monitoring, remote control, or remote configuration.
Stats reads local system counters and stores preferences locally. The network module displays local interface addresses and local traffic counters only. Network traffic labels such as "upload" mean bytes sent by your Mac over the selected interface; Stats does not upload those metrics to a server.
Local hardware and network identifiers, such as the device serial number, interface MAC address, Wi-Fi SSID/BSSID, DNS servers, and local IP addresses, may still be shown in the UI for troubleshooting and professional diagnostics. They remain local display data and are not sent to Stats, system-stats, update, telemetry, or remote-control services.
Manual links in the app or README, such as release, issue, sponsor, or documentation links, open only when the user explicitly selects them.
If you want to develop a new feature or you've found something that doesn't work, the first step is to open an issue so the feature or problem can be discussed. Pull requests should only be opened for existing issues and after discussion; otherwise, they may be closed automatically. There are a few cases where this can be skipped: for language changes, and for contributors who have already made significant contributions and whose implementations align well with the project.
- English
- Polski
- Українська
- Русский
- 中文 (简体) (thanks to chenguokai, Tai-Zhou, and Jerry)
- Türkçe (thanks to yusufozgul and setanarut)
- 한국어 (thanks to escapeanaemia and iamhslee)
- German (thanks to natterstefan and aneitel)
- 中文 (繁體) (thanks to iamch15542 and jrthsr700tmax)
- Spanish (thanks to jcconca)
- Vietnamese (thanks to HXD.VN)
- French (thanks to RomainLt)
- Italian (thanks to gmcinalli)
- Portuguese (Brazil) (thanks to marcelochaves95 and pedroserigatto)
- Norwegian Bokmål (thanks to rubjo)
- 日本語 (thanks to treastrain)
- Portuguese (Portugal) (thanks to AdamModus)
- Czech (thanks to mpl75)
- Magyar (thanks to moriczr)
- Bulgarian (thanks to zbrox)
- Romanian (thanks to razluta)
- Dutch (thanks to ngohungphuc)
- Hrvatski (thanks to milotype)
- Danish (thanks to casperes1996 and aleksanderbl29)
- Catalan (thanks to davidalonso)
- Indonesian (thanks to yooody)
- Hebrew (thanks to BadSugar)
- Slovenian (thanks to zigapovhe)
- Greek (thanks to sudoxcess and vaionicle)
- Persian (thanks to ShawnAlisson)
- Slovenský (thanks to martinbernat)
- Thai (thanks to apiphoomchu)
- Estonian (thanks to postylem)
- Hindi (thanks to patiljignesh)
- Finnish (thanks to eightscrow)
You can help by adding a new language or improving the existing translation.

