랭킹으로 돌아가기

exelban/stats

Swiftmac-stats.com

macOS system monitor in your menu bar

macosmonitorcpugpudisknetworktemperaturestatsbatteryfanssensorsbluetooth
스타 성장
스타
40.6k
포크
1.4k
주간 성장
이슈
21
20k40k
2019년 6월2021년 10월2024년 3월2026년 7월
README

Stats

Stats Stats

macOS system monitor in your menu bar

Installation

Manual

You can download the latest version here. This will download a file called Stats.dmg. Open it and move the app to the application folder.

Homebrew

To install it using Homebrew, open the Terminal app and type:

brew install stats

Uninstall

Run the uninstall script bundled with the app (requires administrator privileges to remove the SMC helper):

sh /Applications/Stats.app/Contents/Resources/Scripts/uninstall.sh

The script quits Stats and removes:

  • the SMC helper (/Library/LaunchDaemons/eu.exelban.Stats.SMC.Helper.plist and /Library/PrivilegedHelperTools/eu.exelban.Stats.SMC.Helper)
  • Stats.app
  • application data and preferences (~/Library/Application Support/Stats, widget containers, and eu.exelban.Stats defaults)

If the app has already been moved to the Trash, the script can be run directly from the repository:

curl -fsSL https://raw.githubusercontent.com/exelban/stats/master/Kit/scripts/uninstall.sh | sh

Legacy version

Legacy version for older systems could be found here.

Requirements

Stats is supported on macOS 12 (Monterey) and newer. Beta versions of macOS are not supported - only stable releases.

Features

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's control (not maintained)
  • Sensors information (Temperature/Voltage/Power)
  • Bluetooth devices
  • Multiple time zone clock

FAQs

How do you change the order of the menu bar icons?

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.

  1. Hold down ⌘ (command key).
  2. Drag the icon to the desired position on the menu bar.
  3. Release ⌘ (command key)

Stats icons do not appear in the menu bar

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.

Desktop widgets not showing the data

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.

How to reduce energy impact or CPU usage of Stats?

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

Fan control is in legacy mode. It does not receive any updates or fixes. It's not dropped from the app just because in the old Macs it works pretty acceptable. I'm open to accepting fixed or improvements (via PR) for this feature in case someone would like to help with that. But have no option and time to provide support for this feature.

Sensors show incorrect CPU/GPU core count

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.

App crash – what to do?

First, ensure that you are using the latest version of Stats. 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.

Why my issue was closed without any response?

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.

External API

Stats does not collect any telemetry or analytics. The only external requests it makes are to the following APIs:

Both of these APIs are used to check for updates. Additionally, an external request is required to obtain the public IP address. I do not want to use any third-party providers for retrieving the public IP address, so I use my own server for this purpose.

If you have concerns about these requests, you have a few options:

  • propose a PR that allows these features to work without an external server
  • block both of these servers using any network filtering app (if you're reading this, you're likely using something like Little Snitch, so you can easily do this). In this case do not expect to receive any updates or see your public IP in the network module.

How to contribute to the project?

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: language changes, and contributors who have already made significant contributions and whose implementations align well with the project.

Open source, but not open contribution

Stats is an open-source project: the full source code is available under the MIT license, and you are free to read it, learn from it, fork it, and build your own version of the app.

However, it is not an open-contribution project. Stats is developed and maintained by a single person, and keeping the project stable and coherent takes priority over accepting every proposed change. Reviewing external code, testing it across different Macs and macOS versions, and maintaining it afterward often takes more time than writing it in the first place.

For that reason, unsolicited pull requests are generally not accepted and may be closed without review. If you want to change or add something, please open an issue first so it can be discussed. The exceptions are translations and language fixes, which are always welcome, and contributions from people who have already made significant contributions to the project.

The best ways to support the project are reporting bugs, improving translations, and proposing ideas through issues.

Supported languages

You can help by adding a new language or improving the existing translation.

License

MIT License

관련 저장소
flutter/flutter

Flutter makes it easy and fast to build beautiful apps for mobile and beyond

DartBSD 3-Clause "New" or "Revised" Licensemobileandroid
flutter.dev
177.8k30.7k
jlevy/the-art-of-command-line

Master the command line, in one page

bashunix
161.8k14.8k
rustdesk/rustdesk

An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.

Rustcrates.ioGNU Affero General Public License v3.0remote-controlremote-desktop
rustdesk.com
118.6k18.1k
nodejs/node

Node.js JavaScript runtime ✨🐢🚀✨

JavaScriptnpmOthernodejsjavascript
nodejs.org
118.3k36.2k
jaywcjlove/awesome-mac

 This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.

SwiftCreative Commons Zero v1.0 Universalmacossoftware
git.io/macx
108.3k8.2k
alacritty/alacritty

A cross-platform, OpenGL terminal emulator.

Rustcrates.ioApache License 2.0terminal-emulatorsopengl
alacritty.org
65k3.5k
warpdotdev/warp

Warp is an agentic development environment, born out of the terminal.

Rustcrates.ioGNU Affero General Public License v3.0rustlinux
warp.dev
63.5k5.3k
tldr-pages/tldr

Collaborative cheatsheets for console commands 📚.

MarkdownOthershellman-page
tldr.sh
63.2k5.3k
atom/atom

:atom: The hackable text editor

JavaScriptnpmMIT Licenseatomeditor
atom.io
60.8k17.2k
tw93/Pake

🤱🏻 Turn any webpage into a desktop app with one command.

Rustcrates.ioGNU General Public License v3.0rusttauri
60.1k12.2k
tw93/Mole

🐹 Clean, uninstall, analyze, optimize, and monitor your Mac from the terminal.

ShellGNU General Public License v3.0cleancleaner
mole.fit
59.5k2.1k
FiloSottile/mkcert

A simple zero-config tool to make locally trusted development certificates with any names you'd like.

GoGo ModulesBSD 3-Clause "New" or "Revised" Licensehttpstls
mkcert.dev
59.3k3.1k