{"id":13395289,"url":"https://github.com/exelban/stats","last_synced_at":"2026-04-26T13:00:47.096Z","repository":{"id":37004478,"uuid":"189285554","full_name":"exelban/stats","owner":"exelban","description":"macOS system monitor in your menu bar","archived":false,"fork":false,"pushed_at":"2026-04-19T17:10:30.000Z","size":57786,"stargazers_count":38099,"open_issues_count":29,"forks_count":1265,"subscribers_count":137,"default_branch":"master","last_synced_at":"2026-04-19T17:33:55.911Z","etag":null,"topics":["battery","bluetooth","clock","cpu","disk","fans","gpu","macos","menubar","monitor","network","sensors","stats","temperature"],"latest_commit_sha":null,"homepage":"https://mac-stats.com","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/exelban.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["exelban"],"patreon":"exelban","ko_fi":"exelban","custom":["https://www.paypal.com/donate?hosted_button_id=3DS5JHDBATMTC"]}},"created_at":"2019-05-29T19:24:56.000Z","updated_at":"2026-04-19T17:24:12.000Z","dependencies_parsed_at":"2023-10-04T01:20:47.562Z","dependency_job_id":"55018385-e204-41fc-89ce-aaa928e3505c","html_url":"https://github.com/exelban/stats","commit_stats":{"total_commits":1702,"total_committers":139,"mean_commits":"12.244604316546763","dds":"0.18272620446533494","last_synced_commit":"b392a9732ce40caf19320fc56dc65b4d17746019"},"previous_names":[],"tags_count":332,"template":false,"template_full_name":null,"purl":"pkg:github/exelban/stats","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exelban%2Fstats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exelban%2Fstats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exelban%2Fstats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exelban%2Fstats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exelban","download_url":"https://codeload.github.com/exelban/stats/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exelban%2Fstats/sbom","scorecard":{"id":387796,"data":{"date":"2025-08-11","repo":{"name":"github.com/exelban/stats","commit":"c44bc7e750e6b19e4c13de4cb7b13d079e958917"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.9,"checks":[{"name":"Maintained","score":10,"reason":"27 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 2/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yaml:1","Warn: no topLevel permission defined: .github/workflows/i18n.yaml:1","Warn: no topLevel permission defined: .github/workflows/linter.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: Kit/lldb/libleveldb.a:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.11.49 not signed: https://api.github.com/repos/exelban/stats/releases/237187796","Warn: release artifact v2.11.48 not signed: https://api.github.com/repos/exelban/stats/releases/232256073","Warn: release artifact v2.11.47 not signed: https://api.github.com/repos/exelban/stats/releases/232039871","Warn: release artifact v2.11.46 not signed: https://api.github.com/repos/exelban/stats/releases/230278970","Warn: release artifact v2.11.45 not signed: https://api.github.com/repos/exelban/stats/releases/223859620","Warn: release artifact v2.11.49 does not have provenance: https://api.github.com/repos/exelban/stats/releases/237187796","Warn: release artifact v2.11.48 does not have provenance: https://api.github.com/repos/exelban/stats/releases/232256073","Warn: release artifact v2.11.47 does not have provenance: https://api.github.com/repos/exelban/stats/releases/232039871","Warn: release artifact v2.11.46 does not have provenance: https://api.github.com/repos/exelban/stats/releases/230278970","Warn: release artifact v2.11.45 does not have provenance: https://api.github.com/repos/exelban/stats/releases/223859620"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/exelban/stats/build.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/i18n.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/exelban/stats/i18n.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/i18n.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/exelban/stats/i18n.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/linter.yaml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/exelban/stats/linter.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/linter.yaml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/exelban/stats/linter.yaml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T17:05:33.080Z","repository_id":37004478,"created_at":"2025-08-18T17:05:33.080Z","updated_at":"2025-08-18T17:05:33.080Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32297899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T09:34:17.070Z","status":"ssl_error","status_checked_at":"2026-04-26T09:34:00.993Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["battery","bluetooth","clock","cpu","disk","fans","gpu","macos","menubar","monitor","network","sensors","stats","temperature"],"created_at":"2024-07-30T17:01:49.421Z","updated_at":"2026-04-26T13:00:47.086Z","avatar_url":"https://github.com/exelban.png","language":"Swift","funding_links":["https://github.com/sponsors/exelban","https://patreon.com/exelban","https://ko-fi.com/exelban","https://www.paypal.com/donate?hosted_button_id=3DS5JHDBATMTC"],"categories":["Swift","Monitoring","macos","macOS","Uncategorized","HarmonyOS","其它实用工具","Miscellaneous","Utilities","Applications","Mac软件","Analytics \u0026 Monitoring","📱 Mobile Development","Table of Contents","Desktop Tools"],"sub_categories":["Management Tool","Uncategorized","Windows Manager","菜单栏工具","Install Stats","Text","System Related Tools","🛠️ Utilities (79)","效率工具","Utilities","What It Does","System Monitoring","Menubar"],"readme":"# Stats\n\n\u003ca href=\"https://github.com/exelban/stats/releases\"\u003e\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/exelban/stats/raw/master/Stats/Supporting%20Files/Assets.xcassets/AppIcon.appiconset/icon_256x256.png\" width=\"120\"\u003e\u003c/p\u003e\u003c/a\u003e\n\n[![Stats](https://serhiy.s3.eu-central-1.amazonaws.com/Github_repo/stats/menus%3Fv2.3.2.png?v1)](https://github.com/exelban/stats/releases)\n[![Stats](https://serhiy.s3.eu-central-1.amazonaws.com/Github_repo/stats/popups%3Fv2.3.2.png?v3)](https://github.com/exelban/stats/releases)\n\nmacOS system monitor in your menu bar\n\n## Installation\n### Manual\nYou can download the latest version [here](https://github.com/exelban/stats/releases/latest/download/Stats.dmg).\nThis will download a file called `Stats.dmg`. Open it and move the app to the application folder.\n\n### Homebrew\nTo install it using Homebrew, open the Terminal app and type:\n```bash\nbrew install stats\n```\n\n### Legacy version\nLegacy version for older systems could be found [here](https://mac-stats.com/downloads).\n\n## Requirements\nStats is supported on the released macOS version starting from macOS 11.15 (Big Sur).\n\n## Features\nStats is an application that allows you to monitor your macOS system.\n\n - CPU utilization\n - GPU utilization\n - Memory usage\n - Disk utilization\n - Network usage\n - Battery level\n - Fan's control (not maintained)\n - Sensors information (Temperature/Voltage/Power)\n - Bluetooth devices\n - Multiple time zone clock\n\n## FAQs\n\n### How do you change the order of the menu bar icons?\nmacOS decides the order of the menu bar items not `Stats` - it may change after the first reboot after installing Stats.\n\nTo change the order of any menu bar icon - macOS Mojave (version 10.14) and up.\n\n1. Hold down ⌘ (command key).\n2. Drag the icon to the desired position on the menu bar.\n3. Release ⌘ (command key)\n\n### Stats icons do not appear in the menu bar\nmacOS 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](https://github.com/exelban/stats/issues/3120).\n\n**Solution:** open **System Settings → Menu Bar** and toggle **Stats** ON.\n\n### How to reduce energy impact or CPU usage of Stats?\nStats 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.\n\n### Fan control\nFan 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.\n\n### Sensors show incorrect CPU/GPU core count\nCPU/GPU sensors are simply thermal zones (sensors) on the CPU/GPU. They have no relation to the number of cores or specific cores.\nFor 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.\nAdditionally, 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.\n\n### App crash – what to do?\nFirst, 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.\n\n### Why my issue was closed without any response?\nMost 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.\nSo, if your issue was closed without any response, most probably it already has a response.\n\n### External API\nStats uses some external APIs, such as:\n\n- https://api.mac-stats.com – For update checks and retrieving the public IP address\n- https://api.github.com – Fallback for update checks\n\nBoth 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.\n\nIf you have concerns about these requests, you have a few options:\n\n- propose a PR that allows these features to work without an external server\n- 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.\n\n\n## Supported languages\n- English\n- Polski\n- Українська\n- Русский\n- 中文 (简体) (thanks to [chenguokai](https://github.com/chenguokai), [Tai-Zhou](https://github.com/Tai-Zhou), and [Jerry](https://github.com/Jerry23011))\n- Türkçe (thanks to [yusufozgul](https://github.com/yusufozgul) and [setanarut](https://github.com/setanarut))\n- 한국어 (thanks to [escapeanaemia](https://github.com/escapeanaemia) and [iamhslee](https://github.com/iamhslee))\n- German (thanks to [natterstefan](https://github.com/natterstefan) and [aneitel](https://github.com/aneitel))\n- 中文 (繁體) (thanks to [iamch15542](https://github.com/iamch15542) and [jrthsr700tmax](https://github.com/jrthsr700tmax))\n- Spanish (thanks to [jcconca](https://github.com/jcconca))\n- Vietnamese (thanks to [HXD.VN](https://github.com/xuandung38))\n- French (thanks to [RomainLt](https://github.com/RomainLt))\n- Italian (thanks to [gmcinalli](https://github.com/gmcinalli))\n- Portuguese (Brazil) (thanks to [marcelochaves95](https://github.com/marcelochaves95) and [pedroserigatto](https://github.com/pedroserigatto))\n- Norwegian Bokmål (thanks to [rubjo](https://github.com/rubjo))\n- 日本語 (thanks to [treastrain](https://github.com/treastrain))\n- Portuguese (Portugal) (thanks to [AdamModus](https://github.com/AdamModus))\n- Czech (thanks to [mpl75](https://github.com/mpl75))\n- Magyar (thanks to [moriczr](https://github.com/moriczr))\n- Bulgarian (thanks to [zbrox](https://github.com/zbrox))\n- Romanian (thanks to [razluta](https://github.com/razluta))\n- Dutch (thanks to [ngohungphuc](https://github.com/ngohungphuc))\n- Hrvatski (thanks to [milotype](https://github.com/milotype))\n- Danish (thanks to [casperes1996](https://github.com/casperes1996) and [aleksanderbl29](https://github.com/aleksanderbl29))\n- Catalan (thanks to [davidalonso](https://github.com/davidalonso))\n- Indonesian (thanks to [yooody](https://github.com/yooody))\n- Hebrew (thanks to [BadSugar](https://github.com/BadSugar))\n- Slovenian (thanks to [zigapovhe](https://github.com/zigapovhe))\n- Greek (thanks to [sudoxcess](https://github.com/sudoxcess) and [vaionicle](https://github.com/vaionicle))\n- Persian (thanks to [ShawnAlisson](https://github.com/ShawnAlisson))\n- Slovenský (thanks to [martinbernat](https://github.com/martinbernat))\n- Thai (thanks to [apiphoomchu](https://github.com/apiphoomchu))\n- Estonian (thanks to [postylem](https://github.com/postylem))\n- Hindi (thanks to [patiljignesh](https://github.com/patiljignesh))\n- Finnish (thanks to [eightscrow](https://github.com/eightscrow))\n\nYou can help by adding a new language or improving the existing translation.\n\n## License\n[MIT License](https://github.com/exelban/stats/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexelban%2Fstats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexelban%2Fstats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexelban%2Fstats/lists"}